主题中讨论的其他器件:ISO1540、 SW-TM4C
您好!
我对 TM4C1294的 I2C 有疑问。 我的 TivaWare 版本是 2.1.0.12573、CCS 5.4、编译器是 TI v5.0.4。
我的问题如下、上图是从逻辑分析仪捕获的、而下图是从示波器捕获的。 I2C 的速度为100KHz。 您可以看到第二个字节的第4个时钟丢失、仅保持非常短的脉冲。 它不会在每次 I2C 传输时发生、但 机会很高、可能是10%。
TM4C1242的 I2C 通道上有两个组件、一个光学传感器(从器件)和一个 I2C 隔离器(TI ISO1540、SCL 和 SDA 都 是双向的)。 光学传感器的 SCL 引脚是一个简单的输入引脚、它没有 I2C 时钟拉伸功能。
示波器上的黄色通道是 TM4C 和隔离器之间的波形、绿色通道是隔离器和光学传感器之间的波形。
我没有启用 TM4C1294 I2C 通道的毛刺脉冲滤波器、并且我将 I2CMCLKOCNT 设置为0xFF、我尝试了其他值不会改变这个问题。
现在、我有三种解决方案可以解决此问题: (1) TM4C 支持干扰滤波器、(2)将光学传感器上的上拉电阻从10K 欧姆降低到1K 欧姆、使上升沿更好、(3)在光学传感器的 SCL 上添加一个小电容器(例如100pF)。
但我不明白为什么缺少该时钟脉冲、如果隔离器此时拉至低电平并且 TM4C 时钟拉伸正常工作、为什么只有8个时钟脉冲? 为什么干扰分析器可以解决此问题?
[我的 I2C 初始化代码]
谢谢、
Snaku