當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]摘要:為避免在程序運(yùn)行時(shí)向單片機(jī)內(nèi)置的Flash寫入數(shù)據(jù)導(dǎo)致復(fù)位,采用調(diào)用鎖定與關(guān)鍵碼的操作方法對C2805lF35X型單片機(jī)的Flash進(jìn)行擦除、寫入和讀取操作,并提供程序范例。該方法無需任何接口電路,使用方便,成本低

摘要:為避免在程序運(yùn)行時(shí)向單片機(jī)內(nèi)置的Flash寫入數(shù)據(jù)導(dǎo)致復(fù)位,采用調(diào)用鎖定與關(guān)鍵碼的操作方法對C2805lF35X型單片機(jī)的Flash進(jìn)行擦除、寫入和讀取操作,并提供程序范例。該方法無需任何接口電路,使用方便,成本低且安全可靠。此方法已應(yīng)用于包裝機(jī)控制器,實(shí)現(xiàn)包裝參數(shù)的保存和修改,效果良好。
關(guān)鍵詞:C805lF35X;Flash;單片機(jī);包裝機(jī)

    C805lF35X是Cygnal公司推出的混合信號(hào)片上系統(tǒng)型單片機(jī)MCU,采用CIP-5l內(nèi)核可大大提升指令運(yùn)行速度,另外該器件內(nèi)部還具有一個(gè)完整而先進(jìn)的時(shí)鐘系統(tǒng)和片內(nèi)調(diào)試電路,其內(nèi)置的Flash代替ROM和EPROM,不僅為用戶的存儲(chǔ)提供方便,還大大簡化電路。這里給出使用C80-5lF35X單片機(jī)內(nèi)部Flash存儲(chǔ)器的擦除、寫入和讀取操作方法。

1 存儲(chǔ)器結(jié)構(gòu)
    C805lF35X單片機(jī)內(nèi)部含有2個(gè)獨(dú)立的存儲(chǔ)器:程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。程序存儲(chǔ)器中包含8 KB可在系統(tǒng)編程的Flash存儲(chǔ)器。C8051-F35X通過設(shè)置程序存儲(chǔ)寫允許位(PSCTL.0)采用MOVX指令對程序存儲(chǔ)器寫入。如圖l所示。


    這8 KB的Flash存儲(chǔ)器在一個(gè)連續(xù)的存儲(chǔ)器塊內(nèi)(地址范圍為OX0000~OXlDFF,OXlE00以上的地址保留),其通過硬件接口或采用MOVX指令對Flash存儲(chǔ)器在系統(tǒng)編程。
    為了保證操作正確,寫入和擦除操作由硬件自動(dòng)定時(shí),無需數(shù)據(jù)查詢判斷寫/擦除操作何時(shí)結(jié)束。程序在Flash寫入/擦除操作時(shí)停止執(zhí)行。

2 Flash存儲(chǔ)器的鎖定與解鎖
    在Flash操作之前,必須按順序向Flash鎖定和關(guān)鍵碼寄存器(FLKEY)寫入正確的關(guān)鍵碼,該關(guān)鍵碼禁止對知識(shí)產(chǎn)權(quán)信息(以程序或常數(shù)形式存儲(chǔ)在Flash中)進(jìn)行未經(jīng)授權(quán)訪問或防止用戶無意修改程序代碼以及因系統(tǒng)條件異常導(dǎo)致代碼改變。寫關(guān)鍵碼時(shí)必須按順序?qū)?,否則Flash寫入或擦除操作被禁止,直到下一次系統(tǒng)復(fù)位。存儲(chǔ)在Flash用戶空間的最后一個(gè)字節(jié)的安全鎖定字節(jié)保護(hù)Flash存儲(chǔ)器,使其不被非保護(hù)代碼或通過硬件接口讀寫或擦除。使用安全鎖定字節(jié)時(shí)有以下關(guān)鍵點(diǎn):1)將Flash安全字節(jié)中的位設(shè)置為0,保護(hù)Flash存儲(chǔ)器不通過JTAG接口被訪問;2)采用軟件設(shè)置一個(gè)軟件讀訪問限制,保護(hù)存儲(chǔ)器不被讀??;3)已被軟件訪問保護(hù)的Flash存儲(chǔ)器也應(yīng)用Flash安全字節(jié)進(jìn)行保護(hù)。使其不通過JTAG接口訪問;4)在保護(hù)Flash時(shí),包含F(xiàn)lash安全字節(jié)的Flash頁也應(yīng)保護(hù);5)如果最終用戶無需訪問Flash,可通過簡單鎖定整個(gè)Flash存儲(chǔ)器保護(hù)其不通過JTAG訪問。

