Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
|
||||
---|---|---|---|---|
版主
![]() ![]() ![]() |
我的經驗是:不管先前有沒有對EEPROM下過任何指令,反正不管是READ DATA或WRITE DATA的指令,指令第一個BYTE一定是BIT0=0(要先給EEPROM ADDRESS),即是一種形式的WRITE。之後,就要去POLLING ACK。若沒收到ACK,就重送START,再下第一個BYTE (WRITE ADDRESS),一直重覆直到收到ACK為止,再接下去下後面的指令。我用這種方式,存取24LC256,一直很順利。
另外,POWER ON之後,不要太快下指令,否則第一次會收不到ACK。
發表於: 2004/5/19 12:57
|
|||
|
Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
|
||||
---|---|---|---|---|
版主
![]() ![]() ![]() |
1. 以Microchip的24LC16為例,最快的SCL 頻率為400KH所以使用時I2C的Bus 速率不可超過。
2. Acknowledge bit(ACK)一定要檢查,有很的人是不檢查ACK位元就直接進入下一步驟這是很危險的,ACK的回應代表剛才那筆資料是否正確被收到,如果ACK的回應為1的話就代表先前的資料接收有誤,你必須重新下Restart訊號重投再來。 3. 就一般24系列的EEPROM而言,它大約需4~6mS (最長到10mS)的寫入時間,這時去檢查ACK位元會為1, 代表EEPROM正在忙碌狀態,很多人在寫24系列時(93需check Busy)只用Dealy的方式而忽略應該用polling ACK位元的重要性,這種用Delay的方式有時會因IC的不同而發生有些批號的IC會工作,有些則無法正常工作。 切記!ACK一定要Check.....
發表於: 2004/5/19 12:09
|
|||
|
讀取I2C_EEPROM需要注意什麼地方,請大家指教...
|
||||
---|---|---|---|---|
初級會員
![]() ![]() ![]() |
現在許多應用都會用到I2C_EEPROM來存取使用者的資料,但是在存取EEPROM時需要注意什麼地方呢,因為太快存取下一筆資料時很像會出現錯誤,大家還有遇到什麼的狀況,說出來討論一下吧 .....
![]()
發表於: 2004/5/19 10:57
|
|||
生活的本身,要具備承擔責任的勇氣,才能活的充實,活的有價值,活的更幸福。
生命的意義在於努力追求目標,在於面對失敗,在於活得積極。 人生中本來就會失去很多東西,但是最重要的 |
||||
|