|
|||||||||||
AT45DB021B |
AT45DB021B 的PDF資料下載,267388K |
其他型號(hào) |
| AT45DB021B的供應(yīng)商: |
聯(lián)系人:楊先生/楊小姐 電話(huà):0755-82544131/83205505 |
聯(lián)系人:陳小姐 電話(huà):0755-23995374 |
聯(lián)系人:謝小姐 電話(huà):0755-82546293 |
聯(lián)系人:陳小姐/小佳佳/肖華蓉 電話(huà):18320771255/0755-825434548/0755-83238756 |
|
| >>更多供應(yīng)商 | |||||
AT45DB021B在電力參數(shù)監(jiān)測(cè)中的應(yīng)用
概述
在智能電力設(shè)備中,往往要對(duì)電網(wǎng)的一些歷史數(shù)據(jù)進(jìn)行記錄,以便更好的了解電網(wǎng)的運(yùn)行狀況,因此需要一個(gè)大容量、接口方式簡(jiǎn)單的存儲(chǔ)器,AT45DB021系列是一個(gè)較好的選擇。AT45DB021B是264Kbyte串行接口可編程閃速存儲(chǔ)器,該器件具有SPI串行接口,可以方便的與單片機(jī)和微機(jī)通訊,同時(shí)還具有體積小、存儲(chǔ)量大、電壓低等優(yōu)點(diǎn)。
主要特性
AT45DB021B的主要特點(diǎn)如下:
1.單電源供電(2.7V-3.6V),SPI串行接口符合SPI標(biāo)準(zhǔn);
2.具有264Kbyte主存儲(chǔ)器,1024頁(yè),每頁(yè)264字節(jié);
3.低功耗,4mA的典型讀電流,休眠電流2 A;
4.20MHz的最大時(shí)鐘頻率,具有硬件寫(xiě)保護(hù)功能;
5.帶有雙264 字節(jié)的數(shù)據(jù)緩沖器,可在對(duì)主存儲(chǔ)區(qū)操作同時(shí)對(duì)緩沖區(qū)寫(xiě)入或讀取數(shù)據(jù);
6.具有多種封裝形式。
本文采用8管腳的SOIC封裝形式,具有體積小的優(yōu)勢(shì),其封裝外形見(jiàn)圖1及引腳功能見(jiàn)表1。
工作原理
AT45DB021B主存儲(chǔ)區(qū)共分1024頁(yè)(PAGE),每頁(yè)264字節(jié),共2,162,688位,此外,還有2個(gè)SRAM數(shù)據(jù)緩沖區(qū)(264字節(jié)/BUFFER),可以對(duì)主存儲(chǔ)區(qū)任一頁(yè)和任一數(shù)據(jù)緩沖區(qū)中的任一起始地址進(jìn)行數(shù)據(jù)讀或?qū)懖僮,?duì)主存儲(chǔ)區(qū)的讀寫(xiě)操作可以直接進(jìn)行也可以通過(guò)任一數(shù)據(jù)緩沖區(qū),另外一個(gè)顯著的特點(diǎn)就是在對(duì)主存儲(chǔ)區(qū)進(jìn)行操作的同時(shí),還可以對(duì)任一數(shù)據(jù)緩沖區(qū)進(jìn)行讀寫(xiě)。由于AT45DB021B具有SPI串行接口,因此硬件連接十分簡(jiǎn)單。該芯片具有在線(xiàn)可編程功能且不需要高的編程電壓(編程電壓仍為電源電壓)。圖2為AT45DB021B的內(nèi)部結(jié)構(gòu)框圖。
對(duì)AT45DB021B的操作由主機(jī)發(fā)出的指令控制,一個(gè)有效的指令在 /CS的下降沿開(kāi)始,包括一個(gè)8位的操作碼,要進(jìn)行操作的頁(yè)地址和緩沖區(qū)地址的位置,所有指令和數(shù)據(jù)都從最高位開(kāi)始。表2是AT45DB021B的主要的操作命令。
操作命令說(shuō)明:
1.關(guān)于狀態(tài)存儲(chǔ)器:它是一個(gè)8位的只讀存儲(chǔ)器,用于指示AT45DB021B的工作狀況,如圖所示:
BIT7用于顯示AT45DB021B的狀態(tài),BIT7位=1時(shí),說(shuō)明AT45DB021B不忙,可以對(duì)其進(jìn)行指令操作,BIT7位=0時(shí),指示AT45DB021B忙,可以通過(guò)檢測(cè)BIT7位來(lái)實(shí)時(shí)了解AT45DB021B的狀態(tài),以下幾種操作將導(dǎo)致BIT7位=0:使用內(nèi)建擦除周期從緩存到主存?zhèn)魉筒僮,不使用?nèi)建擦除周期從緩存到主存?zhèn)魉筒僮鳎?yè)擦除操作,主存儲(chǔ)器頁(yè)讀寫(xiě)操作等。
2.主存儲(chǔ)器頁(yè)讀:主存儲(chǔ)器頁(yè)讀指令可以對(duì)1024頁(yè)中的任意頁(yè)進(jìn)行讀操作,命令碼為:8位操作碼+5位保留碼+10位頁(yè)地址碼+9位頁(yè)內(nèi)起始地址碼+32位無(wú)關(guān)碼;操作碼為52H或D2H,5位保留碼用于對(duì)片子的上下兼容,10位頁(yè)地址碼用于確定對(duì)主存儲(chǔ)器的哪一頁(yè)進(jìn)行操作,9位頁(yè)內(nèi)起始地址碼來(lái)確定頁(yè)內(nèi)操作的起始地址,后32為無(wú)關(guān)碼用來(lái)配合時(shí)序。當(dāng)/CS為0時(shí),主機(jī)向器件的SCK引腳發(fā)送時(shí)鐘信號(hào),引導(dǎo)操作碼和地址從SI引腳寫(xiě)入器件,當(dāng)最后一位寫(xiě)入后的下一個(gè)時(shí)鐘周期,頁(yè)內(nèi)數(shù)據(jù)將從SO引腳輸出。
3.通過(guò)緩沖存儲(chǔ)器對(duì)主存儲(chǔ)器寫(xiě)操作:
命令碼為:操作碼+5位保留碼+10位頁(yè)地址碼+9位頁(yè)內(nèi)起始地址碼,其中操作碼為82H時(shí),數(shù)據(jù)通過(guò)緩沖存儲(chǔ)器1向主存儲(chǔ)器寫(xiě),為85H時(shí),數(shù)據(jù)通過(guò)緩沖存儲(chǔ)器2向主存儲(chǔ)器寫(xiě)操作。
應(yīng)用實(shí)例
AT45DB021B具有264Kbyte的主存儲(chǔ)區(qū),因此可廣泛應(yīng)用于數(shù)據(jù)存儲(chǔ)等領(lǐng)域 ,可與單片機(jī)構(gòu)成一個(gè)大容量的數(shù)據(jù)采集系統(tǒng),在智能高壓無(wú)功補(bǔ)償器中,AT45DB021B用于存儲(chǔ)過(guò)去60天的電壓、電流的有效值和電網(wǎng)的一些運(yùn)行參數(shù),以便了解電網(wǎng)的歷史運(yùn)行狀況,這是一般存儲(chǔ)器達(dá)不到的。圖3給出了由MSP430F149超低功耗FLASH型單片機(jī)與AT45DB021B構(gòu)成的數(shù)據(jù)存儲(chǔ)電路,并給出了對(duì)AT45DB021B讀寫(xiě)操作的C語(yǔ)言程序,由于AT45DB021B具有SPI接口,具體的時(shí)序要滿(mǎn)足SPI時(shí)序要求,在此不再詳述。
#include <Msp430x14x.h>
#define SCK_1 P4OUT = BIT7 //SCK=1
#define SCK_0 P4OUT &=~ BIT7 //SCK=0
#define SI_1 P5OUT = BIT0 //CPU向AT寫(xiě)1
#define SI_0 P5OUT &=~ BIT0 //CPU向AT寫(xiě)0
#define SO_IN ((P5IN & 0x02) == 0x02) //CPU讀.
#define DIR_IN P5DIR &=~ BIT1; P5OUT = BIT1 //I/O輸入,接受AT的數(shù)據(jù)
#define DIR_OUT P5DIR = BIT1; P5OUT = BIT1 //I/O輸出
#define STARTOP P4OUT = BIT6; _NOP(); P4OUT &=~ BIT6
#define ENDOP P4OUT &=~ BIT6; _NOP(); P4OUT = BIT6
#define HIGHTOLOW {_NOP(); SCK_1; _NOP(); SCK_0; _NOP();}
int tempArray[150];
void Init(void) //MSP430F149引腳初始化;
{
P4DIR = BIT6;
P4OUT = BIT6;
P4DIR = BIT7;
P4OUT = BIT7;
P5DIR = BIT0;
P5OUT = BIT0;
P5DIR = BIT1;
P5OUT = BIT1;
}
寫(xiě)一字節(jié)子程序:
void Wr1byte(unsigned char tt)
{ unsigned char i;
for (i=0; i<8; j++)
{
if ((tt & 0x80) == 0x80)
SI_1;
else
SI_0;
HIGHTOLOW;
tt = tt<< 1;
}
}
讀一字節(jié)子程序:
unsigned char Rd1byte(void)
{unsigned char i,medBit=0;
char Data=0;
for (i=0; i<8; i++)
{ HIGHTOLOW;
_NOP();
if (SO_IN )
medBit = 1; //if(SO==1)medBit=1;
else
medBit = 0;
Data = (Data << 1) medBit;
return Data;
}
}
對(duì)AT45DB021進(jìn)行寫(xiě)操作子函數(shù): (通過(guò)緩沖存儲(chǔ)器2對(duì)主存儲(chǔ)器寫(xiě)操作)
參數(shù):pInData 指向要寫(xiě)入數(shù)據(jù)的指針
mm 寫(xiě)入數(shù)據(jù)數(shù)組的大小
startPage 將數(shù)據(jù)寫(xiě)入主存的起始頁(yè)地址
startByte 將數(shù)據(jù)寫(xiě)入主存的起始頁(yè)地址中的起始字節(jié)地址
void WriteMemory(const int *pInData, unsigned char mm, unsigned int startPage, unsigned int startByte)
{
unsigned char i, j;
unsigned char opCode;
char lowData;
char highData;
opCode = 0x85; //opCode=0x82 is also available.
lowData = highData = 0;
SCK_0;
_NOP();
STARTOP;
_NOP();
Wr1byte(opCode );
for (j=0; j<5; j++)
HIGHTOLOW;
//send startPage address //發(fā)送起始頁(yè)地址子程序;
//send startByte address //發(fā)送頁(yè)內(nèi)起始地址子程序;
for (j=0; j<mm; j++) //對(duì)目的地址寫(xiě)操作,先寫(xiě)低字節(jié)后寫(xiě)高字節(jié)
{
lowData = (char)(*(pInData + j));
Wr1byte(lowData);
highData = (char)((*(pInData + j)) >> 8);
Wr1byte(highData);
}
ENDOP;
_NOP();
SI_1;
}
讀出AT45DB021存儲(chǔ)的數(shù)據(jù)(主存儲(chǔ)器頁(yè)讀, 讀出字)
參數(shù):mm 讀出數(shù)據(jù)數(shù)組的大小
startPage 讀出數(shù)據(jù)的起始頁(yè)地址
startByte 讀出數(shù)據(jù)的起始頁(yè)地址中的起始字節(jié)地址
返回值:無(wú)
void ReadMemory(unsigned char mm, unsigned int startPage, unsigned int startByte)
{
unsigned char i, j;
unsigned char opCode;
unsigned char medBit;
char lowData;
char highData;
opCode = 0x52;
lowData = highData = 0;
medBit = 0;
SCK_0;
_NOP();
STARTOP;
_NOP();
Wr1byte(opCode );
for (j=0; j<5; j++)
HIGHTOLOW; //5位保留碼;
//send startPage address //發(fā)送起始頁(yè)地址子程序;
//send startByte address //發(fā)送頁(yè)內(nèi)起始地址子程序;
for (j=0; j<32; j++)
HIGHTOLOW; //32位無(wú)關(guān)碼;
DIR_IN;
for (j=0; j<mm; j++)
{
lowData= Rd1byte();
highData= Rd1byte();
tempArray[j] = ((int)highData << 8) + lowData;
}
ENDOP;
SI_1;
_NOP();
DIR_OUT;
}
|
|||
|
|
|
© 2026 維庫(kù)電子市場(chǎng)網(wǎng)(m.58mhw.cn) 版權(quán)所有 經(jīng)營(yíng)許可證編號(hào):浙B2-20050339 版權(quán)聲明
二十一年專(zhuān)注打造優(yōu)質(zhì)電子元器件采購(gòu)網(wǎng)、IC交易平臺(tái)。 |