串行EEPROM(24C02)接口方法_第1頁
串行EEPROM(24C02)接口方法_第2頁
串行EEPROM(24C02)接口方法_第3頁
串行EEPROM(24C02)接口方法_第4頁
串行EEPROM(24C02)接口方法_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、串行EEPROM(24C02)接口方法在新一代單片機中,無論總線型還是非總線型單片機,為了簡化系統(tǒng)結(jié)構(gòu),提高系統(tǒng)的可靠性,都推出了芯片間的串行數(shù)據(jù)傳輸技術(shù),設(shè)置了芯片間的串行傳輸接口或串行總線。串行總線擴展接線靈活,極易形成用戶的模塊化結(jié)構(gòu),同時將大大簡化其系統(tǒng)結(jié)構(gòu)。串行器件不僅占用很少的資源和I/O 線,而且體積大大縮小,同時還具有工作電壓寬,抗干擾能力強,功耗低,數(shù)據(jù)不宜丟失和支持在線編程等特點。目前,各式各樣的串行接口器件層出不窮,如:串行EEPROM,串行ADC/DAC,串行時鐘芯片,串行數(shù)字電位器,串行微處理器監(jiān)控芯片,串行溫度傳感器等等。串行EEPROM 是在各種串行器件應用中使用

2、較頻繁的器件,和并行EEPROM 相比,串行EEPROM 的數(shù)據(jù)傳送的速度較低,但是其體積較小,容量小,所含的引腳也較少。所以,它特別適合于需要存放非揮發(fā)數(shù)據(jù),要求速度不高,引腳少的單片機的應用。這里紹串行EEPROM 芯片,以及它們和單片機的接口技術(shù)。1、串行EEPROM 及其工作原理串行EEPROM 中,較為典型的有ATMEL 公司的AT24CXX 系列以及該公司生產(chǎn)的AT93CXX 系列,較為著名的半導體廠家,包括Microchip,國家半導體廠家等,都有AT93CXX系列EEPROM 產(chǎn)品。AT24CXX 系列EEPROMAT24CXX 系列的串行電可改寫及可編程只讀存儲器EEPROM

3、 有10 種型號,其中典型的型號有AT24C01A/02/04/08/16 等5 種,它們的存儲容量分別是1024/2048/4096/8192/16384位,也就是128/256/512/1 024/2048 字節(jié)。這個系列一般用于低電壓,低功耗的工業(yè)和商業(yè)用途, 并且可以組成優(yōu)化的系統(tǒng)。這個系統(tǒng)還有多種電壓級別, 包括5V(4.55.5V),2.7V(2.75.5V),2.5V(2.55.5V),1.8V(1.85.5V)等4 種電壓級別。它們的封裝有8引腳PDIP 方式,8 引腳和16 引腳SOIC 方式。信息存取采用2 線串行接口。這里我們就24C02的結(jié)構(gòu)特點,其他系列比較類似。2、

4、結(jié)構(gòu)原理及引腳AT24C02 有地址線A0A2,串行數(shù)據(jù)引腳SDA,串行時鐘輸入引腳SCL,寫保護引腳WP 等引腳。很明顯,其引腳較少,對組成的應用系統(tǒng)可以減少布線,提高可靠性。各引腳的功能和意義如下。(8):VCC 引腳,電源+5V。(4):GND 引腳,地線。(6):SCL 引腳,串行時鐘輸入端。在時鐘的正跳沿即上升沿時把數(shù)據(jù)寫入EEPROM;在時鐘的負跳沿即下降沿時把數(shù)據(jù)從EEPROM 中讀出來。(5):SDA 引腳,串行數(shù)據(jù)I/O 端,用于輸入和輸出串行數(shù)據(jù)。這個引腳是漏極開路的端口,故可以組成“線或”結(jié)構(gòu)。(1)、(2)、(3):A0,A1,A2 引腳,是芯片地址引腳。在型號不同時意

5、義有些不同,但都要接固定電平。(7):WP 引腳,寫保護端。這個端提供了硬件數(shù)據(jù)保護。當把WP 接地時,允許芯片執(zhí)行一般讀寫操作;當把WP 接VCC 時,則對芯片實施寫保護。3、存儲器的組織及運行存儲器的組織:對于不同的型號,存儲器的組織不一樣,其關(guān)鍵原因在于存儲器容量存在差異。對于AT24CXX 系列的EEPROM,其典型型號的存儲器組織如下。AT24C01A:內(nèi)部含有128 個字節(jié),故需要7 位地址對其內(nèi)部字節(jié)進行尋址AT24C02:內(nèi)部含有256 個字節(jié), 故需要8 位地址對其內(nèi)部字節(jié)進行讀寫。4、運行方式:對于時鐘及數(shù)據(jù)傳送,串行數(shù)據(jù)I/O 端口SDA 一般需要用外部上拉電阻將其電平拉

