在MCU項目開發(fā)過程中,始終有兩個設(shè)備緊密的聯(lián)系在一起,一個是仿真器,一個是編程器。仿真器,顧名思義就是模仿單片機的功能;編程器就是把程序編寫到單片機內(nèi)部。
目前公司在MSP430開發(fā)工具方面主要有仿真器、編程器、各類學(xué)習(xí)板、轉(zhuǎn)接板、適配器等。本文將主要介紹這些MSP430工具其特性。
一:仿真器、編程器
IAR和JTAG無法連接,是怎么回事?這是客戶問的問題,在論壇中也很常見,F(xiàn)AE也有在問。我們就從這個問題開始講解吧。
MSP430無論是仿真還是燒寫程序,一般可以通過:JTAG、SBW、BSL接口進行。
1、JTAG是利用邊界掃描技術(shù),在430內(nèi)部有邏輯接口給JTAG使用,內(nèi)部有若干個寄存器連接到了430內(nèi)部數(shù)據(jù)地址總線上,所以可以訪問到430的所有資源,包括全地址FLASH、RAM及各種寄存器。可以用于對430的仿真和編程,主要連接線有TMS、TCK、TDI、TDO,430還需要另兩條線路RST、TEST來啟動JTAG命令序列。
2、SBW是SPY-BI-WIRE,可以簡稱為兩線制JTAG,主要有SBWTCK(連接到JTAG接口的7腳TCK)與SBWTDIO(連接到JTAG接口的1腳TDO/TDI),該接口主要用于小于28腳的2系列單片機,因為28腳以內(nèi)單片機的JTAG一般與IO口復(fù)用,為了給用于留有更多的IO資源,才推出SBW接口。SBW同JTAG一樣可以訪問到430內(nèi)部的所有資源。
注:目前MSP430F5XX系列中也有SBW接口,原理同2系列的SBW。
3、BSL是TI在430出廠時預(yù)先固化到MCU內(nèi)部的一段代碼,該代碼用戶不可讀寫,這有點類似與DSP的bootloader,但又與bootloader有明顯的區(qū)別,BSL只能用于對MCU內(nèi)部的FLASH訪問,不能對其他的資源訪問,所以只能用作編程器接口。BSL通過UART協(xié)議與編程器連接通信。編程器可以發(fā)送不同的通信命令來對MCU的存儲器做不同的操作,可以把這種方式稱為BSL接口。
BSL代碼的啟動有些特殊,一般430復(fù)位啟動時PC指針指向FFFE復(fù)位向量,但可以通過特殊的啟動方式可以使MCU在啟動時讓PC指向BSL內(nèi)部固化的程序。這種特殊的啟動方式一般是由RST引腳與TEST(或TCK)引腳做一個稍復(fù)雜的啟動邏輯后產(chǎn)生。BSL啟動后,就可以通過預(yù)先定義好的UART協(xié)議命令對MCU進行讀寫訪問了。
4、一般的MCU都有代碼加密功能,430是如何實現(xiàn)的呢?外部對430內(nèi)部的代碼讀寫只能通過上述的三種方式,只要把這三種方式都堵上,430的程序不就安全了嗎?所以又引入了熔絲位,熔絲位只存在于JTAG、SBW接口邏輯內(nèi)。當(dāng)熔絲燒斷時(物理破壞,且不可恢復(fù))JTAG與SBW的訪問將被禁止,此時只有BSL可以訪問。而通過BSL對MCU的訪問是需要32個字節(jié)的密碼,該密碼就是用戶代碼的中斷向量表?,F(xiàn)在國內(nèi)有些解密廠商宣傳能夠解密430,原理是通過切片剝離的方法把熔絲位連接上,再通過JTAG或SBW接口讀出目標代碼。而BSL則無破解的報告。
仿真器的型號一般支持JTAG、SBW接口,按照其與主機的連接方式分為UIF(USB接口,支持JTAG、SBW),PIF(并口,只支持JTAG),EZ430(只支持SBW模式,目前還不支持F5XX系列)。
編程器型號有GANG430(RS232串行接口,串口、1拖8,支持JTAG、SBW,不支持BSL),PRGS430-IIIA多功能編程器(支持JTAG、SBW、BSL),這些編程器都可以做離線燒寫,并且支持燒寫熔絲,即脫離計算機來對目標板燒寫,其中PRGS編程器還支持序列號燒寫方式。另還有專門的BSL編程器,只支持BSL接口,不支持燒寫熔絲。
仿真器既然可以訪問到430內(nèi)部的所有資源,當(dāng)然也可以用做編程器使用,除了使用IAR用源代碼燒寫的方式外,還可以通過專業(yè)的軟件來編程,這類軟件有MSPFET、FET-PRO430等。
TI公司在JTAG、SBW、BSL方面提供了API操作函數(shù),可以利用該函數(shù)來設(shè)計我們的編程器和仿真器。目前仿真器的技術(shù)較復(fù)雜,而且是由IAR軟件來負責(zé)升級。編程器在出廠時事先已經(jīng)編程了一段Monitor代碼,利用這段代碼可以實現(xiàn)在線升級,無論是GANG430編程器還是PRGS編程器均有此功能。
工具功能表:
名稱 |
下載程序 |
JTAG接口 |
SBW接口 |
BSL接口 |
燒斷熔絲 |
離線編程 |
PIF-并口仿真器 |
● |
● |
|
|
|
|
UIF-USB接口仿真器 |
● |
● |
● |
|
● |
|
GANG430編程器 |
● |
● |
● |
|
● |
● |
PRGS編程器 |
● |
● |
● |
● |
● |
● |
BSL編程器 |
● |
|
|
● |
|
|
編程器發(fā)展及支持情況:
編程器名稱 |
與主機連接方式 |
未來發(fā)展 |
技術(shù)支持情況 |
GANG430 |
RS232串行口 |
RS232,保留不改變 |
TI支持 |
PRGS編程器 |
RS232串行口 |
USB接口 |
技術(shù)部支持 |
BSL編程器 |
標準9芯RS232串行口 |
USB接口 |
技術(shù)部支持 |
二:學(xué)習(xí)板、轉(zhuǎn)接板、適配器
1、學(xué)習(xí)板
為了初學(xué)者或在項目開發(fā)初期為了項目認證或可行性方案分析而設(shè)計的具有一定功能的工具,其一般包括一個單片機最小系統(tǒng)及按照內(nèi)部模塊劃分的功能器件?,F(xiàn)公司有各種學(xué)習(xí)板,從F1系列到F5系列,并且可以根據(jù)用戶或某種功能需要定制學(xué)習(xí)板。學(xué)習(xí)板配套光盤中一般有實驗指導(dǎo)書、學(xué)習(xí)板參考器件手冊、PDF版本的原理圖及部分工具軟件資料。
2、轉(zhuǎn)接板
MSP430的管腳比較密集,而且大都是SMT工藝的,并沒有DIP封裝的,這樣就給初學(xué)者的調(diào)試工作帶來了麻煩,比如功耗測試、簡單的代碼測試等。為了幫助用戶盡快的設(shè)計自己的目標系統(tǒng),而設(shè)計的具有直插封裝的轉(zhuǎn)接線路板,板上集成了430的最小系統(tǒng),保留了所有的調(diào)試接口,并把所有的IO口連接到轉(zhuǎn)接針上。用戶只要按照轉(zhuǎn)接針上的定義就可以配套在自己的目標系統(tǒng)中。轉(zhuǎn)接板上的MCU是固定焊接到線路板的,用戶不需要自己焊接,除非有損壞情況發(fā)生。
3、適配器
如果在轉(zhuǎn)接板上的芯片發(fā)生損壞,則需要用戶自己更換芯片,這無疑給用戶帶來困難。建議這種用戶可以選用適配器,適配器是帶有IC夾頭的轉(zhuǎn)接板,而且可以通用(具體查看相應(yīng)的支持手冊)。同樣適配器板有一個最小系統(tǒng),并且把所有的IO引出到了連接針上。由于該適配器價格昂貴,一般用在批量生產(chǎn)時燒寫芯片代碼使用。
轉(zhuǎn)接板及適配器一般提供參考代碼、PDF版的原理圖及部分工具軟件。