• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users




(1) 2 »


讀取I2C_EEPROM需要注意什麼地方,請大家指教...
#1
初級會員
初級會員


查看用戶資訊
現在許多應用都會用到I2C_EEPROM來存取使用者的資料,但是在存取EEPROM時需要注意什麼地方呢,因為太快存取下一筆資料時很像會出現錯誤,大家還有遇到什麼的狀況,說出來討論一下吧 .....

發表於: 2004/5/19 10:57
生活的本身,要具備承擔責任的勇氣,才能活的充實,活的有價值,活的更幸福。
生命的意義在於努力追求目標,在於面對失敗,在於活得積極。
人生中本來就會失去很多東西,但是最重要的
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
#2
版主
版主


查看用戶資訊
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
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
#3
版主
版主


查看用戶資訊
我的經驗是:不管先前有沒有對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
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
#4
初級會員
初級會員


查看用戶資訊
其實我本身對這個問題是問過許多位的前輩!我想該注意的地方有前輩說的很清楚了,另一個他們沒說的重點是在eeprom的address 0x00這一個位置不要用!因為這一個位置的資料很容易受到雜訊的干擾!很多人的習慣是0x00-0x0f都不用。另外資料存取的速度我想只要你有判斷ack的訊號是都還好......
以上為小弟拙見,如有謬誤還請大大給予指正!謝謝

發表於: 2004/5/19 21:25
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
#5
新會員
新會員


查看用戶資訊

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





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

發表於: 2004/5/21 10:22
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
#6
版主
版主


查看用戶資訊
參照:

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/5/24 10:28
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
#7
版主
版主


查看用戶資訊
在 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/5/24 17:20
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
#8
新會員
新會員


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

發表於: 2004/5/25 13:40
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
#9
管理員
管理員


查看用戶資訊
參照:

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

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

發表於: 2004/5/25 14:38
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
#10
版主
版主


查看用戶資訊
如果在第九個 bit 的 clock 時間(SCL由hi變Lo時)
沒收到 low 的 ACK 回應,就表示Slave端接收資料
有錯,此時可重新送出 Repeat Start 信號後,
重新再傳一次資料

發表於: 2004/5/25 15:56
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------