大家好、我在这里的第一个帖子、请大家好。 我正在尝试进行电容式感应、因此需要 Arduino 和 TI FDC2114之间的稳定通信、后者已焊接在 EVM 上。 两者都支持 I2C、并且由于 Arduino 的工作电压为5V、FDC 的工作电压为3.3V、因此我使用 的是 PCA9512A 双向电平转换器和10k 上拉电阻、可达到5V (Arduino Mega Internal)和3.3V。
当扫描 FDC 的地址时、我有时会得到一个正响应(在请求的7位地址之后的最后一个时钟上的 ACK)、但大多数情况下是一个 NACK。 即使我收到一个 ACK、几秒钟后、FDC 也无法再将 SDA 下拉至0V、并且我再次得到 NACK。 如果是 NACK、在欠压情况下拔下 SDA 和 SCL 并将其重新插入可能会有所帮助、但每次都不起作用。 我已经更改了所有导线、因此这不应该是机械问题。 我还观察到、SCL 上的峰值电压为3.4V、SDA 上的峰值电压超过3.6V、但我不知道这是否会导致任何问题以及电压差的原因。
使用 EVM 中包含的 MCU 时、根本没有问题。 我缺少什么、为什么它不可靠?
我已经阅读 了 Kynix Semiconductor 电子博客上的一篇文章 ,但这对我不再有帮助。
需要澄清的几点:在原理图中、5V 侧上的上拉电阻是错误的。 它们是内部的、而不是图像所示的外部的。 此外、它们实际上是10k、因为它是 Arduino Mega 2560。 所有器件共用一个牢固的公共接地。 我尝试了100kHz 至400kHz 之间的频率、但它们似乎都不起作用。 ACC 引脚通过10k 电阻上拉至3.3V、从而启用上升时间加速器。 电容器尽可能靠近 FDC。
谢谢大家!
