標(biāo)題:
關(guān)于24c02存儲器停止條件的時序問題
[打印本頁]
作者:
nicexiaowei
時間:
2022-9-22 23:03
標(biāo)題:
關(guān)于24c02存儲器停止條件的時序問題
在向24c02寫入數(shù)據(jù)時,發(fā)現(xiàn)只能寫入偶數(shù),不能寫入奇數(shù)。在論壇搜索時發(fā)現(xiàn)有人也遇到了同樣的問題。
EEPROM 24C02 不能寫入奇數(shù),請高手解答
。然后我按照回答,將終止條件的時序由SDA=0;SCL=1;delay;SDA=1;delay;改為了SDA=0;delay;SCL=1;delay;SDA=1;delay后,便可以正常寫入了。
到這我不明白,為什么都是在SCL為高電平時,SDA由低變高,但結(jié)果卻不一樣。還有明明偶數(shù)能寫進去,但是奇數(shù)寫不進去
作者:
cnos
時間:
2022-9-22 23:52
SDA=0;SCL=1;中間沒有延時,超過I2C最大允許速率了。
作者:
188610329
時間:
2022-9-23 01:55
通常, 只要不是 布線不合理, 并且有足夠的上拉。
SDA=0;
SCL=1;delay(); 只需要 這里有個 延時就可以了,
SDA=1;
而你參考的那個帖子, 原主是這個順序,所以才發(fā)生問題。
SCL=1;
SDA=0;delay();
SDA=1;delay();
所以,你最好確認(rèn)一下, 你之前到底是 操作順序錯,還是delay的問題?
作者:
wufa1986
時間:
2022-9-23 08:02
直接復(fù)制STC官方例程,不要自己的理解去寫
作者:
hhxx23
時間:
2022-9-23 09:08
cnos 發(fā)表于 2022-9-22 23:52
SDA=0;SCL=1;中間沒有延時,超過I2C最大允許速率了。
哦,原來如此,明白了
作者:
coody_sz
時間:
2022-9-23 11:33
I2C是簡單的時序,只要嚴(yán)格按照時序?qū),都不會有問題,24C系列,注意最高速度、數(shù)據(jù)時鐘間的時間、頁寫入間隔時間。示波器看一下就明白了,大部分訪問有問題都是因為用了更快速的MCU而沒有調(diào)慢速度。
作者:
nicexiaowei
時間:
2022-9-23 15:07
感謝大佬們的回復(fù),我明白為什么能寫進偶數(shù),但寫不進去奇數(shù)的原因了。歸根到底還是我對終止條件的時序沒有理解透徹。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1