協議 I2C I2C子系統之at24c02簡介

2021-07-06 02:12:17 字數 3221 閱讀 3719

at24c02儲存規格

總共32個page,每個page為8byte。總共256kb(2kb),位址的長度需要使用8bit(剛好可以用來表示256個位元組的位址)來表示。

at24cc02的位址

裝置的位址由8bit組成,前4 bit是固定的(1010);接著的3 bit是和a2 a1 a0的硬體連線相關,通過指定這3 bit可以在統一個i2c系統裡面最多連線8個at24c02裝置;第8bit用來表示讀/寫選擇,1表示讀/0表示寫。at24c02會和匯流排上的裝置位址進行比較,假如一直則at24c02輸出乙個0,不一致則返回的是standby狀態。

tq2440開發板的a2 a1 a0位址線全接地,所以此處at24c02的讀寫位址格式為:

讀at24c02:1010 0001

寫at24c02:1010 0000

at24c02寫操作

byte write的操作時序如上圖所示。主機在傳送完畢device address,並且接受到確定資訊後再接著傳送需要寫的位址(把這個資料寫到哪個位址上),然後再傳送資料。當at24c02接受到這個資料時,會輸出乙個0,此時主機必須傳送乙個停止訊號。然後at24c02進入寫時序,將剛才接受到的資料寫到儲存單元中,並且在此期間不響應任何輸入,知道寫操作完成。

page write前面幾步的操作和byteqrite操作類似,只是在成功傳送第乙個資料之後,主機在收到at24c02傳送的確認資訊後,不會傳送停止訊號,而是接著傳送剩餘的資料,對at24c02來說就再接著傳送剩餘的7個位元組,直到1個page的資料傳送完畢之後才傳送停止訊號。

在頁操作的時候dataword address用於表示業內的位址的低3bits會每收到乙個資料就自動增長,頁位址維持不變。所以,當業內位址到頂端時,此時假如還有資料,則資料將會被放到頁的起始位址處,頁其實位址中之前存放的資料將被覆蓋。即at24c02頁操作時,寫入的資料大於8 byte,則大於8 byte的資料將重新從此頁起始處存放,覆蓋掉之前寫入的資料。

at24c02讀操作

2.1 從當前位址讀

at24c02內部的data word address計數器會一直儲存著最後一次讀/寫操作後自動變化的dataword address位址。此計數器中儲存的位址值一直有效,直到at24c02斷電。並且這個位址值在讀/寫過程中的roll over方式不一樣。讀操作時候,會從最後一頁的最後乙個位元組跳到第一頁的第乙個位元組然;寫操作時,會從當前頁的最後乙個位元組跳到當前頁的第乙個位元組。

所以從當前位址讀的意思,就是從當前data word address中儲存的位址中讀取乙個位元組的資料。

2.2 從隨機位址讀

隨機讀寫的操作就是先用乙個寫操作來騙過at24c02器件,使其內部的data word address中的位址值修改,然後再通過current address reas操作來讀取所需位址上的資料。

如圖所示,先傳送乙個寫操作,但是傳送完畢word address之並不傳送資料,而是傳送乙個停止訊號,此時at24c02中的data word address中的位址值就被修改了,然後通過current address read去讀取此位址上的資料。

2.3 連續讀

Linux驅動子系統之I2C 5

5 客戶驅動 5.1 概述 i2c客戶驅動是對i2c從裝置的實現,乙個具體的i2c客戶驅動包括兩個部分 一部分是i2c driver,用於將裝置掛接於i2c匯流排 另一部分是裝置本身的驅動。i2c客戶驅動程式主要由i2c driver和i2c client來描述。5.2 例項原始碼分析 好了,我們來...

Linux驅動子系統之I2C 5

5 客戶驅動 5.1 概述 i2c客戶驅動是對i2c從裝置的實現,乙個具體的i2c客戶驅動包括兩個部分 一部分是i2c driver,用於將裝置掛接於i2c匯流排 另一部分是裝置本身的驅動。i2c客戶驅動程式主要由i2c driver和i2c client來描述。5.2 例項原始碼分析 好了,我們來...

Linux驅動子系統之I2C 1

1.1 概述 i2c匯流排是由philips公司開發的兩線式序列匯流排,這兩根線為時鐘線 scl 和雙向資料線 sda 由於i2c匯流排僅需要兩根線,因此在電路板上占用的空間更少,帶來的問題是頻寬較窄。i2c在標準模式下傳輸速率最高100kb s,在快速模式下最高可達400kb s。屬於半雙工。在嵌...