This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好
我有一个 i2c 数据、CLK 将保持低电平问题。 我有一个逻辑分析仪来捕获波形。 我从 从器件(28069)执行一个到主器件(PC 工具)的64字节数据传输。
从我的逻辑分析仪中、我注意到某些字节上存在噪声。 此噪声发生在14个字节上、数据和 CLK 挂起在19个字节上。 19字节只有3个 CLK 信号。
我注意到逻辑分析仪在15字节显示"写入地址"、而不是它应该显示的字节数据。
我 不确定 DSP 是否将噪声视为 起始位??
请 帮您解决此问题? 我 知道 为什么数据和 CLK 同时保持低电平?
我的 I2CMDR 设置为28069上的0x0020。
谢谢你。
您好、Jackson、
感谢您提供额外的屏幕截图。 逻辑分析仪上出现了两个问题、我将在下面单独讨论。
逻辑分析仪捕获的 SDA 线上的中字节噪声。
SDA 线上捕获的噪声实例无疑会使逻辑分析仪混淆、这就是顺序字节(蓝色突出显示的十六进制格式)完全未对齐的原因。 但是、这似乎不会破坏实际的 I2C 通信(大概是这样)、因为之后的时钟和数据继续对几个字节有效。 更大的噪声可能会导致实际的 I2C 通信损坏、即字节中间可能会出现意外的启动/停止条件。 C2000 I2C 模块确实具有一些内部噪声滤波功能来防止这种情况、但理想情况下、您希望在系统设计中尽可能限制 I2C 总线上的噪声。
SCL 和 SDA 线被无限期地保持在低电平中间字节。
此问题可能是由线路上的噪声引起的、这会导致 i2c 通信超出规范、从而导致总线混乱。
下面的 wiki 中的"通过保持 SDA 为低电平挂起总线的外部从器件"部分可能对您有所帮助。 背景是 C2000器件是否是主器件、但我认为它可能仍会为您提供一些见解和想法。
http://processors.wiki.ti.com/index.php/I2C_Tips
您有一些问题:
1.您的系统环境是否固有噪声?
2.主设备在 SCL 上的驱动频率是多少?
3、SDA/SCL 线路上是否都有适当的上拉电阻? 如果您使用的是内部 C2000上拉电阻器、我建议您针对 I2C 使用该上拉电阻器。
4.你知道总线电容吗? 您是否有任何串联电阻来帮助解决电压尖峰问题(可以尝试一下、相关资源可在线获取)?
最棒的
Kevin
您好、Allen
请参阅我的更新、如下所示
我有2个 PSU (电源设备)并联、并与 PC 工具(主设备)进行通信。 我的主设备始终使用 PSU_#1轮询数据。
PSU #2始终处于空闲状态。
当问题发生时(主 CLK 和数据保持低电平)、我们注意到是 PSU#2上的信号。 此信号似乎导致 PSU#2看到
常规调用、并在 I2C 总线上强制进行响应。 几个字节后、PSU#2似乎挂起。
观察结果。
1.我只使用 PSU#1轮询数据、但 PSU#2上的意外信号会导致它响应(常规调用)、即使它处于空闲状态也是如此。
根据信号、I2C 总线由于 PSU#2 (空闲状态)而不是 PSU#1 (工作状态)而挂起
问题:
I2C 文档对 F28068常规调用的描述很少、您能否分享更多有关这方面的文档?
2.由于常规调用,导致 PSU#2回复的意外信号。 在我们的硬件工程师能够解决此意外信号之前、我们可以对固件端的"常规调用"执行什么操作、即使此命令意外发生也是如此? 我们是否可以拒绝此命令?
请提供相关建议。 谢谢你。