Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
資深會員
|
他的DELAY 是為了 下STOP之後需要一段時間START而放的
只要DELAY夠久 任何I2C的IC都適用 不過while 太危險 要加BREAK機制 只要IC壞掉 就會卡到死 還有因該增加 讀寫 錯誤的機制
發表於: 2010/2/10 14:57
|
|||
My name is jan,Jan是棒的
|
||||
|
Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
版主
|
參照:
一般寫入資料之間不建議使用 Delay 的方式來做兩筆寫入資料的間隔,一般會建議使用比較有效率的 Ack polling 的方式來做會比較好。曾經碰過用 Delay 方式做的客戶,因為時間卡的剛剛好,結果換了另一批貨後出現了不良率,檢討下來就是有抹些 EEPROM 的寫入時間稍微要久一點而造成資料錯亂。 參考一下 W401 C18 教育訓練裡的練習六裡的範例程式。 http://www.microchip.com.tw/modules/w ... glefile.php?cid=4&lid=236
發表於: 2010/2/10 14:14
|
|||
|
Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
資深會員
|
截取AT24C32(BYTE).C 部份
void AT24READ(ADDR) { //------------------------Send_start_Bit-------------- SEN=1; while(SEN==1) { } //------------------------------------------------------- SSPBUF=TX_OPCODE; //-------------------------send_data------------------ while(BF==1) { } //--------------------------Get_ACK------------------- while(ACKSTAT==1) { } .... 不知是故意,刪除while迴圈中的code,還是本來就沒有, 如果本來就沒有,等於沒有做檢查,很容易出問題...........
發表於: 2010/2/10 13:54
|
|||
|
Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
初級會員
|
下面兩個附件分別是AT24C32使用byte和page儲存的程式
程式基本上是沒什麼改變 只是資料位址須要用兩個BYTE來寫 寫入程式最後需要加個DELAY來做緩衝 Attach file: Link only for registered users
發表於: 2010/2/10 12:48
|
|||
|
Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
資深會員
|
可以簡單說明,解決前,解決後的差異所在嗎? 謝謝!!!
一來可以讓大家了解到底是什麼問題, 二來也讓以後有同樣的問題的人,能夠有例可循.
發表於: 2010/2/8 13:41
|
|||
|
Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
資深會員
|
解決辦法說明一下呀
發表於: 2010/2/8 13:37
|
|||
My name is jan,Jan是棒的
|
||||
|
Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
初級會員
|
問題解決了
我以經成功試出AT24C32的用法 謝謝大家的幫忙
發表於: 2010/2/8 12:37
|
|||
|
Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
新會員
|
其是你的問題很簡單,就是看不到 Microchip 的人回答你的問題。有可能是你在Microchip 的官網上要討論 Atmel 的 AT24C32 ?
下次要問問題之前先行了解一下是否踏錯腳了!
發表於: 2010/2/5 13:31
|
|||
|
Re: EEPROM AT24C32問題
|
||||
---|---|---|---|---|
資深會員
|
用示波器量一下吧!!! 正確波形如附圖
Attach file: (0.00 KB)
發表於: 2010/2/5 9:58
|
|||
|