《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > FLASH K9F1G08U0M在MSP430F149嵌入式系統(tǒng)中的應(yīng)用
FLASH K9F1G08U0M在MSP430F149嵌入式系統(tǒng)中的應(yīng)用
微計算機信息
余靖娜 秦麗 許衛(wèi)星 張學(xué)松
摘要: FLASH K9F1G08U0M在MSP430F149嵌入式系統(tǒng)中的應(yīng)用, NAND Flash是采用NAND結(jié)構(gòu)技術(shù)的非易失存儲器,,具有ROM存儲器的特點,,存儲在該芯片中的數(shù)據(jù)可在斷電情況下維持10年不丟失,而芯片的引腳與訪問又具有類似于RAM的特點,。NAND FLASH 存儲器將數(shù)據(jù)線與地址線復(fù)用為8條線
Abstract:
Key words :

 NAND Flash是采用NAND結(jié)構(gòu)技術(shù)的非易失存儲器,具有ROM存儲器的特點,存儲在該芯片中的數(shù)據(jù)可在斷電情況下維持10年不丟失,,而芯片的引腳與訪問又具有類似于RAM的特點。NAND FLASH 存儲器將數(shù)據(jù)線與地址線復(fù)用為8條線,,另外還分別提供了命令控制信號線,,因此,NAND FLASH 存儲器不會因為存儲容量的增加而增加引腳數(shù)目,。從而極大方便了系統(tǒng)設(shè)計和產(chǎn)品升級,。

1 元件介紹

1.1 MSP430芯片

  MSP430系列單片機是TI公司推出的16位RISC系列單片機,該系列是一組超低功耗微控制器,,供電電壓范圍為1.8V—3.6V,。考慮到本系統(tǒng)有微體積,、低功耗的要求,,在此選用MSP430F149,,它具有60KB Flash Memory、2kb RAM,、有8個通道采樣率為200K的12位A/D轉(zhuǎn)換器,、硬件乘法器、2個帶有大量捕獲/比較寄存器的16位定時器,、看門狗等,,為系統(tǒng)的進一步開發(fā)擴展提供了良好的基礎(chǔ),特別適用于較復(fù)雜的系統(tǒng)開發(fā),。

1.2 NAND Flash

  NAND結(jié)構(gòu)Flash是Sumsung公司隆重推出并著力開發(fā)的新一代數(shù)據(jù)存儲器件,在此選用芯片K9F1G08U0M,,電源電壓2.7V—3.6V,與MSP430F149一致,,功耗低,,容量可達128M×8Bit,按頁進行讀寫,,按塊擦除,,通過I/O口分時復(fù)用作為命令引腳/地址引腳/數(shù)據(jù)引腳。有很高的可靠性,。

2 硬件設(shè)計

 本系統(tǒng)中,,K9F1G08U0M的數(shù)據(jù)輸入輸出口與單片機的P6端口相連。片選信號與單片機的P2.4相連,, CLE(命令鎖存控制端),、ALE(地址鎖存控制端)、WE(寫操作控制端),、RE(讀操作控制端)分別通過控制單片機P3.3,、P2.3、P2.6,、P2.5引腳的電平,,決定對FLASH

 進行控制字操作、地址操作,、寫操作還是讀操作,。在此不使用寫保護功能,所以WP接高電平,。FLASH與單片機的部分連接組成電路如圖1所示,。


圖1  MSP430F149與K9F1G08U0M的連接

 

3 軟件設(shè)計

 MSP430的開發(fā)軟件較多,本文采用IAR公司的集成開發(fā)環(huán)境—IAR Embedded workbench 嵌入式工作臺,,利用C430(MSP430系列的C語言)編寫調(diào)試,。單片機對FLASH的操作主要有寫、讀,、擦除,。

3.1 寫操作

  向FLASH內(nèi)部寫數(shù)據(jù)是基于頁的,,K9F1G08U0M的命令字、地址和數(shù)據(jù)都是通過并行口線I/O0—I/O7在控制信號的作用下分時操作,。地址A0—A10,,A11—A26通過I/O0—I/O7分4次送入。同時K9F1G08U0M芯片提供了一根狀態(tài)指示信號線 ,,當(dāng)該信號為低電平時,,表示FLASH可能正處于擦除、編程或讀操作的忙狀態(tài),;而當(dāng)其為高電平時,,則表示為準(zhǔn)備好狀態(tài),此時可以對芯片進行各種操作,。本系統(tǒng)須寫入126M數(shù)據(jù)寫操作流程圖如圖2,。

