X24128是美國XICor公司生產(chǎn)的CMOS串行通信EEPROM。內(nèi)部結(jié)構(gòu)為16k字節(jié)8位陣列。X24182在2線總線上可同時并聯(lián)8片,并具有軟件和硬件寫保護功能。片內(nèi)最高地址單元(FFFFH)為一寫保護寄存器。通過寫入不同數(shù)據(jù),可進行軟件寫保護、塊鎖定選擇保護和編程硬件寫保護三種不同形式的寫保護。在2線總線上串行通信的最高時鐘頻率為400kHz。另外還具有輸入、輸出消噪聲和抑制功能。而且功耗低,它的讀狀態(tài)工作電流小于1mA, 寫狀態(tài)工作電流小于3mA,靜態(tài)電流小于1uA。工作電壓有1.8V-3.6V、2.5V-5.5V和4.5V-5.5V三種類型供選擇。寫方式有按字節(jié)寫和按頁寫兩種形式,每頁為32字節(jié)。
1.管腳說明
X24128有三種封裝形式:14-SOIC、16-SOIC和8-PDIP。圖1為8-PDIP封裝的外形圖。各管腳的功能說明如下:
VCC、Vss:為電源的正、負極輸入端;
SCL:串行時鐘輸入端,用于控制數(shù)據(jù)的輸入與輸出;
SDA:串行數(shù)據(jù)輸入與輸出的共用管腳。漏極輸出,可與其它器件的SDA腳的輸出組成線或邏輯關(guān)系。由于是漏極輸出,因此在使用時必須接上拉電阻;
WP:硬件寫保護輸入管腳。當WP管腳接高電平且寫保護寄存器的WPEN位被寫1時,寫保護仿寄存器實施寫保護,這時塊鎖定的存儲陣列無法再用程序改寫。不需要寫保護時,WP管腳接低電平;?
S0、S1、S2器件選擇輸入端。在串行通信總線上可以并接多至8片X24128,它們可以分時享用總線。在輸入的地址中,當?shù)谝蛔止?jié)(器件地址)的數(shù)據(jù)與器件的輸入管腳S0、S1、S2相符時,器件被選擇并可與CPU進行串行通信。如與器件的輸入管腳不符,則處于等待狀態(tài)。
2.地址選擇
X24128內(nèi)部EEPROM由16k×8位組成,這16k數(shù)據(jù)單元的地址為0000H-3FFFH。寫保護寄存器的地址為FFFFH。每個地址可以分為地址高位字節(jié)BYTE1和地址低位字節(jié)BYTE0。除了數(shù)據(jù)單元地址外,還具有一個器件地址。在器件地址中,高四位必須為1010,這是X24128的識別碼。S2、S1、S0三位為所選器件的地址碼,它們必須與所選器件的輸入管腳S2、S1、S0相一致。例如所選器件的S2管腳接Vcc,S1、S0兩個輸入管腳連接Vss,則器件地址應為1010100R/WB。位位為讀、寫選擇位,位為1時,選擇讀;位為0時,選擇寫。
3.寫保護寄存器
寫保護寄存器是一可讀寄存器,格式如下:各位的狀態(tài)可通過程序?qū)懭搿,F(xiàn)將功能說明如下:
WEL:為EEPROM陣列寫使能鎖存器,WEL=1時,寫使能鎖存器置位,可進行寫操作;WEL=0時,寫使能鎖存器復位,拒絕一切寫操作。
RWEL:為“寫保護寄存器”寫使能鎖存器,RWEL=1時,可對“寫保護寄存器”進行改寫;RWEL=0時,寫使能鎖存器復位,拒絕改寫。
上電時,WEL和RWEL均被復位。
BL1、BL0:EEPROM陣列塊鎖定保護位。整個EEPROM陣列有三種鎖定形式,BL1、BL0=00時,整個陣列未加塊鎖定保護;BL1、 BL0=01時,地址為3000H~FFFH的陣列進行塊鎖定保護;BL1、BL0=10時,地址為2000~3FFF的陣列進行塊鎖定保護;BL1、 BL0=11時,地址為0000H~3FFFH的陣列進行塊鎖定保護.
WPEN:寫保護使能位,當WPEN位被寫入1且將器件的WP管腳接至Vcc時,,硬件寫保護使能;當WPEN位被復位或者WP管腳接至Vss時,硬件寫保護不再使能。硬件寫保護能為整個系統(tǒng)在實際應用操作中給用戶實施寫保護操作提供方便。
通過BL1、BL0位進行塊鎖定的存儲器陣列不受硬件寫保護的影響,只有通過改變BL1、BL0的值才能改變塊鎖定保護陣列的區(qū)域范圍。但改變BL1、 BL0的值要受到RWEL位的制約。RWEL位的改變又受到硬件寫保護的制約。未加塊鎖定保護的陣列不受硬件寫保護的制約,因而可對其進行寫操作。
在未加硬件寫保護的情況下,對BL1、BL0的改寫可按以下三步進行:
1)對FFFFH地址寫入00000010,使WEL=1;
2)對FFFFH地址寫入00000110B,使RWEL=1;
3)對FFFFH地址寫入X00XX010B,使RWEL=0。進行寄存器寫保護。如果在第(3)步中使RWEL=1,則對寄存器的改寫無效。寄存器仍保持(2)步的狀態(tài)。
4.讀寫時序
在進行讀、寫操作之前,先設(shè)置開始狀態(tài)。方法是命令SCL總線保持高電平,并在SDA總線上設(shè)置一個由高電平向低電平的跳變。而在通信結(jié)束時,又需設(shè)置一個結(jié)束狀態(tài),即將SCL總線保護高電平,并在SDA總線上設(shè)置一個低電平向高平跳變。設(shè)置結(jié)束狀態(tài)后,器件脫離通信狀態(tài)。
SDA總線上通信數(shù)據(jù)的改變必須在SCL總線處于低電平狀態(tài)時進行。SCL總線處于高電平時,數(shù)據(jù)處于保持狀態(tài)。
在通信過程中,接收數(shù)據(jù)的器件每次有效地接收到8位數(shù)據(jù)后,都給發(fā)送數(shù)據(jù)的器件發(fā)送一個負脈沖應答信號。在定操作過程中,X24128每次接收到8位數(shù)據(jù)(包括接收到8位地址數(shù)據(jù))后,在SDA總線上產(chǎn)生一個負脈沖,該脈沖的寬度一直延續(xù)到第9個時鐘脈沖信號結(jié)束。在讀操作過程中,CPU每次接收到 X24128所發(fā)送的8位數(shù)據(jù)后,SDA總線上再發(fā)送一個負脈沖,以示讀有效,然后X24128可以繼續(xù)發(fā)送數(shù)據(jù)。如果X24128未接收到應答信號,則停止發(fā)送數(shù)據(jù),直到接收到結(jié)束信號時,通信結(jié)束。
4.1按字節(jié)寫時序
給X24128內(nèi)部存儲陣列中未加鎖定保護部分的某一單元寫一個字節(jié)的數(shù)據(jù)時,首先設(shè)置開始狀態(tài),再依次發(fā)送器件地址和數(shù)據(jù)地址的字節(jié)1和字節(jié) 0,X24128每次接收到一個8位地址字節(jié)后,利用第9個時鐘脈沖發(fā)出應答信號。CPU接收到第3個應答信號后,再發(fā)送8位數(shù)據(jù)和接收應答信號,最后設(shè)置結(jié)束狀態(tài)。X24128接收到結(jié)束信號后,開始將接收到的數(shù)據(jù)寫入EEPROM陣列的內(nèi)部寫過程。在進行內(nèi)部寫過程中,對外部輸入的任何信號都不作反應,SDA管腳輸出高阻態(tài)。
4.2按頁寫時序
由CPU給X24128寫數(shù)據(jù)時,可以按頁寫,每頁包括32字節(jié),按頁寫的方式在開始時如同按字節(jié)寫,只是每次寫完一個字節(jié)數(shù)據(jù)后,X24128內(nèi)部地址指針自動加1后才可以繼續(xù)寫數(shù)據(jù),無需再次寫入地址。本頁的最高地址寫入后,地址指針自動返回到本頁的最低地址,如果繼續(xù)寫入數(shù)據(jù),則將已寫過的數(shù)據(jù)覆蓋,只有發(fā)送給X24128結(jié)束信號后,X24128才終止接收數(shù)據(jù),開始進行內(nèi)部寫過程。
4.3讀當前地址數(shù)據(jù)
如果要讀X24128內(nèi)部地址指針當前所指單元的數(shù)據(jù),只要發(fā)送給X24128開始信號、器件地址(位為1)和接收到應答信號后,即可接收X24128所發(fā)送的當前地址的數(shù)據(jù)。接收完畢,發(fā)送結(jié)束信號。X24128發(fā)送完數(shù)據(jù)后,地址指針自動加1。
4.4讀取任一地址的數(shù)據(jù)
先給X24128發(fā)送所要讀取數(shù)據(jù)的地址,使其成為當前地址指針所指地址。其中器件地址的位寫入0,再按讀當前地址數(shù)據(jù)的方式讀取數(shù)據(jù)。
4.5連續(xù)讀取數(shù)據(jù)
連續(xù)讀取數(shù)據(jù)如同讀取任一地址數(shù)據(jù),將所要連續(xù)讀取數(shù)據(jù)的首位地址設(shè)置成當前地址,在接收完第一字節(jié)的數(shù)據(jù)后,不是發(fā)送結(jié)束信號,而是發(fā)送應答信號,X24128接收到應答信號后繼續(xù)發(fā)送第二字節(jié)數(shù)據(jù)。只要CPU每次接收完一個字節(jié)的數(shù)據(jù)后所發(fā)送的是應答信號,X24128就會繼續(xù)發(fā)送下一字節(jié)的數(shù)據(jù),當發(fā)送完整個存儲陣列的最高地址的數(shù)據(jù)后,地址指針將返回到0000H單元。如果繼續(xù)發(fā)送應答信號,X24128將從0000H單元開始繼續(xù)發(fā)送數(shù)據(jù)。只有接收到結(jié)束信號才終止發(fā)送。
5.接口電路及編程
X24128與AT89C51的接口電路如圖2所示。在2線總線上最多可并接8片X24128。以P1.0口線作為時鐘信號輸出,P1.1口線作為數(shù)據(jù)輸入、輸出。總線接4.7kΩ的上拉電阻。下面以AT89C51寄存器R2的數(shù)據(jù)寫入X24128(1)的1000H地址中為例,假設(shè)1000H地址未加寫保護,則編程如下:?
評論