- 相關(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í)用性。引言
TMS320F206(簡稱F206)是德州儀器公司一種較新型的高性能數(shù)字信號(hào)處理器芯 片,采用靜態(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存儲(chǔ)器由二塊相互獨(dú)立的16K×16位的Flash存儲(chǔ)器組成(Flash0和Flash1),可分別獨(dú)立地對它們進(jìn)行讀取、擦除和編程等操作。第二塊Flash工作模式的切換分別由片上2個(gè)I/O映射寄存器控制。通常情況下,這二塊Flash存儲(chǔ)器,一塊用于存放固化程序,程序調(diào)試完成后通過DSP仿真頭將程序直接寫入Flash中;另一塊可用于存放重要參數(shù),可通過鍵盤、通信端口以及運(yùn)行程序自動(dòng)地將數(shù)據(jù)寫入Flash中,從而實(shí)現(xiàn)對Flash存儲(chǔ)器的“在線”擦、寫。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,否則會(huì)使擦、寫過程出現(xiàn)錯(cuò)誤,從而導(dǎo)致“在線”擦、寫失敗。
③正常情況下F206的擦、寫次數(shù)壽命是1000次。因此,對Flash塊的“在線”編程應(yīng)該做到一次擦除、多次寫入,直到整個(gè)Flash存儲(chǔ)塊寫滿后再重新擦除,這樣可以充分延長Flash存儲(chǔ)器的使用壽命。
④不要將寫Flash的程序和被寫數(shù)據(jù)放在同一塊Flash存儲(chǔ)器上(后面說明)。由于F206的中斷向量從0000H單元開始,所以第一塊Flash存儲(chǔ)器(Flash0)用于保存固化程序,另一塊Flash存儲(chǔ)器用于存放重要參數(shù),進(jìn)行“在線”編程。
2 Flash存儲(chǔ)器的特點(diǎn)
存儲(chǔ)器的操作有讀和寫兩種基本操作,各種類型存儲(chǔ)器的讀操作都相同,而寫操作則各不相同。RAM型存儲(chǔ)器的讀/寫操作幸免通過址/數(shù)據(jù)總線和片選、讀/寫控制線來完成;EEPROM型存儲(chǔ)器讀操作和RAM相同,寫操作由片內(nèi)定時(shí)完成擦除和編程操作,并有一個(gè)狀態(tài)信號(hào)線來指示寫操作是否完成;PROM型存儲(chǔ)器的寫操作則由特殊工具來完成,系統(tǒng)中只有讀操作;Flash型存儲(chǔ)器的寫操作則由清“0”、置“1”和編程操作構(gòu)成。清“0”和置“1”操作按扇區(qū)(一塊存儲(chǔ)區(qū)),如F206的一塊存儲(chǔ)區(qū)的大小為32個(gè)字,F(xiàn)lash0的起始地址為0000H,F(xiàn)lash1的起始地址為40000H,每個(gè)Flash塊包含512個(gè)扇區(qū)。
Flash存儲(chǔ)器的寫操作由控制寄存器控制,狀態(tài)寄存器反饋的信息指示操作過程。Flash型存儲(chǔ)器的寫操作既可以“在線”完成,也可以由特殊工具來完成。由此可見,對Flash型存儲(chǔ)器的訪問由兩部分構(gòu)成,一為Flash存儲(chǔ)單元,二為Flash寄存器。訪問存儲(chǔ)單元和寄存器公用一組外部總線,究竟是訪問存儲(chǔ)單元還是訪問寄存器則由工作模式?jīng)Q定。作在訪問存儲(chǔ)單元模式(只讀)時(shí),從數(shù)據(jù)總線上讀到的是存儲(chǔ)單元中的數(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存儲(chǔ)器上。
3 F206進(jìn)行Flash“在線”擦寫的基本步驟
(1)模式切換
Flash的“在線”編程由清“0”、置“1”和數(shù)據(jù)寫入等操作組成。進(jìn)行這些操作前首先要將Flash由存儲(chǔ)器工作模式(mode 1)切換至于寄存器工作模式(mode 0)。F206中Flash存儲(chǔ)器工作模式由映射于I/O地址中的兩個(gè)寄存器控制,分別為F_ACCESS0寄存器(FFE0h)和F_ACCESS1寄存器(FFE1h)。向Flash模式控制寄存器的最低位寫入0,則Flash工作于寄存器模式;反之寫入1,則工作于存儲(chǔ)器模式。復(fù)位后,自動(dòng)處于存儲(chǔ)器模式。如圖2所示,兩種工作模式之間切換后,F(xiàn)lash內(nèi)容變化。處于模式1時(shí),F(xiàn)lash存儲(chǔ)器顯示的是其所存儲(chǔ)的數(shù)據(jù);處于模式0時(shí),F(xiàn)lash存儲(chǔ)器顯示寄存器的內(nèi)容,并且以4個(gè)為一組重復(fù)顯示于整個(gè)Flash塊中。
F206的Flash存儲(chǔ)器塊中只有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:寫地址寄存器,用于存儲(chǔ)寫操作地址。
*WDATA:寫數(shù)據(jù)寄存器,用于存放寫操作數(shù)據(jù)。
(2)清“0”操作
清“0”操作按扇區(qū)進(jìn)行,F(xiàn)206的Flash每一區(qū)的大小為32個(gè)字(WORD)。進(jìn)行清“0”操作就是對Flash存儲(chǔ)單元的非零位(即值為“1”)寫入0,使各數(shù)據(jù)位的邊緣保持一致;通常的做法是將Flash存儲(chǔ)單元中的數(shù)據(jù)讀出,與FFFFh進(jìn)行異或(XOR)后,再寫回Flash存儲(chǔ)單元中。清“0”操作后,需調(diào)用VER0功能對Flash塊進(jìn)行0校驗(yàn)。
(3)置“1”操作
置“1”操作按扇區(qū)進(jìn)行,對每個(gè)存儲(chǔ)單元寫入“1”;執(zhí)行置“1”操作后需要調(diào)用VER1功能進(jìn)行校驗(yàn)。置“1”操作后,F(xiàn)lash塊存儲(chǔ)單元的值均為FFFFh。如果置“1”正確,
【利用F206片內(nèi)Flash進(jìn)行在線編程】相關(guān)文章:
JTAG口及其對Flash的在線編程03-19
通過JTAG口對DSP外部Flash存儲(chǔ)器的在線編程03-26
利用Flash實(shí)現(xiàn)DSP對多個(gè)程序有選擇的加載03-19
利用Directshow進(jìn)行流媒體播放架構(gòu)的研究與實(shí)現(xiàn)03-08
利用非現(xiàn)場審計(jì)系統(tǒng)進(jìn)行分析性復(fù)核03-23
如何有效利用多媒體進(jìn)行英語教學(xué)03-16
利用注冊表對WINDOWS 98進(jìn)行管理與維護(hù)03-18