會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客



(1) 2 »


讀取I2C_EEPROM需要注意什麼地方,請大家指教...
初級會員
註冊日期:
2004/05/19 09:22
來自 台北
所屬群組:
註冊會員
文章: 31
等級: 4; EXP: 31
HP : 0 / 82
MP : 10 / 3770
離線
現在許多應用都會用到I2C_EEPROM來存取使用者的資料,但是在存取EEPROM時需要注意什麼地方呢,因為太快存取下一筆資料時很像會出現錯誤,大家還有遇到什麼的狀況,說出來討論一下吧 .....

2004/05/19 10:57
轉換PDF檔 列印


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14868
等級: 73; EXP: 62
HP : 1089 / 1815
MP : 4956 / 82840
離線
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/05/19 12:09
轉換PDF檔 列印


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
版主
註冊日期:
2004/04/28 12:58
所屬群組:
註冊會員
DISTI
文章: 338
等級: 17; EXP: 17
HP : 0 / 404
MP : 112 / 18453
離線
我的經驗是:不管先前有沒有對EEPROM下過任何指令,反正不管是READ DATA或WRITE DATA的指令,指令第一個BYTE一定是BIT0=0(要先給EEPROM ADDRESS),即是一種形式的WRITE。之後,就要去POLLING ACK。若沒收到ACK,就重送START,再下第一個BYTE (WRITE ADDRESS),一直重覆直到收到ACK為止,再接下去下後面的指令。我用這種方式,存取24LC256,一直很順利。
另外,POWER ON之後,不要太快下指令,否則第一次會收不到ACK。

2004/05/19 12:57
轉換PDF檔 列印


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
初級會員
註冊日期:
2004/05/19 15:30
所屬群組:
註冊會員
文章: 39
等級: 5; EXP: 2
HP : 0 / 100
MP : 13 / 4578
離線
其實我本身對這個問題是問過許多位的前輩!我想該注意的地方有前輩說的很清楚了,另一個他們沒說的重點是在eeprom的address 0x00這一個位置不要用!因為這一個位置的資料很容易受到雜訊的干擾!很多人的習慣是0x00-0x0f都不用。另外資料存取的速度我想只要你有判斷ack的訊號是都還好......
以上為小弟拙見,如有謬誤還請大大給予指正!謝謝

2004/05/19 21:25
轉換PDF檔 列印


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
新會員
註冊日期:
2004/05/17 09:57
所屬群組:
註冊會員
文章: 14
等級: 2; EXP: 50
HP : 0 / 37
MP : 4 / 1712
離線

請問ACK 與 NO ACK 要如何去判別...





pic 新手
---------------------------------------------------
16c54 ctrl 24lc02
正在研讀如何控制
---------------------------------------------------

2004/05/21 10:22
轉換PDF檔 列印


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
版主
註冊日期:
2004/04/28 12:58
所屬群組:
註冊會員
DISTI
文章: 338
等級: 17; EXP: 17
HP : 0 / 404
MP : 112 / 18453
離線
引用:

yichung 寫道:

請問ACK 與 NO ACK 要如何去判別...





pic 新手
---------------------------------------------------
16c54 ctrl 24lc02
正在研讀如何控制
---------------------------------------------------

當一個byte由傳送方傳給接收方的時候,當那個byte傳完時,在其後緊接著的那一個clock,即為第9個clock時,傳送方的data線上會「傳」高位元(電位)的資料。如果接收方有將該位元拉為低位元(電位),那就表示接收方回了一個ACK;否則就表示回了一個NACK。為什麼將「傳」用引號括起來呢?這是因為其實I2C的CLOCK及DATA線具有所謂的OPEN COLLECTOR的特性;傳高位元,其實就等於沒傳資料,藉以判斷有沒有人將DATA線拉LOW (ACK)。

2004/05/24 10:28
轉換PDF檔 列印


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14868
等級: 73; EXP: 62
HP : 1089 / 1815
MP : 4956 / 82840
離線
在 Microchip 台灣網站 http://www.microchip.com.tw/example.htm
中的程式編號12 及 12-1 就有範例可供參考,這是使用硬體的 I2C 存取方式。

至於 Microchip 美國所提供的 I2C 應用範例可參考以下之網址
http://www.microchip.com/stellent/idc ... &nodeId=1490&filterID=392
其中AN554 是如何使用軟體的方式來完成 I2C Multi-Master Access. 有興趣的或不妨詳讀相性I2C的功力會大增。

建議如有資料需存在EEPROM最好有check-sum的檢驗機制會比較穩當點。

2004/05/24 17:20
轉換PDF檔 列印


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
新會員
註冊日期:
2004/05/17 09:57
所屬群組:
註冊會員
文章: 14
等級: 2; EXP: 50
HP : 0 / 37
MP : 4 / 1712
離線
那傳送方再傳送第9Bit 位High 時,接收方會回應Low...(ACK)
如果沒回應Low的話是不是需要從傳8個bit再繼續Check ACK
是不是這樣子ㄋ??

2004/05/25 13:40
轉換PDF檔 列印


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
管理員
註冊日期:
2004/04/27 14:38
所屬群組:
站務管理者
註冊會員
文章: 134
等級: 10; EXP: 62
HP : 0 / 240
MP : 44 / 10983
離線
引用:

yichung 寫道:
那傳送方再傳送第9Bit 位High 時,接收方會回應Low...(ACK)
如果沒回應Low的話是不是需要從傳8個bit再繼續Check ACK
是不是這樣子ㄋ??

是的。但是8個BIT之前還要先傳一次START。如此重覆的動作,就是一般在EEPROM資料手冊中寫的"ACKNOWLEDGE POLLING"。

2004/05/25 14:38
轉換PDF檔 列印


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14868
等級: 73; EXP: 62
HP : 1089 / 1815
MP : 4956 / 82840
離線
如果在第九個 bit 的 clock 時間(SCL由hi變Lo時)
沒收到 low 的 ACK 回應,就表示Slave端接收資料
有錯,此時可重新送出 Repeat Start 信號後,
重新再傳一次資料

2004/05/25 15:56
轉換PDF檔 列印



(1) 2 »



無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project