6、高。加到SDA 的數(shù)據(jù)只有在串行時鐘SCL 對于低電平的時間周期內(nèi)可以改變。當串行時鐘SCL處于高電平時,SDA 的數(shù)據(jù)變化用于指明起始或停止狀態(tài)。在SCL 為高電平期間,如果SDA從低電平上升到高電平,則表示起始狀態(tài);如果SDA 從高電平下降到低電平,則表示停止狀態(tài)。起始狀態(tài):當SCL 為高電平時,SDA 由高電平變到低電平則處于起始狀態(tài)。起始狀態(tài)應處于任何其他命令之前。停止狀態(tài):當SCL 處于高電平時,SDA 從低電平變到高電平則處于停止狀態(tài)。在執(zhí)行完讀序列信號之后,停止命令將把EEPROM 置于低功耗的備用方式(Standby Mode).應答信號:應答信號是由接受數(shù)據(jù)的器件發(fā)出的。當E

7、EPROM 接受完一個寫入數(shù)據(jù)之后,會在SDA 上發(fā)一個”0”應答信號。反之,當單片機接受完來自EEPROM 的數(shù)據(jù)后單片機也應向SDA 發(fā)ACK 信號。ACK 信號在第9 個時鐘周期時出現(xiàn)。備用方式(Standby Mode):AT24C01A/02/04/08/16 都具有備用方式,以保證在沒有讀寫操作時芯片處于低功耗狀態(tài)。在下面兩種情況中,EEPROM 都會進入備用方式:第一, 芯片通電的時候;第二,在接到停止位和完成了任何內(nèi)部操作之后。AT24C02 等5 種典型的EEPROM 在進入起始狀態(tài)之后,需要一個8 位的“器件地址字”去啟動存儲器進行讀或?qū)懖僮鳌T趯懖僮髦?,它們有“字?jié)寫”,

8、“頁面寫”兩種不同的寫入方法。在讀操作中,有“現(xiàn)行地址讀”,“隨機讀”和“順序讀”三種各具特點的讀出方法。下面分別介紹器件尋址,寫操作和讀操作。 器件尋址:所謂器件尋址(Device Addressing)就是用一個8 位的器件地址字(Device Address Word)去選擇存儲器芯片。在邏輯電路中的AT24CXX 系列的5 種芯片種,即AT24C01A/02/04/08/16 中,如果和器件地址字相比較結(jié)果一致,則讀芯片被選中。下面對器件尋址的過程和意義加以說明。 芯片的操作地址D7 D6 D5 D4 D3 D2 D1 D01 0 1 0 A2 A1 A0 R/W圖1:命令字格式用于存

9、儲器EEPROM 芯片尋址的器件地址字如圖1所示。它有4 種方式,分別對應于1K/2K,4K,8K 和16K 位的EEPROM 芯片。從圖中看出:器件地址字含有3 個部分。第一部分是高4 位,它們稱為EEPROM AT24C01A/02/04/08/16 的標識第二部分稱為硬布線地址,它們是標識后的3 位。第三部分是最低位,它是讀/寫操作選擇位。第一部分:器件標識,器件地址字的最高4 位。這4 位的內(nèi)容恒為”1010”,用于標識EEPROM 器件AT24C01A/02/04/08/16。第二部分:硬布線地址,是與器件地址字的最高4 位相接的低3 位。硬布線地址的3 位有2 種符號:Ai(i=0

10、2),Pj(j=02)其中Ai 表示外部硬布線地址位對于AT24C10A/02 這兩種1K/2K 位的EEPROM 芯片,硬布線地址為”A2,A1,A0”.在應用時,”A2,A1,A0”的內(nèi)容必須和EEPROM 芯片的A2,A1,A0 的硬布線情況,即邏輯連接情況相比較,如果一樣,則芯片被選中;否則,不選中。AT24C01A/02:真正地址=字地址第三部分:讀/寫選擇位,器件地址字的最低位,并用R/W 表示。當R/W=1 時,執(zhí)行讀操作;當R/W=0 時,執(zhí)行寫操作。當EEPROM 芯片被選中時,則輸出”0”;如果EEPROM 芯片沒有被選中,則它回到備用方式。被選中的芯片。其以后的輸入,輸出

