我有一个使用 AS3935雷击检测器的小电路、该检测器通过 I2C 通过3.6V/4k7上拉电阻连接到 Atm8。 我想用 MSP430G2553替代"其他"MCU 会很容易、但会立即出现 I2C 连接问题。 当'G2553 USCI/I2C 在 DS1307中正常工作时、尝试访问 AS3935将失败、并从 NACK 开始。 我探测电路(构建在具有相关杂散电容的无焊试验电路板上)并开始工作;我很快意识到 SDA 线路上的小附加电容会使其正常工作;移除了探针并在 SDA 接地端找到10p 将使其正常工作。 'G2553放置在无焊试验电路板上;后来的实验在 LaunchPad 上包含'G2553。 在这两种情况下、应充分旁路"G2553 Vcc/GND。
驱动程序代码经过轮询并可按需提供、但此问题完全与硬件中的 START 条件生成有关。
当然、我拍了一张照片-上部布线是 SDA、下部布线是 SCL -请注意、随着 SCL 下降、SDA 在启动条件之后会立即出现急剧尖峰:
该尖峰不是漏极开路 I/O 的结果-它具有大约~60ns 至~1.5V 的线性上升时间、表示逻辑"1"。 将其作为地址/RW 字节的 MSB 计时实在太早了、但我怀疑它会导致 AS3935忽略启动条件(这似乎违反了 I2C 时序/滤波、当然)。 我还注意到在后来的 SCL 下降时 SDA 毛刺较小、但这应该是良性的。
这是 I2C 模式下 MSP430Gx2xx USCI 的已知行为吗? 除了在 SDA 线路上放置一个小电容器外、还有没有其他方法可以消除这种干扰? 小型电容器肯定会通过将毛刺脉冲的前缘延迟一点(少量 NS)来解决此问题。
谢谢、
Dana
