工具/软件:Code Composer Studio
根据"CSL_I2C_PollExample"、我正在使用 CSL I2C 写入和读取函数。 C5517器件。
我注意到、当发生 NACK 时、SCL 保持低电平。 我将在 I2C 总线上没有从器件的情况下对其进行测试、DSP 作为 I2C 主器件。
根据手册、用户应:
6.2.9.2用户对 NACK 的响应
用户在响应 NACK 时必须执行以下步骤。
1.设置 ICMDR.STP,它发送一个停止位并释放 SCL。
2.将 ICSTR.Nack=1置位以清除标志。
3.等待 ICMDR.MST 自清零、然后再启动更多的 I2C 事务。
当 MST 位清零时、控制器已经完成发送停止位。 通过验证 MST 位是否被清除
检查函数开始时 ICMDR.MST 是否等于0。 此检查允许处理器时间
要执行其它任务,但在 ICMDR.MST 被清除之前不启动一个新的传输。
CSL 函数是否处理 NACK 事件? 我是否必须按照手册中的规定添加处理 NACK 事件的代码?
谢谢你
Stefano