3 Flash數(shù)據(jù)擦除
    采用軟件MOVX指令對Flash存儲(chǔ)器編程,在使用MOVX指令前,先允許Flash寫操作,其過程為:1)將程序存儲(chǔ)寫允許位PSWE(PSCTL.0)設(shè)置為邏輯“1”,這將使MOVX操作指向目標(biāo)Flash存儲(chǔ)器;2)按順序向Flash鎖定寄存器(FLKEY)寫入Flash關(guān)鍵碼,PSWE位將保持置位狀態(tài),直到被軟件清除。
    在采用軟件修改Flash內(nèi)容前,PSWE必須置為邏輯“l(fā)”;而在軟件擦除Flash存儲(chǔ)器前,PSWE位和PSEE位都必須置為邏輯“1”。寫入Flash存儲(chǔ)器操作可清除數(shù)據(jù)位,但不能使數(shù)據(jù)位置“1”,只有擦除操作能將Flash中的數(shù)據(jù)位置為“l(fā)”。所以在寫入新值前,必須先擦除待編程地址。Flash存儲(chǔ)器是以512字節(jié)的扇區(qū)為單位構(gòu)成的,一次擦除操作將擦除整個(gè)扇區(qū)(將扇區(qū)內(nèi)的所有字節(jié)置為OXFF)。
    擦除一個(gè)扇區(qū)的步驟如下:1)禁止中斷;2)置“l(fā)”程序存儲(chǔ)器擦除允許位(PSCTL中的PSEE),以允許Flash扇區(qū)移除:3)置“1”程序存儲(chǔ)器寫允許位(PSCTL中的PSWE),允許Flash寫入;4)向FLKEY寫第1個(gè)關(guān)鍵碼:0XA5;5)向FLKEY寫第2個(gè)關(guān)鍵碼:0XFl;6)用MOVx指令向待擦除頁內(nèi)的任何一個(gè)地址寫入1個(gè)數(shù)據(jù)字節(jié);7)清除PSWE和PSEE位;8)重新允許中斷。

4 Flash數(shù)據(jù)寫入
    Flash存儲(chǔ)器可一次寫1個(gè)字節(jié),也可一次寫1組字節(jié),寄存器PFEOCN中的FLBWE位為一次Flash寫操作可寫入1個(gè)或2個(gè)字節(jié)。當(dāng)FLBWE清零時(shí),每次Flash寫操作寫入1個(gè)字節(jié);當(dāng)FLBWE位置為“1”時(shí),每次Flash寫操作寫入2個(gè)字節(jié)(塊寫)。塊寫時(shí)間與單字節(jié)寫的時(shí)間相同,在向Flash存儲(chǔ)器寫入大量數(shù)據(jù)時(shí)可節(jié)省時(shí)間。在單字節(jié)寫Flash時(shí),分別寫入字節(jié)數(shù)據(jù),每個(gè)MOVX寫指令執(zhí)行一次Flash寫操作。C805lF35X的Flash存儲(chǔ)器寫入程序代碼如下:


5 Flash數(shù)據(jù)讀取
    由于Flash讀操作采用MOVC指令實(shí)現(xiàn),因此用于讀操作的Flash指針必須是CODE類型。由于Flash寫操作是用MOVX指令實(shí)現(xiàn)的,所以寫入或擦除操作的Flash指針必須是XDATA類型。對于C8051F35X的Flash存儲(chǔ)器讀取數(shù)據(jù)程序代碼如下:
  

6 實(shí)際應(yīng)用
    C805lF35X內(nèi)部Flash存儲(chǔ)器的讀寫操作可應(yīng)用于包裝機(jī)控制器的參數(shù)存儲(chǔ)。在開機(jī)運(yùn)行時(shí)如果每次重新輸入分裝重量值、分裝精度等參數(shù)會(huì)降低工作效率,這時(shí)需在系統(tǒng)上電后自行調(diào)用事先設(shè)置的參數(shù)以簡化工作人員的操作步驟,提高生產(chǎn)效率。圖2是包裝機(jī)參數(shù)調(diào)用流程。開機(jī)上電后先初始化串口,如果按下設(shè)置鍵重新設(shè)置分裝重量,內(nèi)部Flash需保存新參數(shù),先將事先保存在Flash內(nèi)的數(shù)據(jù)刪除后再寫入新數(shù)據(jù),使掉電時(shí)數(shù)據(jù)不丟失,可在下次開機(jī)時(shí)直接調(diào)用數(shù)據(jù)。此方法已成功運(yùn)用于包裝機(jī)控制器中。

7 結(jié)論
    C805lF系列的其他型號(hào)的單片機(jī)Flash的基本操作只需修改上述程序代碼即可完成Flash存儲(chǔ)器的相關(guān)操作。此外,在線寫入C805lF35X單片機(jī)片內(nèi)Flash時(shí)需注意:1)Flash讀寫或擦除地址超出用戶代碼空間引起系統(tǒng)復(fù)位;2)1個(gè)Flash位一旦清零,必須經(jīng)擦除才能回到“1”狀態(tài),在重新寫入之前,一般要將數(shù)據(jù)字節(jié)擦除(置為0XFF);3)為保證Flash內(nèi)容的正確性,用戶使用軟件對Flash存儲(chǔ)器進(jìn)行寫或擦除操作時(shí),需先使能片內(nèi)VDD監(jiān)視器。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