工具/软件:
尊敬的 TI 支持部门:
AM2634 器件上的 I2C 外设出现异常行为。 具体来说、我们观察到 I2C 波形会根据执行事务的任务的优先级发生显著变化。
下面是我们使用的代码片段:
/* 设置 默认 事务 参数 */
I2C_Transaction_init (&i2cTransaction);
/* 使用 所需 事务 参数覆盖 */
i2cTransaction.writeBuf = outdata;
i2cTransaction.writeCount = 长度;
i2cTransaction.targetAddress = slaveAddress ;
i2cTransaction.TIMEOUT = I2C_TIMEOUT_US;
// 写入 数据
状态 = I2C_TRANSFER (i2cHandle、&i2cTransaction );
我们记录了 i2c 数据和时钟的两个示波器捕获结果(作为视频附件)、其中显示了以下内容:
- 有多长时间 高优先级 、波形“几乎“一致且可重复。
- 有多长时间 低优先级 、波形的变化很大、就像传输被中断或延迟一样。
这就引出了几个问题:
- 为什么 I2C 传输受任务优先级的影响? 启动后、外设不应该自主处理整个传输吗?
- 在低优先级情况下观察到的“分散“波形是否符合 I2C 标准?
- 正如我们在某些情况下观察到的那样、这种行为是否会导致 I2C 从设备冻结?
我们非常感谢您对该问题的技术见解以及解决该问题的任何建议。
感谢您的支持。
Alessandro Pacificie2e.ti.com/.../high_5F00_prio.mp4e2e.ti.com/.../low_5F00_prio.mp4