在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430功能模塊詳解系列之——FLASH存儲(chǔ)器

            MSP430功能模塊詳解系列之——FLASH存儲(chǔ)器

            作者: 時(shí)間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
            一、MSP430單片機(jī)FLASH存儲(chǔ)器模塊特點(diǎn)

            1.8~3.6V工作電壓,2.7~3.6V編程電壓;
            擦除/編程次數(shù)可達(dá)100000次:
            數(shù)據(jù)保持時(shí)間從10年到100年不等:
            60KB空間編程時(shí)間<5秒:
            保密熔絲燒斷后不可恢復(fù),不能再對(duì)JTAG進(jìn)行任何訪問;
            FLASH編程/擦除時(shí)間由內(nèi)部硬件控制,無任何軟件干預(yù);

            本文引用地址:http://www.biyoush.com/article/201611/316544.htm

            二、FLASH存儲(chǔ)器的操作

            由于FLASH存儲(chǔ)器由很多相對(duì)獨(dú)立的段組成,因此可在一個(gè)段中運(yùn)行程序,而對(duì)另一個(gè)段進(jìn)行擦除或?qū)懭氩僮?。正在?zhí)行編程或擦除等操作的FLASH段是不能被訪問的,因?yàn)檫@時(shí)該段是與片內(nèi)地址總線暫時(shí)斷開的。

            對(duì)FLASH模塊的操作可分為3類:擦除、寫入及讀出。而擦除又可分為單段擦除和整個(gè)模塊擦除;寫入可分為字寫入、字節(jié)寫入、字連續(xù)寫入和字節(jié)連續(xù)寫入

            1.FLASH擦除操作:對(duì)FLASH要寫入數(shù)據(jù),必須先擦除相應(yīng)的段,對(duì)FLASH存儲(chǔ)器的擦除必須是整段地進(jìn)行,可以一段一段地擦除,也可以多端一起擦除,但不能一個(gè)字節(jié)或一個(gè)字地擦除。擦除之后各位為1。擦除操作的順序如下:


            選擇適當(dāng)?shù)臅r(shí)鐘源和分頻因子,為時(shí)序發(fā)生器提供正確時(shí)鐘輸入
            如果Lock=1,則將它復(fù)位
            ****BUSY標(biāo)志位,只有當(dāng)BUSY=0時(shí)才可以執(zhí)行下一步,否則一直****BUSY
            如果擦除一段,則設(shè)置ERASE=1
            如果擦除多段,則設(shè)置MERAS=1
            如果擦除整個(gè)FLASH,則設(shè)置RASE=1,同時(shí)MERAS=1
            對(duì)擦除的地址范圍內(nèi)的任意位置作一次空寫入,用以啟動(dòng)擦除操作。
            在擦除周期選擇的時(shí)鐘源始終有效
            在擦除周期不修改分頻因子
            在BUSY=1期間不再訪問所操作的段
            電源電壓應(yīng)符合芯片的相應(yīng)要求

            對(duì)FLASH擦除要做4件事

            對(duì)FLASH控制寄存器寫入適當(dāng)?shù)目刂莆?br />****BUSY位
            空寫一次
            等待


            2.FLASH編程操作。對(duì)FLASH編程按如下順序進(jìn)行:


            選擇適當(dāng)?shù)臅r(shí)鐘源和分頻因子
            如果Lock=1,則將它復(fù)位
            ****BUSY標(biāo)志位,只有當(dāng)BUSY=0時(shí)才可以執(zhí)行下一步,否則一直****BUSY
            如果寫入單字或單字節(jié),則將設(shè)置WRT=1
            如果是塊寫或多字、多字節(jié)順序?qū)懭?,則將設(shè)置WRT=1,BLKWRT=1
            將數(shù)據(jù)寫入選定地址時(shí)啟動(dòng)時(shí)序發(fā)生器,在時(shí)序發(fā)生器的控制下完成整個(gè)過程

            塊寫入可用于在FLASH段中的一個(gè)連續(xù)的存儲(chǔ)區(qū)域?qū)懭胍幌盗袛?shù)據(jù)。一個(gè)塊為64字節(jié)長(zhǎng)度。塊開始在0XX00H、0XX40H、0XX80H、0XXC0H等地址,塊結(jié)束在0XX3FH、0XX7FH、0XXBFH、0XXFFH等地址。塊操作在64字節(jié)分界處需要特殊的軟件支持,操作如下:


            等待WAIT位,直到WAIT=1,表明最后一個(gè)字或字節(jié)寫操作結(jié)束
            將控制位BLKWRT復(fù)位
            保持BUSY位為1,直到編程電壓撤離FLASH模塊
            在新塊被編程前,等待trcv(編程電壓恢復(fù)時(shí)間)時(shí)間


            在寫周期中,必須保證滿足以下條件:

            被選擇的時(shí)鐘源在寫過程中保持有效
            分頻因子不變
            在BUSY=1期間,不訪問FLASH存儲(chǔ)器模塊

            對(duì)FLASH寫入要做4件事

            對(duì)FLASH控制寄存器寫入適當(dāng)?shù)目刂莆?br />****BUSY位
            寫一個(gè)數(shù)據(jù)
            繼續(xù)寫一直到寫完


            3.FLASH錯(cuò)誤操作的處理:在寫入FLASH控制寄存器控制參數(shù)時(shí),可引發(fā)以下錯(cuò)誤:


            如果寫入高字節(jié)口令碼錯(cuò)誤,則引發(fā)PUC信號(hào)。小心操作可避免
            在對(duì)FLASH操作期間讀FLASH內(nèi)容,會(huì)引發(fā)ACCVFIG狀態(tài)位的設(shè)置。小心操作可避免
            在對(duì)FLASH操作期間看門狗定時(shí)器溢出。建議用戶程序在進(jìn)行FLASH操作之前先停止看門狗定時(shí)器,等操作結(jié)束后再打開看門狗
            所有的FLASH類型的MSP430器件0段都包含有中斷向量等重要的程序代碼,如果對(duì)其進(jìn)行擦除操作,將會(huì)引起嚴(yán)重的后果
            不要在FLASH操作期間允許中斷的發(fā)生


            4.FLASH操作小結(jié)

            對(duì)FLASH的操作是通過對(duì)3個(gè)控制字中的相應(yīng)位來完成的,只有控制位的唯一組合才能實(shí)現(xiàn)相應(yīng)的功能。下表給出了正確的控制位組合:

            功能

            BLKWRTWRTMerasEraseBUSYWAIT

            Lock

            字或字節(jié)寫入0100000
            塊寫入1100010
            段擦除并寫入0001000
            擦除A和B以外段0010000
            全部擦除并寫入001100

            三、FLASH寄存器說明

            允許編程、擦除等操作首先要對(duì)3個(gè)控制寄存器(FCTL1、FCTL2、FCTL3)的各位進(jìn)行定義。它們使用安全鍵值(口令碼)來防止錯(cuò)誤的編程和擦除周期,口令出錯(cuò)將產(chǎn)生非屏蔽中斷請(qǐng)求。安全鍵值位于每個(gè)控制字的高字節(jié),讀時(shí)為96H,寫時(shí)為5AH。

            1.FCTL1 控制寄存器1(用于控制所有寫/編程或者刪除操作的有效位),各位定義如下:

            15~87

            6

            5

            4

            3

            2

            1

            0

            安全鍵值,讀時(shí)為96H,寫時(shí)為5AHBLKWRTWRT保留MERASERASE

            BLKWRT——段編程位。如果有較多的連續(xù)數(shù)據(jù)要編程到某一段或某幾段,則可選擇這種方式,這樣可縮短編程時(shí)間。在一段程序完畢,再編程其它段,需對(duì)該位先復(fù)位再置位,在下一條寫指令執(zhí)行前WAIT位應(yīng)為1。


            0:未選用段編程方式
            1:選用段編程方式


            WRT——編程位


            0:不編程,如對(duì)FLASH寫操作,發(fā)生非法訪問,使ACCVIFG位置位;
            1:編程


            MERAS——主存控制擦除位


            0:不擦除
            1:主存全擦除,對(duì)主存空寫時(shí)啟動(dòng)擦除操作,完成后MERAS自動(dòng)復(fù)位


            ERASE——擦除一段控制位


            0:不擦除
            1:擦除一段。由空寫指令帶入段號(hào)來指定擦除哪一段,操作完成后自動(dòng)復(fù)位


            2.FCTL2 控制寄存器2(對(duì)進(jìn)入時(shí)序發(fā)生器的時(shí)鐘進(jìn)行定義),各位定義如下:

            15~87

            6

            5

            4

            3

            2

            1

            0

            安全鍵值,讀時(shí)為96H,寫時(shí)為5AHSSEL1SSEL0FN5FN4FN3FN2FN1FN0

            SSEL1、SSEL0——選擇時(shí)鐘源


            0:ACLK
            1:MCLK
            2:SMCLK
            3:SMCLK


            FN5~FN0——分頻系數(shù)選擇位


            0:直通
            1:2分頻
            2:3分頻
            ......
            63:64分頻


            3.FCTL3 控制寄存器3(用于控制FLASH存儲(chǔ)器操作,保存相應(yīng)的狀態(tài)標(biāo)志和錯(cuò)誤條件),各位定義如下:

            15~87

            6

            5

            4

            3

            2

            1

            0

            安全鍵值,讀時(shí)為96H,寫時(shí)為5AHEMEXLockWAITACCVIFGKEYVBUSY

            EMEX——緊急退出位。對(duì)FLASH的操作失敗時(shí)使用該位作緊急處理


            0:無作用
            1:立即停止對(duì)FLASH的操作


            Lock——鎖定位,給已經(jīng)編程好的FLASH存儲(chǔ)器加鎖


            0:不加鎖,F(xiàn)LASH存儲(chǔ)器可讀、可寫、可擦除
            1:加鎖,加鎖的FLASH存儲(chǔ)器可讀、不可寫、不可擦除


            WAIT——等待指示信號(hào),該位只讀。


            0:段編程操作已經(jīng)開始,編程操作進(jìn)行中
            1:段編程操作有效,當(dāng)前數(shù)據(jù)已經(jīng)正確地寫入FLASH存儲(chǔ)器,后續(xù)編程數(shù)據(jù)被列入計(jì)劃


            ACCVIFG——非法訪問中斷標(biāo)志。當(dāng)對(duì)FLASH陣列進(jìn)行編程或擦除操作時(shí)不能訪問FLASH,否則將使得該位置位


            0:沒有對(duì)FLASH存儲(chǔ)器的非法訪問
            1:有對(duì)FLASH存儲(chǔ)器的非法訪問


            KEYV——安全鍵值(口令碼)出錯(cuò)標(biāo)志位


            0:對(duì)3個(gè)控制寄存器的訪問,寫入時(shí)高字節(jié)是0A5H
            1:對(duì)3個(gè)控制寄存器的訪問,寫入時(shí)高字節(jié)不是0A5H,同時(shí)引發(fā)PUC信號(hào)
            KEYV不會(huì)自動(dòng)復(fù)位,須用軟件復(fù)位


            BUSY——忙標(biāo)志位。該位只讀。每次編程或擦除之前都應(yīng)該檢查BUSY位。當(dāng)編程或擦除啟動(dòng)后,時(shí)序發(fā)生器將自動(dòng)設(shè)置該位為1,操作完成后BUSY位自動(dòng)復(fù)位


            0:FLASH存儲(chǔ)器不忙
            1:FLASH存儲(chǔ)器忙



            關(guān)鍵詞: MSP430FLASH存儲(chǔ)

            評(píng)論


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

            關(guān)閉