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