11、情況視寫入和讀出的內(nèi)容而定。寫操作:AT24C01A/02/04/08/16 這5 種EEPROM 芯片的寫操作有2 種:一種是字節(jié)寫,另一種是頁面寫。字節(jié)寫:這種寫方式只執(zhí)行1 個字節(jié)的寫入。其寫入過程分外部寫和內(nèi)部寫兩部分,分別說明如下:在起始狀態(tài)中,首先寫入8 位的器件地址。則EEPROM 芯片會產(chǎn)生一個”0”信號ACK輸出作為應答;接著,寫入8 位的字地址,在接受了字地址之后,EEPROM 芯片又產(chǎn)生一個”0”應答信號ACK;隨后,寫入8 位數(shù)據(jù),在接受了數(shù)據(jù)之后,芯片又產(chǎn)生一個”0”信號ACK 作為應答。到此為止,完成了一個字節(jié)寫過程,故應在SDA 端產(chǎn)生一個停止狀態(tài),這是外部寫過程

12、。在這個過程中,控制EEPROM 的單片機應在EEPROM 的SCL,SDA 端送入恰當?shù)男盘?。當然在一個字節(jié)寫過程結(jié)束時,單片機應以停止狀態(tài)結(jié)束寫過程。在這時,EEPROM 進入內(nèi)部定時的寫周期,以便把接受的數(shù)據(jù)寫入到存儲單元中。在EEPROM 的內(nèi)部寫周期中,其所有輸入被屏蔽,同時不響應外部信號直到寫周期完成。這是內(nèi)部寫過程。內(nèi)部寫過程大約需要10ms 時間。內(nèi)部寫過程處于停止狀態(tài)與下一次起始狀態(tài)之間。頁面寫:這種寫入方式執(zhí)行含若干字節(jié)的1 個頁面的寫入。對于AT24C01A/02,它們的1 個頁面含8 個字節(jié);頁面寫的開頭部分和字節(jié)寫一樣。在起始狀態(tài),首先寫入8 位器件地址;待EEPRO

13、M 答當了”0”信號ACK 之后,寫入8 位字地址;又待芯片應了”0”信號ACK 之后,寫入8 位數(shù)據(jù)。隨后頁面寫的過程則和字節(jié)寫有區(qū)別。當芯片接受了第一個8 位數(shù)據(jù)并產(chǎn)生應答信號ACK 之后,單片機可以連續(xù)向EEPROM芯片發(fā)送共為1 頁面的數(shù)據(jù)。對于AT24C01A/02,可發(fā)送共1 個頁面的8 個字節(jié)(連第一個8 位數(shù)據(jù)在內(nèi))。對于AT24C04/08/16,則共可發(fā)送1 個頁面共16 個字節(jié)(連第一個8 位數(shù)據(jù)在內(nèi))。當然,每發(fā)一個字節(jié)都要等待芯片的應答信號ACK。之所以可以連續(xù)向芯片發(fā)送1 個頁面數(shù)據(jù),是因為字地址的低34 位在EEPROM 芯片內(nèi)部可實現(xiàn)加1,字地址的高位不變,用于

14、保持頁面的行地址。頁面寫和字節(jié)寫兩者一樣可,都分為外部寫和內(nèi)部寫過程。應答查詢:應答查詢是單片機對EEPROM 各種狀態(tài)的一種檢測。單片機查詢到EEPROM有應答”0”信號ACK 輸出,則說明其內(nèi)部定時寫的周期結(jié)束,可以寫入新的內(nèi)容。單片機是通過發(fā)送起始狀態(tài)及器件地址進行應答查詢的。由于器件地址可以選擇芯片,則檢測芯片送出到SDA 的狀態(tài)就可以知道其是否有應答了。讀操作:讀操作的啟動是和寫操作類同的。它一樣需要圖1所示的器件地址字。和寫操縱不同的就是信號下降沿時執(zhí)行讀操作。讀操縱有3 種方式,即現(xiàn)行地址讀,隨機讀和順序讀。下面分別說明它們的工作過程?,F(xiàn)行地址讀:在上次讀或?qū)懖倏v完成之后。芯片內(nèi)

