本帖最后由 heisexingqisi 于 2023-11-21 16:57 编辑
如果有这么一个芯片,I2C接口,通信协议是:开始信号+地址+(寄存器地址,末尾1表示读,末位0表示写)+读或者写数据。
看起来没什么,觉得还OK了,其实这种情况对于很多标准的I2C接口是束手无策了,因为标准的I2C是这样的
开始信号+(地址,末位1表示读,末位0表示写)+寄存器地址+读或者写操作。
关键就在从机是什么时候识别这个读写位的,如果是在开始信号后的第一个字节,那么就是标准的I2C协议,如果是在第二个字节,那完了,跟标准不一致,标准的这个时候可能就认为是写操作呢,结果却是读操作。。。
以上为标准I2C读写
以下是非标准的I2C读写时序
现在知道大家为何都讨厌非标协议了吧。
|