如何看EEPROM芯片手冊(cè)(以AT24CXX為例)
編 者 悟 語
每天結(jié)束的可以不完滿,但必須讓它盡量充實(shí),沒有人會(huì)向你保證什么,但只要肯去爭取,你就擁有了獲得的權(quán)利。
文 章 導(dǎo) 讀
今天給小伙伴們整理了USB接口的類型,帶圖片說明,好辨識(shí)!USB傳輸速度和USB引線的定義情況,希望對(duì)小伙伴們有所幫助哈,!
1 看EEPROM手冊(cè)要看什么
下面的內(nèi)容從軟件開發(fā)的角度出發(fā),可能并不完全,但下面的內(nèi)容是需要特別注意的。
① EEPROM大小。
② 通信協(xié)議。
③ 傳輸速率。
④ 引腳連接及功能。
⑤ 讀寫時(shí)序。
⑥ 存儲(chǔ)組織結(jié)構(gòu)(頁組織結(jié)構(gòu))。
⑦ 結(jié)合協(xié)議和時(shí)序閱讀讀寫機(jī)制。
⑧ 編程時(shí)根據(jù)需要調(diào)整時(shí)間參數(shù)(讀寫速,直流/交流特性參數(shù)等)。
如果對(duì)機(jī)制不夠了解可以看看功能框圖,也可以略過。
閱讀時(shí)對(duì)于已經(jīng)有過類似使用經(jīng)歷的,更多的是針對(duì)某一個(gè)部分進(jìn)行查閱。
對(duì)于沒有對(duì)整個(gè)手冊(cè)進(jìn)行閱讀的人員,建議整個(gè)讀下,讀的過程中,主要關(guān)注上面的問題,其他的查漏補(bǔ)缺即可。
2 AT24C512的主要功能摘要
1)EEPROM大小
此部分在概覽部分,可以分析下頁大小是怎么來的,做到心中有數(shù)。
AT24C512的大小為512Kbit。
512Kbit = 512 / 8 KByte = 64KByte。
內(nèi)部有512個(gè)頁,每頁128Byte。
64KByte = 64 * 1024Byte = 512*2 * 64Byte = 512 * 128Byte。
2)通信協(xié)議
通信協(xié)議為I2C,硬件連接可以用芯片的I2C接口引腳,也可以用普通引腳模擬,帶有FlexIO的芯片,用配置寄存器的方式進(jìn)行I2C通信,引腳復(fù)用功能需要配置為FlexIO功能。
3)通信速率
電壓與傳輸速率的對(duì)應(yīng)如下:
1 MHz(5V),400 kHz (2.7V) ,100 kHz(1.8V)。
3)引腳連接及功能
A0和A1為設(shè)備地址選擇,A2有些手冊(cè)上為NC,此時(shí)能擴(kuò)4片,如果有A2能擴(kuò)8片,擴(kuò)這么多的比較少見。
Vss:地。
SDA:雙向串行數(shù)據(jù)輸入/輸出口,
SCL:串行時(shí)鐘輸入,上升沿,將SDA上數(shù)據(jù)寫入EEPROM,下降沿從EEPROM讀數(shù)據(jù)到SDA。
WP:寫保護(hù)。
VCC:供電電壓。
4)頁組織結(jié)構(gòu)
不同型號(hào)的EEPROM的頁大小不同,AT24C512是一頁128字節(jié),AT24C01是8個(gè)字節(jié),AT24C16為16個(gè)字節(jié),使用時(shí)查看具體手冊(cè)即可。
下圖是AT24C512的頁組織結(jié)構(gòu)圖,即下圖中的n = 127。
行地址指針:指向頁號(hào),一行就是一個(gè)頁緩沖。
列地址指針:指向某一頁中首先要訪問的字節(jié)位置,在傳輸每個(gè)數(shù)據(jù)字節(jié)時(shí),列地址指針將自動(dòng)遞增。
但是,在寫入操作期間,頁地址指針不會(huì)遞增,這意味著在頁寫入操作期間嘗試跨越頁邊界將導(dǎo)致數(shù)據(jù)回轉(zhuǎn)到此頁的開頭。
可以看出頁緩沖中的字節(jié)編號(hào)從0開始到127,即一個(gè)頁緩沖為128個(gè)字節(jié)??梢詫⒚總€(gè)頁緩沖看成一個(gè)成員個(gè)數(shù)為128的一維數(shù)組,數(shù)組中的每一個(gè)成員的大小為1Byte。
因?yàn)轫摯笮?28字節(jié),所以頁物理地址的起始地址只能是128的倍數(shù),如設(shè)備上的物理頁從地址0x0000、0x0080(128)、0x0100(256)開始,依此類推。
5)讀寫操作
① 控制字。
在將讀寫之前先看看控制字的格式,設(shè)置設(shè)備地址。
此控制為8位,前5位固定為10100,A0和A1為設(shè)備地址選擇,最多可以連接4片EEPROM,R/W為讀寫控制位,高為讀,低為寫。
② 寫操作。
AT24C512寫操作分為寫字節(jié)和寫頁。
默認(rèn)寫周期的典型值為5ms。
1> 寫字節(jié)
通常在向AT24C512發(fā)送設(shè)備地址控制字,并接到應(yīng)答信號(hào)后,還需要發(fā)送2個(gè)8位地址來選擇要寫數(shù)據(jù)的地址。
AT24C512接收到這個(gè)地址后會(huì)應(yīng)答一個(gè)零信號(hào),然后接收8位數(shù)據(jù)進(jìn)來,并再返回一個(gè)零應(yīng)答信號(hào)。
2> 寫頁
AT24C512可以一次性寫入一頁128字節(jié)。其初始化過程與寫字節(jié)的方法基本相同。
不同的是:當(dāng)寫入一個(gè)數(shù)據(jù)字節(jié)后,單片機(jī)不發(fā)停止?fàn)顟B(tài),而是在應(yīng)答信號(hào)后接著輸入127個(gè)字節(jié);每一個(gè)字節(jié)接收完畢后,AT24C512則照樣輸出一個(gè)零應(yīng)答信號(hào)。
③ 讀操作。
AT24C512讀操作有當(dāng)前地址讀、隨機(jī)讀、讀串三種方式。
其初始化過程基本與寫操作相同,只是在設(shè)備選擇字中的最低位要改成讀而已。
1> 讀當(dāng)前地址
讀當(dāng)前地址時(shí),內(nèi)部數(shù)據(jù)的地址將保持在最后的讀寫操作地址加1上,直到讀到最后字節(jié)后又回到最開始的位置。
內(nèi)部數(shù)據(jù)字地址計(jì)數(shù)器維護(hù)上次讀或?qū)懖僮髌陂g訪問的最后一個(gè)地址,遞增一個(gè),芯片只要一直保持供電,該地址在兩次操作之間保持有效。
讀取期間的地址回滾是從最后一個(gè)內(nèi)存頁的最后一個(gè)字節(jié)到第一頁的第一個(gè)字節(jié)。
一旦讀/寫選擇位設(shè)置為1的設(shè)備地址被時(shí)鐘輸入并被EEPROM確認(rèn),當(dāng)前地址數(shù)據(jù)字被串行時(shí)鐘輸出。
微控制器不應(yīng)答零,但會(huì)產(chǎn)生停止條件。
2> 隨機(jī)讀
隨機(jī)讀操作之前先要向AT24C512寫入一個(gè)字節(jié)地址,然后才能讀。
隨機(jī)讀取需要一個(gè)“偽”字節(jié)寫入序列來加載數(shù)據(jù)字地址。
一旦設(shè)備地址字和數(shù)據(jù)字地址被記錄并被EEPROM確認(rèn),微控制器必須產(chǎn)生另一個(gè)啟動(dòng)條件。
微控制器現(xiàn)在通過發(fā)送讀/寫選擇位高的設(shè)備地址來啟動(dòng)當(dāng)前地址的讀取。
EEPROM確認(rèn)設(shè)備地址,并連續(xù)時(shí)鐘輸出數(shù)據(jù)字。微控制器不響應(yīng)零,但會(huì)產(chǎn)生以下停止條件。
3> 順序讀
順序讀取由當(dāng)前地址讀取或隨機(jī)地址讀取啟動(dòng)。
微控制器接收到一個(gè)數(shù)據(jù)字后,它以一個(gè)應(yīng)答位作為響應(yīng)。
AT24C512在接收到應(yīng)答信號(hào)后會(huì)將地址加1,接著輸出下一個(gè)字節(jié)。當(dāng)單片機(jī)接收到數(shù)據(jù)但不送應(yīng)答信號(hào)時(shí),讀過程結(jié)束。
當(dāng)達(dá)到內(nèi)存地址限制時(shí),數(shù)據(jù)字地址將回滾,并繼續(xù)順序讀取。
當(dāng)微控制器沒有以零進(jìn)行響應(yīng),會(huì)以停止位,終止順序讀取操作。
今天就到這吧,其他的內(nèi)容大家結(jié)合自己的項(xiàng)目去閱讀手冊(cè)吧,需要注意的是,手冊(cè)中關(guān)于時(shí)序及通信機(jī)制的細(xì)節(jié)一定要認(rèn)真閱讀哈。
【1】I2C操作筆記-以 AT24C04為例
【2】學(xué)電子最好的工具之一:datasheet
【3】學(xué)電子最好的工具二:如何查找datasheet
【4】你所忽略的datasheet,能解答你的一切疑問
【5】SPI怎么玩?搞懂時(shí)序,運(yùn)用自如
【6】怎么看懂芯片的時(shí)序圖?怎么根據(jù)時(shí)序圖編程?
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!