- 相關(guān)推薦
利用F206片內(nèi)Flash進(jìn)行在線編程
摘要:在DSP構(gòu)成的裝置或儀器中,經(jīng)常需要保存或修改一些重要的參數(shù)。本文介紹如何利用TMS320F206片內(nèi)Flash進(jìn)行“在線”擦、寫,用于保存和修改數(shù)據(jù),具有較強(qiáng)的實(shí)用性。關(guān)鍵詞:DSPTMS320F206Flash在線編程
引言
TMS320F206(簡稱F206)是德州儀器公司一種較新型的高性能數(shù)字信號處理器芯片,采用靜態(tài)CMOS工藝技術(shù)設(shè)計(jì),功耗低、抗干擾能力強(qiáng)。其結(jié)構(gòu)簡單,指令執(zhí)行速度快(單周期指令的執(zhí)速度為50ns),指令的源代碼與C1XX和C2XX系列保持兼容并且向上兼容TI公司的第5代DSP(C5X系列)。同時(shí),F(xiàn)206處上集成的32K×16位的Flash存儲器由二塊相互獨(dú)立的16K×16位的Flash存儲器組成(Flash0和Flash1),可分別獨(dú)立地對它們進(jìn)行讀取、擦除和編程等操作。第二塊Flash工作模式的切換分別由片上2個(gè)I/O映射寄存器控制。通常情況下,這二塊Flash存儲器,一塊用于存放固化程序,程序調(diào)試完成后通過DSP仿真頭將程序直接寫入Flash中;另一塊可用于存放重要參數(shù),可通過鍵盤、通信端口以及運(yùn)行程序自動地將數(shù)據(jù)寫入Flash中,從而實(shí)現(xiàn)對Flash存儲器的“在線”擦、寫。F206及F24x在程序地址空間的映射如圖1所示。
圖1
1實(shí)現(xiàn)F206在線編程需要注意的幾點(diǎn)
①進(jìn)行硬件設(shè)計(jì)時(shí),必須將F206的Vccp引腳直接接于+5V電源上。
、谄瑑(nèi)CPU的工作時(shí)鐘不得高于20MHz。如果用倍頻連接方式,則輸入時(shí)鐘頻率不得高于10MHz,否則會使擦、寫過程出現(xiàn)錯(cuò)誤,從而導(dǎo)致“在線”擦、寫失敗。
、壅G闆r下F206的擦、寫次數(shù)壽命是1000次。因此,對Flash塊的“在線”編程應(yīng)該做到一次擦除、多次寫入,直到整個(gè)Flash存儲塊寫滿后再重新擦除,這樣可以充分延長Flash存儲器的使用壽命。
、懿灰獙慒lash的程序和被寫數(shù)據(jù)放在同一塊Flash存儲器上(后面說明)。由于F206的中斷向量從0000H單元開始,所以第一塊Flash存儲器(Flash0)用于保存固化程序,另一塊Flash存儲器用于存放重要參數(shù),進(jìn)行“在線”編程。
2Flash存儲器的特點(diǎn)
存儲器的操作有讀和寫兩種基本操作,各種類型存儲器的讀操作都相同,而寫操作則各不相同。RAM型存儲器的讀/寫操作幸免通過址/數(shù)據(jù)總線和片選、讀/寫控制線來完成;EEPROM型存儲器讀操作和RAM相同,寫操作由片內(nèi)定時(shí)完成擦除和編程操作,并有一個(gè)狀態(tài)信號線來指示寫操作是否完成;PROM型存儲器的寫操作則由特殊工具來完成,系統(tǒng)中只有讀操作;Flash型存儲器的寫操作則由清“0”、置“1”和編程操作構(gòu)成。清“0”和置“1”操作按扇區(qū)(一塊存儲區(qū)),如F206的一塊存儲區(qū)的大小為32個(gè)字,F(xiàn)lash0的起始地址為0000H,F(xiàn)lash1的起始地址為40000H,每個(gè)Flash塊包含512個(gè)扇區(qū)。
Flash存儲器的寫操作由控制寄存器控制,狀態(tài)寄存器反饋的信息指示操作過程。Flash型存儲器的寫操作既可以“在線”完成,也可以由特殊工具來完成。由此可見,對Flash型存儲器的訪問由兩部分構(gòu)成,一為Flash存儲單元,二為Flash寄存器。訪問存儲單元和寄存器公用一組外部總線,究竟是訪問存儲單元還是訪問寄存器則由工作模式?jīng)Q定。作在訪問存儲單元模式(只讀)時(shí),從數(shù)據(jù)總線上讀到的是存儲單元中的數(shù)據(jù);工作在訪問寄存器模式(讀/寫)時(shí),從數(shù)據(jù)總線讀到的是寄存器的狀態(tài)信息。因此,如果將寫Flash的程序和將寫入數(shù)據(jù)放在同一塊Flash上,則對Flash寫操作時(shí)需要切換工作模式,從而導(dǎo)致取指令時(shí)取到的是狀態(tài)信息,F(xiàn)lash寫操作失敗,所以不能將程序和數(shù)據(jù)放在同一塊Flash存儲器上。
3F206進(jìn)行Flash“在線”擦寫的基本步驟
。1)模式切換
Flash的“在線”編程由清“0”、置“1”和數(shù)據(jù)寫入等操作組成。進(jìn)行這些操作前首先要將Flash由存儲器工作模式(mode1)切換至于寄存器工作模式(mode0)。F206中Flash存儲器工作模式由映射于I/O地址中的兩個(gè)寄存器控制,分別為F_ACCESS0寄存器(FFE0h)和F_ACCESS1寄存器(FFE1h)。向Flash模式控制寄存器的最低位寫入0,則Flash工作于寄存器模式;反之寫入1,則工作于存儲器模式。復(fù)位后,自動處于存儲器模式。如圖2所示,兩種工作模式之間切換后,F(xiàn)lash內(nèi)容變化。處于模式1時(shí),F(xiàn)lash存儲器顯示的是其所存儲的數(shù)據(jù);處于模式0時(shí),F(xiàn)lash存儲器顯示寄存器的內(nèi)容,并且以4個(gè)為一組重復(fù)顯示于整個(gè)Flash塊中。
F206的Flash存儲器塊中只有4個(gè)寄存器SEG_CTR、TST、WADRS、WDATA,其余都是重復(fù)顯示相同的內(nèi)容,其功能如下所述。
*SEG_CTR:片段控制寄存器,其高8位(MSBS)用于選擇相應(yīng)片段。該位置“1”,則使能相應(yīng)的片段,可以進(jìn)行擦寫。因此F206
中16K×16的Flash塊分為8個(gè)片段,每個(gè)片段2KB.低8位(LSBS)用來控制Flash塊的擦除、寫入、校驗(yàn)等操作,如圖3所示(各個(gè)控制位的具體設(shè)置方法請查閱TI相關(guān)參考資料)。
*TST:測試寄存器,通常不用。(保留,用于測試。)
*WADRS:寫地址寄存器,用于存儲寫操作地址。
*WDATA:寫數(shù)據(jù)寄存器,用于存放寫操作數(shù)據(jù)。
。2)清“0”操作
清“0”操作按扇區(qū)進(jìn)行,F(xiàn)206的Flash每一區(qū)的大小為32個(gè)字(WORD)。進(jìn)行清“0”操作就是對Flash存儲單元的非零位(即值為“1”)寫入0,使各數(shù)據(jù)位的邊緣保持一致;通常的做法是將Flash存儲單元中的數(shù)據(jù)讀出,與FFFFh進(jìn)行異或(XOR)后,再寫回Flash存儲單元中。清“0”操作后,需調(diào)用VER0功能對Flash塊進(jìn)行0校驗(yàn)。
。3)置“1”操作
置“1”操作按扇區(qū)進(jìn)行,對每個(gè)存儲單元寫入“1”;執(zhí)行置“1”操作后需要調(diào)用VER1功能進(jìn)行校驗(yàn)。置“1”操作后,F(xiàn)lash塊存儲單元的值均為FFFFh。如果置“1”正確,則可以進(jìn)行下一步的數(shù)據(jù)寫入數(shù)據(jù)。
圖3
。4)數(shù)據(jù)寫入
數(shù)據(jù)只能寫入已經(jīng)置“1”的存儲單元,對于同F(xiàn)lash存儲單元只能寫一入一次;如要改變存儲單元中的內(nèi)容,必須重新進(jìn)行清“0”和置“1”的操作后才能寫入新的數(shù)據(jù)。否則,會使存儲單元中各個(gè)數(shù)據(jù)位的“邊緣”不一致,從單元中讀出的數(shù)據(jù)與寫入的數(shù)據(jù)不一致。由于Flash擦除次數(shù)有限,因此不可能每次修改和定改數(shù)據(jù)時(shí)都進(jìn)行擦除操作,而應(yīng)將每次修改后的參數(shù)(表)連續(xù)寫在已置“1”但沿未寫入數(shù)據(jù)的Flash存儲單元中,并對參數(shù)(表)作起始和結(jié)束的標(biāo)記(如55AA);程序調(diào)用參數(shù)(表)時(shí)可以很方便地找到最新修改的參數(shù)(表),當(dāng)已置“1”的Flash存儲單元已寫完,再重新進(jìn)行清“0”和置“1”操作后,從Flash塊的起始位置(對F206的Flash1存儲塊為4000h)寫入新的數(shù)據(jù),這樣可以充分延長F206片內(nèi)Flash的使用。
結(jié)語
本文對TI公司的TMS320F206為例,介紹了DSP進(jìn)行Flash“在線”編程的方法,具有較強(qiáng)的實(shí)用價(jià)值。筆者將該技術(shù)用于由F206構(gòu)成的微機(jī)過流保護(hù)裝置中,使得保護(hù)裝置的現(xiàn)場校驗(yàn)、調(diào)試和動作值整定都非常方便。對于具有三個(gè)Flash塊的TMS320FL2407系列,只要找出相應(yīng)Flash塊控制寄存器,也能用同樣的方法進(jìn)行“在線”編程。Flash進(jìn)行“在線”編程的程序較為復(fù)雜,進(jìn)行編程時(shí)需要加入一定的時(shí)間延時(shí),編程時(shí)可參閱TI公司的例程,該例程可以從TI公司的網(wǎng)頁www.ti.com下載。由于篇幅有限,此處不作詳細(xì)介紹。
【利用F206片內(nèi)Flash進(jìn)行在線編程】相關(guān)文章:
JTAG口及其對Flash的在線編程08-06
通過JTAG口對DSP外部Flash存儲器的在線編程08-06
利用Flash實(shí)現(xiàn)DSP對多個(gè)程序有選擇的加載08-06
DSP外掛Flash在系統(tǒng)編程及并行引導(dǎo)裝載方法08-06
利用文中插圖,進(jìn)行導(dǎo)語設(shè)計(jì)08-08
利用ASP實(shí)現(xiàn)在線統(tǒng)計(jì)圖表08-06
利用電教媒體進(jìn)行發(fā)散性教學(xué)08-07