在I2C通信中,EEPROM为什么会主动的产生一个应答位
I2C通信中,当EEPROM接收数据时,每收到一个字节后,EEPROM就要产生一个应答位‘0’,请问这个应答位EEPROM是怎么主动产生的? 我一直觉得只有单片机才能主动产生高低电平;难道EEPROM也能主动产生高低电平; 我一直觉得EEPROM是受控于单片机的,因此EEPROM是不会主动发出高电平或低电平的;
[解决办法]
看了下1-5楼的回复..
1楼扯远是肯定的, 看下24c02的 datasheet,E2PROM灰常简单,咋可能有MCU...
2楼 我数字电路学的不好,但没MCU还能在收到字节后自动回复,我以前认为是通过门电路实现的。
3楼 否定了门电路说法,说需要协议,但也没给具体答案。个人觉得类似计数器,收8bit拉下电平,门电路应
该行.(纯猜测 望指正!)
4楼哥们把通信过程说的挺清楚的,但真心跟LZ问的毫无关系啊~~~
5楼..比4楼还水...
OK,到我6楼了, 我前两天刚好做了GPIO模拟I2C跟E2PROM通信,楼主如果代码方面有疑问,去我博客里自己翻两篇GPIO的文章哈,也可短信我。
至于问题本身的答案, 我只能说,我觉得是门电路实现的。 还望高人指正。
最后,我的疑问是,GPIO模拟I2C与一个I2C设备通信的话,是否还能收到ACK? 我实际测试感觉没收到,不得不在ACK中加了超时退出的代码,暂未发现影响程序使用。