- 相關推薦
利用F206片內Flash進行在線編程
摘要:在DSP構成的裝置或儀器中,經常需要保存或修改一些重要的參數。本文介紹如何利用TMS320F206片內Flash進行“在線”擦、寫,用于保存和修改數據,具有較強的實用性。引言
TMS320F206(簡稱F206)是德州儀器公司一種較新型的高性能數字信號處理器芯 片,采用靜態CMOS工藝技術設計,功耗低、抗干擾能力強。其結構簡單,指令執行速度快(單周期指令的執速度為50ns),指令的源代碼與C1XX和C2XX系列保持兼容并且向上兼容TI公司的第5代DSP(C5X系列)。同時,F206處上集成的32K×16位的Flash存儲器由二塊相互獨立的16K×16位的Flash存儲器組成(Flash0和Flash1),可分別獨立地對它們進行讀取、擦除和編程等操作。第二塊Flash工作模式的切換分別由片上2個I/O映射寄存器控制。通常情況下,這二塊Flash存儲器,一塊用于存放固化程序,程序調試完成后通過DSP仿真頭將程序直接寫入Flash中;另一塊可用于存放重要參數,可通過鍵盤、通信端口以及運行程序自動地將數據寫入Flash中,從而實現對Flash存儲器的“在線”擦、寫。F206及F24x在程序地址空間的映射如圖1所示。
圖1
1 實現F206在線編程需要注意的幾點
①進行硬件設計時,必須將F206的Vccp引腳直接接于 5V電源上。
②片內CPU的工作時鐘不得高于20MHz。如果用倍頻連接方式,則輸入時鐘頻率不得高于10MHz,否則會使擦、寫過程出現錯誤,從而導致“在線”擦、寫失敗。
③正常情況下F206的擦、寫次數壽命是1000次。因此,對Flash塊的“在線”編程應該做到一次擦除、多次寫入,直到整個Flash存儲塊寫滿后再重新擦除,這樣可以充分延長Flash存儲器的使用壽命。
④不要將寫Flash的程序和被寫數據放在同一塊Flash存儲器上(后面說明)。由于F206的中斷向量從0000H單元開始,所以第一塊Flash存儲器(Flash0)用于保存固化程序,另一塊Flash存儲器用于存放重要參數,進行“在線”編程。
2 Flash存儲器的特點
存儲器的操作有讀和寫兩種基本操作,各種類型存儲器的讀操作都相同,而寫操作則各不相同。RAM型存儲器的讀/寫操作幸免通過址/數據總線和片選、讀/寫控制線來完成;EEPROM型存儲器讀操作和RAM相同,寫操作由片內定時完成擦除和編程操作,并有一個狀態信號線來指示寫操作是否完成;PROM型存儲器的寫操作則由特殊工具來完成,系統中只有讀操作;Flash型存儲器的寫操作則由清“0”、置“1”和編程操作構成。清“0”和置“1”操作按扇區(一塊存儲區),如F206的一塊存儲區的大小為32個字,Flash0的起始地址為0000H,Flash1的起始地址為40000H,每個Flash塊包含512個扇區。
Flash存儲器的寫操作由控制寄存器控制,狀態寄存器反饋的信息指示操作過程。Flash型存儲器的寫操作既可以“在線”完成,也可以由特殊工具來完成。由此可見,對Flash型存儲器的訪問由兩部分構成,一為Flash存儲單元,二為Flash寄存器。訪問存儲單元和寄存器公用一組外部總線,究竟是訪問存儲單元還是訪問寄存器則由工作模式決定。作在訪問存儲單元模式(只讀)時,從數據總線上讀到的是存儲單元中的數據;工作在訪問寄存器模式(讀/寫)時,從數據總線讀到的是寄存器的狀態信息。因此,如果將寫Flash的程序和將寫入數據放在同一塊Flash上,則對Flash寫操作時需要切換工作模式,從而導致取指令時取到的是狀態信息,Flash寫操作失敗,所以不能將程序和數據放在同一塊Flash存儲器上。
3 F206進行Flash“在線”擦寫的基本步驟
(1)模式切換
Flash的“在線”編程由清“0”、置“1”和數據寫入等操作組成。進行這些操作前首先要將Flash由存儲器工作模式(mode 1)切換至于寄存器工作模式(mode 0)。F206中Flash存儲器工作模式由映射于I/O地址中的兩個寄存器控制,分別為F_ACCESS0寄存器(FFE0h)和F_ACCESS1寄存器(FFE1h)。向Flash模式控制寄存器的最低位寫入0,則Flash工作于寄存器模式;反之寫入1,則工作于存儲器模式。復位后,自動處于存儲器模式。如圖2所示,兩種工作模式之間切換后,Flash內容變化。處于模式1時,Flash存儲器顯示的是其所存儲的數據;處于模式0時,Flash存儲器顯示寄存器的內容,并且以4個為一組重復顯示于整個Flash塊中。
F206的Flash存儲器塊中只有4個寄存器SEG_CTR、TST、WADRS、WDATA,其余都是重復顯示相同的內容,其功能如下所述。
*SEG_CTR:片段控制寄存器,其高8位(MSBS)用于選擇相應片段。該位置“1”,則使能相應的片段,可以進行擦寫。因此F206中16K×16的Flash塊分為8個片段,每個片段2KB.低8位(LSBS)用來控制Flash塊的擦除、寫入、校驗等操作,如圖3所示(各個控制位的具體設置方法請查閱TI相關參考資料)。
*TST:測試寄存器,通常不用。(保留,用于測試。)
*WADRS:寫地址寄存器,用于存儲寫操作地址。
*WDATA:寫數據寄存器,用于存放寫操作數據。
(2)清“0”操作
清“0”操作按扇區進行,F206的Flash每一區的大小為32個字(WORD)。進行清“0”操作就是對Flash存儲單元的非零位(即值為“1”)寫入0,使各數據位的邊緣保持一致;通常的做法是將Flash存儲單元中的數據讀出,與FFFFh進行異或(XOR)后,再寫回Flash存儲單元中。清“0”操作后,需調用VER0功能對Flash塊進行0校驗。
(3)置“1”操作
置“1”操作按扇區進行,對每個存儲單元寫入“1”;執行置“1”操作后需要調用VER1功能進行校驗。置“1”操作后,Flash塊存儲單元的值均為FFFFh。如果置“1”正確,
【利用F206片內Flash進行在線編程】相關文章:
JTAG口及其對Flash的在線編程03-19
通過JTAG口對DSP外部Flash存儲器的在線編程03-26
利用Directshow進行流媒體播放架構的研究與實現03-08
利用非現場審計系統進行分析性復核03-23
如何有效利用多媒體進行英語教學03-16