新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430單片機(jī)Flash存儲器的特性及應(yīng)用

MSP430單片機(jī)Flash存儲器的特性及應(yīng)用

作者: 時(shí)間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
概述

  以單片機(jī)為核心的儀表常要考慮發(fā)生突然掉電時(shí)的數(shù)據(jù)保存問題,一般有兩種對策:一是用后備電源維持單片機(jī)持續(xù)工作,稱為硬保護(hù);另一種是在檢測到掉電后,在電源完全失效前保護(hù)現(xiàn)場數(shù)據(jù),上電后再恢復(fù)工作,稱為軟保護(hù)。本文主要討論后者。

本文引用地址:http://butianyuan.cn/article/201611/320134.htm

  目前,設(shè)計(jì)掉電軟保護(hù)功能時(shí),數(shù)據(jù)存儲介質(zhì)常選用兩類:一類是E2PROM,但寫入時(shí)間較長,難以寫入較多數(shù)據(jù);另一類是帶有后備電池的小容量SRAM構(gòu)成的非易失性存儲器,寫入速度快,但增加了電路的復(fù)雜性。掉電電壓的檢測電路可用分立元件構(gòu)成,也可用專用芯片來實(shí)現(xiàn)。前者增加了電路復(fù)雜性且降低了系統(tǒng)可靠性;后者增加了成本。

  TI公司的Flash型單片機(jī)MSP430F11x1系列、MSP430F13x系列和MSP430F14x系列具有片內(nèi)的Flash存儲器??梢杂糜趯?shí)現(xiàn)儀表的掉電數(shù)據(jù)保護(hù),同時(shí)可以簡化系統(tǒng)結(jié)構(gòu),提高系統(tǒng)可靠性。

  本文采用TI公司的Flash型16位超低功耗單片機(jī)MSP430F1121,利用其片內(nèi)的Flash存儲器和模擬比較器,只需外接1組分壓電阻進(jìn)行分壓取樣,即可實(shí)現(xiàn)系統(tǒng)的掉電軟保護(hù)。

一、 MSP430F11x1、MSP430F13x 和MSP430F14x簡介

  MSP430F11x1為20引腳,采用SOWB封裝,如圖1所示。它有14位具有中斷功能的I/O端口;有1個(gè)16位的WatchDog,可用作系統(tǒng)故障復(fù)位或定時(shí)器;有1個(gè)帶有3組捕捉/比較寄存器的16位定時(shí)器Timer_A。有1個(gè)模擬電壓比較器Compare_A;它的定時(shí)器和比較器功能豐富,可以實(shí)現(xiàn)多種用途。例如,外接電阻和電容后可以構(gòu)成1個(gè)高精度的A/D轉(zhuǎn)換器。


  MSP430F13x和MSP430F14x同為64引腳,采用PQFP封裝,芯片為1cm2的正方形,如圖2所示。它有48位I/O端口;有1個(gè)16位的WatchDog;有2個(gè)帶有多組捕捉/比較寄存器的16位定時(shí)器Timer_A、Timer_B;有1個(gè)模擬比較器Compare_A;有1~2個(gè)串行接口;有1個(gè)12位的多通道A/D轉(zhuǎn)換器。F14x還具有1個(gè)硬件乘法器,可實(shí)現(xiàn)16位乘16位的操作。


二、 Flash存儲器特性

  Flash型單片機(jī)的工作電壓為1.8~3.6V。可外接32kHz~8MHz晶振,并由內(nèi)部DCO振蕩器實(shí)現(xiàn)主時(shí)鐘。有5種低功耗模式,在2.2V、32kHz晶振、1MHz主頻、活動模式時(shí)工作電流為160μA;當(dāng)僅保持RAM數(shù)據(jù)時(shí)為0.1μA。它的Flash存儲器使用尤為方便。

  F1121片內(nèi)除256B RAM外,還有4KB+256B的Falsh存儲器。Flash存儲器為分段結(jié)構(gòu),分為主存儲器(main memory)和信息存儲器(information memory),如圖3所示。F13x和F14x的片內(nèi)存儲容量更大,RAM在256B到2KB之間,F(xiàn)lash儲存器在8KB到60KB之間,也包含主存儲器和信息存儲器,分段方法及控制方法與F1121相同。

  Flash存儲器主要用作程序存儲器,可經(jīng)JTAG接口下載程序。程序運(yùn)行時(shí)能對其中的1段或多段進(jìn)行擦/寫操作,因此兼有數(shù)據(jù)存儲器功能。Flash存儲器的擦/寫次數(shù)為105次,數(shù)據(jù)在室溫下可保存100年。

  以下針對具體的應(yīng)用,詳細(xì)介紹F1121的Flash存儲器用法。


1 F1121 Flash存儲器結(jié)構(gòu)

  Flash存儲器按段分布:主存儲器每段為512個(gè)字節(jié),共8段(0~7段);信息存儲器每段為128個(gè)字節(jié),共2段(A,B段)。最小擦除單位為1段。主存儲器和信息存儲器的特性除分段大小外基本相同。

2 Flash存儲器控制寄存器

  有3個(gè)16位控制寄存器:FCTL1,F(xiàn)CTL2,F(xiàn)CTL3。為了防止誤操作,寫入時(shí)高字節(jié)必須為0A5H,但讀出時(shí)為096H。

(1) Flash控制寄存器1(FCTL1)

  定義對Flash存儲器的擦/寫操作。

  Erase 和MEras 位控制擦除操作,置位后,往定義的區(qū)域范圍內(nèi)任一地址進(jìn)行寫操作(寫入任意數(shù))后該段即被擦除。前者每次只擦除一段,后者擦除所有段。

  WRT和SEG WRT位控制寫操作:前者每次寫1個(gè)字節(jié),后者可在段內(nèi)連續(xù)寫入。