15、部字地址計數(shù)器會加1,產(chǎn)生現(xiàn)行地址。只要沒有再執(zhí)行讀或?qū)懖僮?,這個現(xiàn)行地址就會在EEPROM 芯片保持接電的期間一直保存。一旦器件地址選中EEPROM 芯片,并且有R/W=1,則在芯片的應答信號ACK 之后把讀出的現(xiàn)行地址的數(shù)據(jù)送出。現(xiàn)行地址的數(shù)據(jù)輸出時,就由單片機一位一位接受,接收后單片機不用向EEPROM 發(fā)應答信號ACK”0”電平,但應保證發(fā)出停止狀態(tài)的信號以結(jié)束現(xiàn)行地址讀操作。現(xiàn)行地址讀會產(chǎn)生地址循環(huán)覆蓋現(xiàn)象,但和寫操縱的循環(huán)覆蓋不同。在寫操縱中,地址的循環(huán)覆蓋是現(xiàn)行頁面的最后一個字節(jié)寫入之后,再行寫入則覆蓋同一頁面的第一個字節(jié)。而在現(xiàn)行地址讀操縱中,地址的循環(huán)覆蓋是在最后頁面的最后一

16、個字節(jié)讀出之后,再行讀出才覆蓋第一個頁面的第一個字節(jié)。隨機讀:隨機讀和現(xiàn)行地址讀的最大區(qū)別在于隨機讀會執(zhí)行一個偽寫入過程以把字地址裝入EEPROM 芯片中,然后執(zhí)行讀出,顯然,隨機讀有2 個步驟。第一,執(zhí)行偽寫入把字地址送入EEPROM,以選擇需讀的字節(jié)。第二,執(zhí)行讀出根據(jù)字地址讀出對應內(nèi)容。當EEPROM 芯片接收了器件地址及字地址時,在芯片產(chǎn)生應答信號ACK 之后,單片機必須再產(chǎn)生一個起始狀態(tài),執(zhí)行現(xiàn)行地址讀,這時單片機再發(fā)出器件地址并且令R/W=1,則EEPROM 應答器件地址并輸出被讀數(shù)據(jù)。在數(shù)據(jù)讀出時由單片機執(zhí)行一位一位接收,接收完畢后,單片機不用發(fā)”0”應答信號ACK,但必須產(chǎn)生停

17、止狀態(tài)以結(jié)束隨機讀過程。應該注意:在隨機讀的第二個步驟是執(zhí)行現(xiàn)行地址讀的,由于第一個步驟時芯片接收了字地址,故現(xiàn)行地址就是所送入的字地址。順序讀:順序讀可以用現(xiàn)行地址讀或隨機讀進行啟動。它和現(xiàn)行地址讀、隨機讀的最大區(qū)別在于:順序讀在讀出一批數(shù)據(jù)之后才由單片機產(chǎn)生停止狀態(tài)結(jié)束讀操作;而現(xiàn)行地址讀和隨機讀在讀出一個數(shù)據(jù)之后就由單片機產(chǎn)生停止狀態(tài)結(jié)束讀操作。執(zhí)行順序讀時,首先執(zhí)行現(xiàn)行讀或隨機讀的有關(guān)過程,在讀出第一個數(shù)據(jù)之后,單片機輸出“0”應答信號ACK。在芯片接收應答信號ACK 后,就會對字地址進行計數(shù)加1,隨后串行輸出對應的字節(jié)。當字地址計數(shù)達到存儲器地址的極限時,則字地址會產(chǎn)生覆蓋,順序讀將

18、繼續(xù)進行。只有在單片機不再產(chǎn)生“0”應答信號ACK,而在接收數(shù)據(jù)之后馬上產(chǎn)生停止狀態(tài),才會結(jié)束順序讀操作。在對AT24CXX 系列執(zhí)行讀寫的2 線串行總線工作中,其有關(guān)信號是由單片機的程序和EEPROM 產(chǎn)生的。有兩點特別要記住:串行時鐘必須由單片機程序產(chǎn)生,而應答信號ACK則是由接收數(shù)據(jù)的器件產(chǎn)生,也就是寫地址或數(shù)據(jù)時由EEPROM 產(chǎn)生ACK,而讀數(shù)據(jù)時由單片機產(chǎn)生。串行EEPROM(24C02)參考程序;=;寫24C02 EEPROM數(shù)據(jù)子程序;R0:RAM地址指針,R2:8位移位計數(shù)器;R3:數(shù)據(jù)字節(jié)計數(shù)器;R4:24C02 存儲地址;-WR_EEROM: NOPW_LOOP: ACALL START24 MOV A,#0A0H ACALL WBYTE MOV A,R4 ACALL WBYTE MOV A,R0 ACALL WBYTE ACALL STOP24 ACALL DLY10MS INC R0 INC R4 DJNZ R3,W_LOOP RET ;=;讀24C02 EEPROM數(shù)據(jù)子程序;R0:RAM地址指針,R2:8位移位計數(shù)器;R3:數(shù)據(jù)字節(jié)計數(shù)器;R4:24C02 存儲地址;-RD_EEROM: NOPR_LOOP1: ACALL START24 MOV A,#0A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論