非标I2C,主机不回NACK信号如何改底层?

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
yach_4179311
Level 2
Level 2
10 replies posted 5 replies posted 5 questions asked

dear sir

       客户的I2C信号是个自定义的处理方式,在主机获得数据后不会NACK信号,这样EZI2C组件会一直报错,导致I2C重启信号丢失,这样的情况如何修底层程序?

0 点赞
1 解答
LinglingG_46
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 10 questions asked

主机读取数据的时候,在第8个bit位之后,如果给ACK信号,那么说明读取的不是最后一字节,如果是NACK说明是最后一个字节,接下来需要发送stop信号,结束当前通信状态。

你描述的主机在获取数据后不回NACK,那么回复的就应该是ACK,理论上应该是接着传送数据。

EZI2C的底层代码不建议修改。

在原帖中查看解决方案

0 点赞
1 回复
LinglingG_46
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 10 questions asked

主机读取数据的时候,在第8个bit位之后,如果给ACK信号,那么说明读取的不是最后一字节,如果是NACK说明是最后一个字节,接下来需要发送stop信号,结束当前通信状态。

你描述的主机在获取数据后不回NACK,那么回复的就应该是ACK,理论上应该是接着传送数据。

EZI2C的底层代码不建议修改。

0 点赞