IIC 无ACK

2019-07-15 22:57发布

用verilog编写E2PROM AT24C1024的读写程序,写入数据时,正常,有ACK回复。但是在读时,第一次start 后写设备地址和寄存器地址,有回复ACK;再产生start后改变方向,设备地址最后一位改成1后,不回复ACK。请教各位有可能是什么原因?
读时第二次start后写设备地址 读时第二次start后写设备地址
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
桀骜箍狼
1楼-- · 2019-07-16 00:54
同求大神解答》》》》》》》》》》》》
suna123
2楼-- · 2019-07-16 03:36
因为SDA如果是输出额话,Pin脚是开楼状态,如果不给0的话,因为有上拉所以肯定是High,所以如果要变Low,必须给Low电平。
而读状态,首先发送Slave地址,Slave收到后回给Master一个ACK作为应答,接来下就是读数据了,此时Master-Trans转为Master-Receive,Slave-Receive转为Slave-Send,所以这个Byte的ACK是Master给的。Slave不会给ACK的。
详细去查查飞利浦的THE I 2C-BUS SPECIFICATION文件
Giliable
3楼-- · 2019-07-16 05:14
楼主无私分享 谢谢
贾jia贾
4楼-- · 2019-07-16 09:17
赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞

一周热门 更多>