(2) Flash控制寄存器2(FCTL2)

  定義Flash時(shí)鐘發(fā)生器的時(shí)鐘源和頻率,一般可取上電復(fù)位時(shí)的缺省值。

(3) Flash控制寄存器3(FCTL3)

  指示對Flash存儲器操作過程中的出錯狀態(tài)。

  其中,較重要的是BUSY位,置位表示不能對Flash存儲器操作;否則會出錯。在每次進(jìn)行擦/寫操作前都要測試該位。

3 Flash存儲器擦除、讀和寫操作

  進(jìn)行擦/寫操作的編程電壓(VPP)由片內(nèi)產(chǎn)生;擦/寫時(shí)鐘由Flash時(shí)鐘發(fā)生器產(chǎn)生。在擦/寫時(shí)不能有中斷產(chǎn)生,也不能執(zhí)行位于將被擦/寫區(qū)域的程序。如果想要保留原數(shù)據(jù),應(yīng)在擦除前先把數(shù)據(jù)轉(zhuǎn)存入RAM中,擦除后再寫回。

  擦除時(shí),先在FCTL2中設(shè)定時(shí)鐘;如果沒有特殊要求,可用上電時(shí)的缺省值。然后測FCTL3的BUSY位。等到BUSY復(fù)位,在FCTL1中設(shè)定Erase(1段擦除)或MEras位(多段擦除),再往目標(biāo)地址范圍內(nèi)任一地址寫入任意數(shù)據(jù)后,即完成對這一段的擦除。

  寫入操作類似于擦除操作,只是往目標(biāo)地址中寫入的是實(shí)際值。

  對Flash存儲器的讀操作與RAM和ROM完全一樣。

三、 掉電保護(hù)應(yīng)用實(shí)例

1. 硬件設(shè)計(jì)

  掉電保護(hù)功能是針對一個(gè)工業(yè)時(shí)間繼電器設(shè)計(jì)的,有關(guān)部分的電路如圖4所示。電源電壓為5V,穩(wěn)壓電壓為3.3V加至F1121的VCC。比較器A的反向輸入端(P2.4)取自分壓電阻(圖中分壓值為20V);同向輸入端為參考電壓,設(shè)為內(nèi)部電壓(由軟件設(shè)定,這里為VCC/2,即1.65V)。正常工作時(shí)比較器A輸出為低,由圖中參數(shù)可算出。當(dāng)電源電壓降為4.125V時(shí),VCC仍穩(wěn)定在3.3V;但比較器A輸出將翻轉(zhuǎn),產(chǎn)生中斷。

  Flash存儲器寫入時(shí)電壓必須保持在2.7~3.6V,因此2.7V是處理的下限。1段(512個(gè)字節(jié))的寫入時(shí)間為3ms。據(jù)此,可選擇合適的電容,由RC放電電路可得:

式中,V0= 3.3V,V(t)=2.7V,t=3ms,R=5MΩ,則:


  經(jīng)實(shí)際測試,在取C=1μF時(shí)即能正常工作。為可靠起見,可取C=10μF。如果寫入的數(shù)據(jù)較多,需要更長的處理時(shí)間,可以加大電容容量,并在供電回路中串接二極管,以限制反向放電。

  從正常工作狀態(tài)到臨界狀態(tài),電壓有0.875V(5.0V-4.125V)的緩沖,因此,電源電壓的變動將不會引起誤操作。

2.軟件設(shè)計(jì)

  程序分為上電復(fù)位初始化程序和掉電中斷處理程序,如圖5及圖6所示。


  程序初始化時(shí),必須先讀取掉電保護(hù)標(biāo)志來決定程序流向,然后把掉電標(biāo)志復(fù)位。在中斷處理程序中,對Flash存儲器寫入數(shù)據(jù)前都應(yīng)先擦除標(biāo)志所在區(qū)域;但為節(jié)省中斷處理時(shí)間,可在初始化時(shí)預(yù)先進(jìn)行擦除操作,以備下一次的掉電處理寫入。

  掉電處理程序中必須完成兩件事:掉電保護(hù)標(biāo)志置位(也應(yīng)寫在Flash存儲器中);將待保護(hù)數(shù)據(jù)寫入Flash存儲器中。一般可把數(shù)據(jù)存入信息存儲器中,如果數(shù)據(jù)量大,可寫入沒有被程序占用的主存儲器中。寫入時(shí)要關(guān)閉所有中斷,同時(shí)對原系統(tǒng)當(dāng)前執(zhí)行的程序作相應(yīng)的現(xiàn)場保護(hù)處理。

  應(yīng)用掉電保護(hù)功能的工業(yè)時(shí)間繼電器,需保存16字節(jié)預(yù)置參數(shù)和16字節(jié)掉電瞬間運(yùn)行狀態(tài)參量以及1字節(jié)的掉電保護(hù)標(biāo)志,即總的保存數(shù)據(jù)為33字節(jié)。其中,16字節(jié)的預(yù)置參數(shù)在運(yùn)行過程中設(shè)定,同時(shí)已寫入B段中。因此,中斷處理程序只須將17字節(jié)的狀態(tài)參量寫入A段中。經(jīng)多次實(shí)際斷電試驗(yàn),工業(yè)時(shí)間繼電器均能在重新上電時(shí)正確恢復(fù)斷電時(shí)的保護(hù)數(shù)據(jù)。

參考文獻(xiàn)

1 胡大可MSP430系列超低功耗16位單片機(jī)原理與應(yīng)用.北京:北京航空航天大學(xué)出版社,2000



關(guān)鍵詞: MSP430單片機(jī)Flash存儲

評論


技術(shù)專區(qū)

關(guān)閉