EEPROM AT24Cxx應用介紹

2021-09-27 09:55:34 字數 3314 閱讀 5327

結論:1、讀寫at24cxx晶元,根據容量有多種方式:一、容量為at24c01~at24c16,首先傳送裝置位址(8位位址),再傳送資料位址(8位位址),再傳送或者接受資料。

二、at24c32/at24c64~at24c512,首先傳送裝置位址(8位位址),再傳送高位資料位址,再傳送地位資料位址,再傳送或者接受資料。

三、容量at24c1024的晶元,是把容量一和容量二的方法結合,裝置位址中要用一位作為資料位址位,儲存位址長度是17位。

1)、at24c01~at24c16:這一類又分為兩類,分別為at24c01/at24c02和at24c04~at24c16;他們的裝置位址為高7位,低1位用來作為讀寫標示位,1為讀,0為寫。

*1*、at24c01/at24c02。at24c01/at24c02的a0、a1、a2引腳作為7位裝置位址的低三位,高4為固定為1010b,低三位a0、a1、a2確定了at24cxx的裝置位址,所以一根i2c線上最大可以接8個at24cxx,位址為1010000b~1010111b。

*2*、at24c04~at24c16的 a0、a1、a2只使用一部分,不用的懸空或者接地(資料手冊中寫的是懸空不接)。舉例:at24c04只用a2、a1引腳作為裝置位址,另外一位a0不用懸空,傳送位址中對應的這位(a0)用來寫入頁定址的頁面號,一根i2c線上最大可以接4個,位址為101000xb~101011xb

2)、at24c32/at24c64:和at24c01/at24c02一樣,區別是,傳送資料位址變成16位。

注意事項:對at24c32來說,wp置高,則只有四分之一受保護,即0x0c00-0x0fff。也就是說保護區為1kbytes。對於低位址的四分之三,則不保護。所以,如果資料較多時,可以有選擇地儲存。不重要的資料則放在低四分之三區域,重要的資料則放在高四分之一區域。

詳細如下:

圖at24c01/02/04/08/16的外形級封裝和引腳說明

at24c系列為美國atmel公司推出的序列coms型e2prom,是典型的序列通訊e2prom 。

at :atmel公司出品

24:  系列號

c :商業

xx : 儲存容量 ,舉例 01 –> 1k à 128 位元組

02 à 2k à 256 位元組

…………….

16à 16k à 2k 位元組

i2c匯流排協議規定,任何將資料傳送到匯流排的器件作為傳送器。任何從匯流排接收資料的器件為接收器。

主器件控制序列時鐘和起始、停止訊號的發生。主器件任何期間都可以傳送或接收資料,但是主器件控制資料傳送模式(傳送或者接收)。

wp寫保護引腳:當該引腳連線到vcc,i2c器件內的內容被寫保護(只能讀)。如果允許對器件進行正常的讀寫,那麼wp引腳需連線到地或者懸空。

通過器件位址輸入端a0、a1、a2可以實現講最多8個at24c01器件和at24c02器件、4個at24c04器件、2個at24c08器件、1個at24c16器件連線到匯流排上。當匯流排上只有乙個器件時,a0、a1、a2可以連線到地或者懸空。

下面重點分析一下這句話:為什麼 at24c01/at24c02 可以掛接8個器件呢?為什麼到了 at24c16 卻只能掛接1個器件呢???

why? 

器件識別控制位元組的作用

以at24c01/at24c02 和at24c16  舉例:

i2c匯流排上所有外圍器件都有唯一的位址,這個位址由器件位址和引腳位址兩部分組成。共7位。

器件位址是i2c器件固有的位址編碼,器件出廠時已經給定,不可更改。

引腳位址由i2c匯流排外圍器件的位址引腳a0、a1、a2決定,根據其在電路中接電源正極、接地或者懸空的不同,形成不同的位址**。引腳位址數也決定了同一器件可接入匯流排的最大數目。

此時於引腳位址無關,與 p2、p1、p0有關,即頁位址有關,頁位址高三位是器件識別控制位元組的1-3位,器件上的a0,a1,a2,就無效了,所以只能接1個at24c16器件。

頁位址是什麼乖乖,從何而來呢????

上圖可知 at24c16 儲存容量 16k = 2k位元組 = 128(頁面數)* 16 (每頁的位元組數) = 2^11 (定址位址位數 11位)。

at24c16內部有2048*8位的儲存容量,即可以儲存2k位元組的資料。這2k位元組被放在128個頁內,每頁存放16個位元組。所以對at24c16內部的訪問需要11位位址(0-7ff)。

舉個實際的例子:

對at24c16訪問時,按照頁位址和頁偏移量的方式進行訪問。

比如要訪問第100頁的第3個位元組,則在傳送定址的時候,就要傳送0x0643,其中頁位址的高三位放在器件位址中。

第100頁的第3個位元組  ==  0x0643

0643 = 6 * 256 + 4 * 16  + 3 =  (6*16+4)*16 + 3 = 1603 

就是 100頁的第3個位元組。

所以在編寫程式對at24c16第100頁的第3個位元組進行寫資料的時候,步驟如下:

1)傳送起始訊號;

2)傳送器件位址0xac(1010 1100,1010是固定位址,110是頁位址的高三位,0表示寫操作);

3)傳送操作位址0x43(0100 0010,0100是頁位址的低四位,0010是頁位址偏移量,即第100頁內的第三個位元組;

4)傳送要寫的資料;

5)傳送終止訊號。

分類:

stm32

好文要頂

關注我收藏該文

白衣盡濕

關注 - 3

粉絲 - 20

+加關注

0 0

EEPROM(AT24C16)頁寫演算法

學習微控制器或者從事嵌入式開發的,對於eeprom絕不會陌生,尤其的24系列的eeprom很是經典,或者與此相容的fram系列,如at24c02 at24c16 fm24c16等。驅動起這個系列的eeprom,可以說是沒有任何難點,各類教程 原始碼 驅動都可以輕鬆找到並作稍微改動即可使用。但是,對於...

EEPROM AT24C16讀寫注意事項

at24c16每頁有16個位元組,128頁,共2048位元組。128頁分成8塊,每塊256位元組。i2c開始訊號後,第乙個位元組為器件位址,由1010 3位塊位址 1位讀寫標誌組成,3位塊位址剛好可以表示8個塊,8塊的器件位址分別為 0xa0 0xa2 0xa4 0xa6 0xa8 0xaa 0xa...

I2C讀寫EEPPROM AT24CXX系列 特點

各型號eeprom記憶體大小 型號 記憶體大小 字位址長度 wp腳 at24c02 2k 256位元組 乙個位元組0xff 256 高電平寫保護,低電平取消寫保護 at24c04 4k 512位元組 兩個位元組 高電平寫保護,低電平取消寫保護 at24c32 32k 4096位元組 兩個位元組 高電...