摘要:ATMEL公司生產(chǎn)的串行Flash AT45系列存儲器的容量已達(dá)到了16Mb,常用于數(shù)據(jù)存儲系統(tǒng)。文中以AT45D041為例,詳細(xì)介紹了該系列Flash存儲器的命令集以及串行SPI接口的應(yīng)用方法,并給出了相應(yīng)的模式時(shí)序。
關(guān)鍵詞:SPI Flash Buffer 中斷 AT45D041
1 概述
在目前所有的非易失性存儲器(PROM、EPROM、EEPROM和Flash)中,
唯有Flash存儲器幾乎擁有現(xiàn)今講究個(gè)性化的用戶所需的所有特點(diǎn),它具有掉電數(shù)據(jù)不丟失、快速數(shù)據(jù)存取速度、電可擦除、容量大、在線可編程、價(jià)格低廉以及足夠多的擦除、容量大、在線可編程、價(jià)格低廉以及足夠多的擦寫次數(shù)(一百萬次)和較高的可靠性等諸多優(yōu)點(diǎn),因而已為新一代嵌入式應(yīng)用(如數(shù)字相機(jī)和MP3 播放機(jī))的首選存儲器,F(xiàn)在FLASH的成本已低于PROM/EPROM,可以肯定,它將很快占鄰PROM/EPROM市場,MASK(掩膜)ROM盡管在大指生產(chǎn)時(shí)具備一定的價(jià)格優(yōu)勢,但其升級不便的弱點(diǎn)將隨著今后FLASH成本的進(jìn)一步降低,而使得MASK ROM的前景并不樂觀。
ATMEL生產(chǎn)的Flash AT45系列中的AT45D041為單5V供電的SPI接口器件,其封裝形式有PLCC、TSOP和SOIC三種,圖1給出了該器件采用SOIC封裝形式的管腳排列和說明。
AT45D041 的內(nèi)部結(jié)構(gòu)如圖2所示。該器件有2048頁(每頁264字節(jié))內(nèi)存(Flash Memory,也叫主存Main Memory)和兩具Buffer(每個(gè)Buffer為264字節(jié)的SRAM)組成。數(shù)據(jù)可以直接寫入閃存,也可以選寫入Buffer,然后再將 Buffer的數(shù)據(jù)整個(gè)復(fù)制到閃存的某一天,也可以在閃存正處于編程時(shí)(頁編程時(shí)間典型值7ms)將數(shù)據(jù)寫入Buffer。以下是該器件的一些特點(diǎn):
●一頁主存?zhèn)魉偷紹uffer的典型時(shí)間為80μs;
●有效電流的典型值為15mA,空閑電流為20μA;
●最大時(shí)鐘頻率為10MHz;
●具有硬件擦、寫保護(hù)功能,當(dāng)WP腳為低時(shí),前256頁鈄禁止編程。
●輸入輸出與CMOS和TTL電平兼容;
●具有商業(yè)和工業(yè)兩種溫度范圍;
●可單周期重編程(包括擦除和編程);
●帶有串行接口,讀寫操作時(shí)地址會自動增1;
●復(fù)位時(shí)將終止正在進(jìn)行的操作,當(dāng)復(fù)位管腳恢復(fù)高電平時(shí),操作也可以恢復(fù);
●傳送數(shù)據(jù)時(shí),高位(MSB)在前。
2 操作命令介紹
對AT45D041的操作一共有18條命令,表1所列為AT45D041的操作命令集。其中:
表1 AT45D041的操作命令集
| 讀主存 | 52H | rrr | PA10~PA0 | BA8~BA0 | 32個(gè)× |
| 讀Buffer1 | 54H | ×××× | 11個(gè)× | BFA8~BFA0 | 8個(gè)× |
| 讀Buffer2 | 56H | ×××× | 11個(gè)× | BFA8~BFA0 | 8個(gè)× |
| 主存?zhèn)魉偷紹uffer1 | 53H | rrrr | PA10~PA0 | 9個(gè)× | |
| 主存?zhèn)魉偷紹uffer2 | 55H | rrrr | PA10~PA0 | 9個(gè)× | |
| 主存與Buffer1比較 | 60H | rrrr | PA10~PA0 | 9個(gè)× | |
| 主存與Buffer2比較 | 61H | rrrr | PA10~PA0 | 9個(gè)× | |
| 寫B(tài)uffer1 | 84H | ×××× | 11個(gè)× | BFA8~BFA0 | |
| 寫B(tài)uffer2 | 87H | ×××× | 11個(gè)× | BFA8~BFA0 | |
| 帶擦除的Buffer1傳送到存 | 83H | rrrr | PA10~PA0 | 9個(gè)× | |
| 帶擦除的Buffer2傳送到主存 | 86H | rrrr | PA10~PA0 | 9個(gè)× | |
| 不帶擦除的Buffer1傳送到主存 | 88H | rrrr | PA10~PA0 | 9個(gè)× | |
| 不帶擦除的Buffer2傳送到主存 | 89H | rrrr | PA10~PA0 | 9個(gè)× | |
| Buffer1為緩沖對主存編程 | 82H | rrrr | PA10~PA0 | BA8~BA0 | |
| Buffer2為緩沖對主存編程 | 85H | rrrr | PA10~PA0 | BA8~BA0 | |
| Buffer1為緩沖自動重編程 | 28H | rrrr | PA10~PA0 | 9個(gè)× | |
| Buffer2為緩沖自動重編程 | 59H | rrrr | PA10~PA0 | 9個(gè)× | |
| 讀狀態(tài)寄存器 | 57H | ||||





