前言
近年來,閃速存儲器已應用在數以千計的產品中,特別是移動通信、MP3音樂播放器、手持PC管理器、數碼相機、網絡路由器、艙內錄音機等工業產品。閃速存儲器由于具有非易失性和電可編程擦除性,從而具有半導體存儲器的讀取速度快、存儲容量大等優點,同時又克服了DRAM及SRAM斷電丟失所存數據的缺陷。與EPROM相比較,閃速存儲器的優勢在于系統電可擦除和可重復編程,且不需要特殊的高電壓,此外,它還有成本低,密度大的特點。
閃速存儲器由于各自技術架構的不同,又可分為NOR技術、NAND技術、AND技術和由EEPROM派生的閃速存儲器。以EEPROM做閃速存儲陣列的Flash Memory,如SST的小扇區結構閃速存儲器具有EEPROM與NOR技術Flash Memory二者折中的性能特點:(1)讀寫的靈活性遜于EEPROM,但與NOR技術Flash Memory的塊結構相比,其頁尺寸小,具有快速隨機讀取和快編程、快擦除的特點。(2)與EEPROM比較,具有明顯的成本優勢。
SST25VF系列產品,是業界第一個完整的串行閃存產品系列,其記憶容量包含512Kbit至16Mbit,且采用產業標準的8接腳SOIC封裝及超薄型WSON封裝技術。此外,SST最新串行閃存提供最新自動地址增值(AAI)資料寫入模式,與單一字節資料寫入模式相比,該資料寫入模式能夠將整個閃存的資料寫入時間減少50%。SST25VF系列是以高效能超快閃技術為基礎,加上四線及串行外圍界面(SPI),相對平行EEPROM等非揮發性內存解決方案而言,SST的串行式閃存產品使用較少的接腳,將資料往返于系統CPU,因此可減少電路板空間、耗能及成本。
芯片介紹
芯片引腳介紹
SST25VF020是SST25VF系列產品中的一員,其芯片具有以下特點:總容量為2M;單電源讀和寫操作,工作電壓為2.7-3.3V;低功耗,工作電流為7mA,等待電流為3μA;時鐘頻率高達33MHz,快速編程、快速擦除、快速讀取;小型一致閃區尺寸4KB;數據保存100年;CMOS I/O兼容等。
狀態寄存器
狀態寄存器用來對芯片的工作模式進行設定,在工作過程中,可以提供芯片的工作狀態,比如讀、寫、寫保護等。
工作過程
首先設置狀態寄存器,對FLASH的工作模式、寫使能以及寫保護區域進行設定。在讀寫的過程中,還可以通過讀寄存器內容來判斷FLASH當前的工作狀態。設定結束后,可以開始讀寫操作。
寫操作
選用自動地址增值寫入(AAI)模式,這種模式在寫入大量數據時可以縮短程序運行時間。在寫操作中,首先寫入寫使能命令字(0x06),AAI模式以AF為寫命令,順序寫入存儲起始地址和存儲數據,每傳送完一字節的數據時,時鐘位置高,為寫下一字節數據做準備。當數據全部寫入時,寫終止寫使能命令字(0x04),寫操作結束。在整個寫過程中,狀態寄存器中的BUSY位始終為1,寫操作結束后,BUSY自動復位。
讀操作
在讀操作中,首先寫入讀命令字(0x03),然后寫入讀取數據的起始地址,數據會順序讀出,直至讀完。如果地址累加至7FFFF,下次數據讀取會從00000地址開始。在整個讀過程中,狀態寄存器中的BUSY位始終為1,寫操作結束后,BUSY自動復位。
擦除操作
SST25VF020提供3種芯片擦除方式:扇區擦除、塊擦除和全擦除。命令字分別為0x20、0x52、0x60,可分別實現不同范圍的擦除。在整個擦除過程中,狀態寄存器中的BUSY位始終為1,擦除操作結束后,BUSY自動復位。
硬件電路
系統控制器選用MSP430F149單片機,對溫度傳感器信號進行模數轉換后采樣,將采集到的數據通過SPI串行通信存儲到FLASH中。當系統通過異步串口和PC機相連時,通過SPI串行通信將儲存到FLASH中的數據讀到PC機中,從而對采集的數據進行分析、處理。將采集到的數據保存后,即可擦除FLASH,為下一次采集做準備。存儲電路連接如圖4所示。通過上拉電阻將CE#、SO端的初始狀態置為高電平,寫保護端始終為高電平。相應的輸入輸出端、時鐘信號端和使能端分別和單片機接口相連。
關鍵源程序
case 0x03: /* 讀數據 */
TXBUF1 =0x03; // 發讀命令字
while (IFG2&0x20==0x00); // 發送完否?
for(i=0;i《=2;i++) /* 發送地址 */
{TXBUF1=addr[i];
while (IFG2&0x20==0x00);}//發送完否?
for(i=0;i《=19;i++) /* 讀取數據 */
{ TXBUF1=0X33 ; // 發送偽數據用于產生接收數據CLK
while (IFG2&0x20==0x00); // 發送完否?
while( IFG2&0x10==0x00) ;
backdata1[i]=RXBUF1 ;} //存放讀取的數據
delay(2) ;
P5OUT |=0X01 ; // 拉高 STE1
delay(200) ;
break;
case 0xaf: /* AAI 模式 寫數據 */
P5OUT &=~0X01 ; // 拉 底 STE1
delay(2) ;
TXBUF1 =0X06 ; /* write enable */
while (IFG2&0x20==0x00); // 發送完否?
delay(2) ;
P5OUT |=0x01 ; // 拉高 STE1
delay(12);
P5OUT &=~0x01 ; // 拉底 STE1
delay(2) ;
TXBUF1 =0xaf; // 發寫命令字
while (IFG2&0x20==0x00); // 發送完否?
for(i=0;i《=2;i++) /* 發送地址 */
{ TXBUF1=addr[i];
while (IFG2&0x20==0x00); }//發送完否?
for(i=0;i《=19;i++)
{ TXBUF1=data1[i] ; // 連續寫20字節的數據
while (IFG2&0x20==0x00) ; // 發送完否?
if(i==19) break ;
delay(2) ;
P5OUT |=0X01 ; // 拉高 STE1
delay(12) ;
P5OUT &=~0X01 ; // 拉底 STE1
delay(2) ;
TXBUF1 =0xaf ;
while (IFG2&0x20==0x00); } // 發送完否?
delay(2) ;
P5OUT |=0X01 ; // 拉高 STE1
delay(12);
P5OUT &=~0X01 ; // 拉底 STE1
delay(2) ;
TXBUF1 =0X04 ; // /* 結束AAI模式*/
while (IFG2&0x20==0x00); // 發送完否?
delay(2) ;
P5OUT |=0X01 ; // 拉高 STE1
break;
總結
S ST串行式閃存因具備低耗能與小型接腳的特色,可作為硬盤、繪圖卡、電子玩具、智能卡、MP3播放器、無線電話、藍牙模塊及GPS模塊等裝置比較理想的存儲解決方案。由于SST串行式閃存的容量從512Kbit至16Mbit不等,因此適用于從低階智能卡至高容量的聲音檔案存儲,如電話錄音機等各類資料存儲 應用裝置。
評論
查看更多