實(shí)現(xiàn)MAXQ2000微控制器的JTAG加載主機(jī)
簡介
具有可在線編程的程序存儲(chǔ)器(例如MAXQ2000和MAXQ3210)的MAXQ微控制器一般還提供基于ROM的啟動(dòng)加載程序,利用微控制器的JTAG兼容調(diào)試端口,實(shí)現(xiàn)程序存儲(chǔ)器的加載。盡管不同的器件有不同的JTAG啟動(dòng)加載程序功能,但是通常都包括程序和數(shù)據(jù)存儲(chǔ)器寫、讀、驗(yàn)證和擦除等命令。有的器件為啟動(dòng)加載程序提供其他接口(例如,串口或者SPI?接口),而JTAG接口是最常用的,原因有兩個(gè)。第一,JTAG接口支持在線調(diào)試功能,第二,最終用戶應(yīng)用程序并沒有充分發(fā)揮JTAG接口的功能(與串口不同)。一旦加載程序代碼后,可選擇的加密機(jī)制限制了對(duì)啟動(dòng)加載程序的訪問,或在線調(diào)試。關(guān)于每個(gè)MAXQ器件功能的詳細(xì)信息,請(qǐng)參考產(chǎn)品說明,包括數(shù)據(jù)資料和用戶指南等。本應(yīng)用筆記涉及到實(shí)現(xiàn)MAXQ2000 JTAG啟動(dòng)加載程序主機(jī)的基本步驟。這些步驟包括JTAG端口接口,測(cè)試訪問端口(TAP)控制器通信,激活啟動(dòng)加載程序模式,向基于ROM的啟動(dòng)加載程序發(fā)送命令等。由于所有MAXQ器件的JTAG端口工作情況一般相同,MAXQ啟動(dòng)加載程序采用共享命令集工作,因此,在實(shí)現(xiàn)MAXQ微控制器JTAG啟動(dòng)加載程序主機(jī)時(shí)可以參考本應(yīng)用筆記涉及到的大部分主題(以及大部分實(shí)例代碼)。
除了串口,應(yīng)用筆記并沒有使用MAXQ2000的特殊功能。這表明,這里的實(shí)例代碼很容易重新用于程序存儲(chǔ)器空間足夠大的任何MAXQ20器件。代碼以MAXQ匯編語言編寫,采用MAX-IDE開發(fā)環(huán)境編譯??梢韵螺d這些代碼。
硬件設(shè)置
采用一對(duì)MAXQ2000評(píng)估(EV)板來開發(fā)本應(yīng)用筆記的實(shí)例代碼。需要兩塊MAXQ2000評(píng)估板執(zhí)行這里的軟件。一個(gè)MAXQ2000 (JTAG主機(jī))運(yùn)行實(shí)例代碼;第二個(gè)MAXQ2000用作JTAG從機(jī),由主機(jī)對(duì)它重新編程。兩個(gè)MAXQ2000微控制器都采用了標(biāo)準(zhǔn)8.00MHz晶振。在原型區(qū)安裝一個(gè)2 x 5引腳插座對(duì)主機(jī)MAXQ2000評(píng)估板進(jìn)行改動(dòng),原型區(qū)提供JTAG電纜主機(jī)側(cè)連接。插座的引腳符合標(biāo)準(zhǔn)MAXQ JTAG插座布局,按照表1所示進(jìn)行連接。
表1. MAXQ2000 JTAG連接
JTAG Header Pin | JTAG Cable Function | MAXQ2000 JTAG Master Connection | MAXQ2000 JTAG Slave Connection |
1 | TCK (Test Clock) | P0.0 (Output) | P4.0 (Input) |
2 | GND | GND | GND |
3 | TDO (Test Data Out) | P0.1 (Input) | P4.3 (Output) |
4 | VREF | – | – |
5 | TMS (Test Mode Select) | P0.2 (Output) | P4.2 (Input) |
6 | nRESET | P0.4 (Open Drain) | nRESET (Input) |
7 | Keyed pin | – | – |
8 | +5V | – | – |
9 | TDI (Test Data In) | P0.3 (Output) | P4.1 (Input) |
10 | GND | GND | GND |
不需要對(duì)從機(jī)MAXQ2000評(píng)估板進(jìn)行改動(dòng)。按照上面的說明在主機(jī)MAXQ2000評(píng)估板的原型區(qū)安裝2 x 5 JTAG插座。然后,將兩塊評(píng)估板連接起來;主機(jī)評(píng)估板原型區(qū)的2 x 5 JTAG插座和從機(jī)評(píng)估板的標(biāo)準(zhǔn)JTAG插座(J4)之間連接標(biāo)準(zhǔn)2 x 5 JTAG電纜(這種JTAG一般用于連接串口至JTAG板和MAXQ評(píng)估板)。JTAG 2 x 5連接器含在MAXQ2000評(píng)估套件中。
為簡化起見,沒有對(duì)主機(jī)評(píng)估板和從機(jī)評(píng)估板的JTAG電纜電源或者參考電壓連接進(jìn)行試驗(yàn)。而是設(shè)置兩塊評(píng)估板采用同一VDDIO電壓(大約3.6V)工作。這種設(shè)置保證了主機(jī)和從機(jī)MAXQ2000采用公共I/O電源電平工作。
從機(jī)評(píng)估板還在插座J3上安裝了LCD子卡(MAXQ2000-K01)。表2列出了兩塊電路板(以及串口至JTAG電路板)的跳線和DIP開關(guān)設(shè)置。注意:應(yīng)斷開未列出的所有跳線。圖1所示為最終設(shè)置。
表2. 電路板開關(guān)和跳線設(shè)置
Board | Switch or Jumper | Setting | Notes |
Serial-to-JTAG Board | JH1 | Connected | |
JH2 | Connected | ||
JH3 | Connected | Supplies 5V power over JTAG cable | |
Master MAXQ2000 EV Kit | JU1 | Pins 1 and 2 connected | Powers VDD from 2.5V supply |
JU2 | Pins 1 and 2 connected | Powers VDDIO from 3.6V supply | |
JU3 | Pins 1 and 2 connected | Powers VLCD from 3.6V supply | |
JU11 | Connected | Powers kit board from JTAG 5V supply | |
DIP SW1 | Switches #4 and #8 ON; all other switches OFF | Enables serial port 0 output to J5 | |
DIP SW3 | All switches OFF | ||
DIP SW6 | All switches OFF | ||
Slave MAXQ2000 EV Kit | JU1 | Pins 1 and 2 connected | Powers VDD from 2.5V supply |
JU2 | Pins 1 and 2 connected | Powers VDDIO from 3.6V supply | |
JU3 | Pins 1 and 2 connected | Powers VLCD from 3.6V supply | |
DIP SW1 | All switches OFF | ||
DIP SW3 | All switches OFF | ||
DIP SW6 | All switches OFF |
圖1. JTAG演示板配置
MAXQ JTAG接口
MAXQ微控制器的JTAG接口由四條信號(hào)線組成,用于測(cè)試訪問端口(TAP)控制器的信息輸入和輸出。TAP控制器支持對(duì)MAXQ啟動(dòng)加載程序的訪問,提供在線調(diào)試功能(注意,調(diào)試主機(jī)的實(shí)現(xiàn)和啟動(dòng)加載程序主機(jī)的實(shí)現(xiàn)類似,但是已經(jīng)超出了本應(yīng)用筆記的范圍)。表3對(duì)四條JTAG信號(hào)線進(jìn)行了說明。表3. JTAG接口信號(hào)
JTAG Signal | Signal Name | Direction (Master) | Direction (Slave) | Signal Description |
TMS | Test Mode Select | Output | Input | This signal line, along with the TCK line, is used to shift the TAP controller from one operational state to the next. |
TCK | Test Clock | Output | Input | This signal provides the clock for the JTAG interface. The JTAG clock is limited to a maximum of the slave's clock frequency divided by 8. For example, if the slave is running at a clock frequency of 8MHz, the JTAG clock at TCK cannot run any faster than 1MHz. |
TDI | Test Data In | Output | Input | This signal carries data that is sent from the master to the slave. |
TDO | Test Data Out | Input | Output | This signal carries data that is sent from the slave back to the master. |
從技術(shù)上看,nRESET引腳并不是JTAG接口的組成部分。它含在JTAG電纜中,使JTAG主機(jī)能夠復(fù)位從機(jī)微控制器。重新設(shè)置從機(jī)微控制器是進(jìn)入啟動(dòng)加載程序模式需要的步驟,如果JTAG通信意外中斷,也需要重新設(shè)置從機(jī)微控制器。
JTAG接口是全雙工的,數(shù)據(jù)在TDI線上由主機(jī)送入從機(jī),同時(shí),數(shù)據(jù)在TDO線上由從機(jī)送入主機(jī)。從機(jī)在TCK上升沿對(duì)到達(dá)數(shù)據(jù)(在TDI和TMS上)進(jìn)行采樣,在TCK下降沿,數(shù)據(jù)在TDO上被驅(qū)動(dòng)輸出至主機(jī)。對(duì)于到達(dá)和輸出數(shù)據(jù),最先傳送最低有效位。本應(yīng)用筆記簡要介紹JTAG接口和TAP控制器,以解釋實(shí)例代碼的工作。關(guān)于這些特性的詳細(xì)討論,請(qǐng)參考MAXQ系列用戶指南(English only)的測(cè)試訪問端口(TAP)、在線調(diào)試模式、在系統(tǒng)編程等章節(jié),公司網(wǎng)站上有該文檔。
評(píng)論