3.2 讀操作

  讀操作有串行頁讀、連續(xù)行讀,、隨機讀3種類型,。在此選用串行頁讀取。首先將讀操作控制字00h輸入,,再寫入地址,寫入控制字30h,,待 信號變高后,,將本頁數(shù)據(jù)依次讀出。隨后再改變頁地址讀出其它頁內(nèi)數(shù)據(jù),。操作流程圖如圖3,。

                    

圖2 寫操作流程圖                 

圖3  讀FLASH數(shù)據(jù)程序流程圖

3.3 擦除操作

  任何FLASH器件的寫入操作都必須在空的或已擦除的單元內(nèi)進行,因此在進行下一次存儲數(shù)據(jù)之前都必須對FLASH進行擦除操作,。

  擦除操作基于塊,,K9F1G08U0M內(nèi)有1024塊,塊地址的輸入需要兩個周期,,塊操作的地址只有A18—A27有效,,A12—A17備忽略。在地址后被送入的塊擦除命令(D0h)啟動塊擦除操作,,待 信號變高后,,送入命令字70h,讀出I/O0的值來判斷數(shù)據(jù)擦除是否成功,。圖4為塊擦除流程圖,。


圖4  擦除FLASH程序流程圖

4 程序設(shè)計

  在此給出寫操作部分程序,讀操作和擦除操作均可參考文中流程圖來編程,,值得注意的是其它具體寫地址操作應(yīng)仔細(xì)閱讀

K9F1G08U0M芯片資料,。

#include

#define   CLE   BIT3  

#define   ALE   BIT3

#define   WE    BIT6

#define   CE    BIT4

#define   RE    BIT5

#define   RB    BIT7

void  ReadFlash();   //讀FLASH子程序

void  WriteFlash();   //寫FLASH子程序

void  inituart(void); //初始化異步串行通信

void  Write10h();  //寫控制字10h子程序

void  WriteCommand(); //寫命令字寫地址

void  ClrFlash();    //擦除FLASH子程序

unsigned   int  k,i,a

void  main ()

{

  WDTCTL = WDTPW + WDTHOLD;

  BCSCTL1 &= ~XT2OFF;

do

  {

   IFG1 &= ~OFIFG;

   for (iq0=0x05; iq0>0; iq0--);

    }   //檢驗晶振是否起振

while ((IFG1 & OFIFG)!= 0);

  BCSCTL2 = SELM_2 + SELS + DIVS0;

//SMCLK選擇2分頻后的4M

While(k<0xFC00) //頁數(shù)<64512時執(zhí)行

 {

WriteCommand(); //調(diào)用寫控制字寫地址子程序

While(i<2048)   //字節(jié)數(shù)<2048時執(zhí)行循環(huán)

{

 WriteFlash();  //調(diào)用寫數(shù)據(jù)子程序,

32個字節(jié)

 i=i+32;      //字節(jié)數(shù)+32

}

i=0;      //一頁寫完后,字節(jié)數(shù)置0

Write10h();  //調(diào)用寫10h子程序

while(!(P2IN & RB));  //等待RB信號變高

k++;      //頁數(shù)+1

k=0;      //頁數(shù)置0

LPM4;    //全部寫完后,,MSP430進入低功耗模式4

 

  5 結(jié)束語

   MSP430系列單片機具有實時處理能力強、運行速度快,、性價比高等特點,。本文介紹了FLASH K9F1G08U0M在由MSP430F149組成的嵌入式系統(tǒng)中的應(yīng)用,實驗表明: 整個系統(tǒng)簡單可靠,、功能完善,、運行穩(wěn)定,具有實用價值,。本文作者創(chuàng)新點:實現(xiàn)了MSP430單片機和NAND Flash兩種低功耗芯片在嵌入式系統(tǒng)中的應(yīng)用,,完成了對FLASH的寫操作、讀操作及擦除操作,,達到了系統(tǒng)的微體積和低功耗特性,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。