IIC应答位查询不太懂啊……
开发文档上说一旦内部写周期启动,EEPROM输入无效,此时即可启动应答查询:发送起始条件和器件地址(读/写位为期望的操作)。只有内部写周期完成,EEPROM才应答"0".之后可进行读写操作
这句话什么意思啊?不太懂,求详解……
[解决办法]
EEPROM在启动将外部输入的数据写入自己的内存的时候,是无法继续接受外部信号的。等EEPROM自己将自己缓冲区的数据写入自己的内存后,才将可以接受外部指令。
这个时候发送起始条件和器件地址操作,EEPROM会将数据线发送数据0,标示可以继续后续操作。
整理一下,过程
假设上电初始化后,主控发送写66H到EEPROM,EEPROM收到66H后,暂存缓冲区,接收到停止位后,屏蔽外部输入,将data线输出数据1,将缓冲区的66H写到自己的内存中。写操作完成后,才开启继续接受外部输入指令。
主控要查询何时EEPROM自己写内存完成呢,就是LZ说的在第一次将66H发送其停止位后,可以循环发送开始条件以及器件地址,将data线设为输入,看看是否有数据0出现,如果有,则EEPROm内部写操作已经完成,主控可以继续后续操作。