主题中讨论的其他器件:HALCOGEN
工具/软件:Code Composer Studio
大家好、
我正在尝试为 tms570lc43 MCU 构建基于中断的 i2c 接收器应用。 我在接收数据时正与一种奇怪的行为作斗争。 我在中断模式下使用 i2c 模块、7位地址、8位数据、无 FDF、接收器模式、 “忽略 NACK”选项集,hL_i2c.c 驱动程序。
只有当传输了2个数据字节(R/W = 0时、1个字节 i2c 从器件地址、1个字节寄存器地址、1个数据字节和 len = 2时调用 i2CReceive())时、我才能成功完成数据传输。 如果我尝试传输2个以上的字节(len>2),则一切都将失败。
通过观察示波器上的信号、我可以清楚地看到、在接收到第二个字节后、SCL 线路被 I2C 接收器模块无限期地连接到"0"、传输肯定不会成功。 接收器似乎强制停止传输和某一点、但我无法确定发生的位置和方式。
是否有人遇到过相同的问题? 相反、是否有人在其 TMS570 i2c 从应用中成功接收到超过2个字节?
我无法确定可以推断这种阻塞条件的完整机制。 我尝试将 i2c 接收器 SCL 线路配置为输入(Halcogen)、以排除它将线路设置为"0"的机会、但它没有任何效果(为什么不呢?) 有人对此有什么提示吗?
我花了很长的时间来调查这个问题。 我将更改我的项目设置、以保持这一2个数据字节传输的限制、尽管这非常令人沮丧。 如果有人愿意、我会非常感谢
有线索可以帮助我了解如何向前迈进。
非常感谢您的参与。