标题:
关于24c02存储器停止条件的时序问题
[打印本页]
作者:
nicexiaowei
时间:
2022-9-22 23:03
标题:
关于24c02存储器停止条件的时序问题
在向24c02写入数据时,发现只能写入偶数,不能写入奇数。在论坛搜索时发现有人也遇到了同样的问题。
EEPROM 24C02 不能写入奇数,请高手解答
。然后我按照回答,将终止条件的时序由SDA=0;SCL=1;delay;SDA=1;delay;改为了SDA=0;delay;SCL=1;delay;SDA=1;delay后,便可以正常写入了。
到这我不明白,为什么都是在SCL为高电平时,SDA由低变高,但结果却不一样。还有明明偶数能写进去,但是奇数写不进去
作者:
cnos
时间:
2022-9-22 23:52
SDA=0;SCL=1;中间没有延时,超过I2C最大允许速率了。
作者:
188610329
时间:
2022-9-23 01:55
通常, 只要不是 布线不合理, 并且有足够的上拉。
SDA=0;
SCL=1;delay(); 只需要 这里有个 延时就可以了,
SDA=1;
而你参考的那个帖子, 原主是这个顺序,所以才发生问题。
SCL=1;
SDA=0;delay();
SDA=1;delay();
所以,你最好确认一下, 你之前到底是 操作顺序错,还是delay的问题?
作者:
wufa1986
时间:
2022-9-23 08:02
直接复制STC官方例程,不要自己的理解去写
作者:
hhxx23
时间:
2022-9-23 09:08
cnos 发表于 2022-9-22 23:52
SDA=0;SCL=1;中间没有延时,超过I2C最大允许速率了。
哦,原来如此,明白了
作者:
coody_sz
时间:
2022-9-23 11:33
I2C是简单的时序,只要严格按照时序写,都不会有问题,24C系列,注意最高速度、数据时钟间的时间、页写入间隔时间。示波器看一下就明白了,大部分访问有问题都是因为用了更快速的MCU而没有调慢速度。
作者:
nicexiaowei
时间:
2022-9-23 15:07
感谢大佬们的回复,我明白为什么能写进偶数,但写不进去奇数的原因了。归根到底还是我对终止条件的时序没有理解透彻。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1