<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 實(shí)現(xiàn)MAXQ2000微控制器的JTAG加載主機(jī)

          實(shí)現(xiàn)MAXQ2000微控制器的JTAG加載主機(jī)

          作者: 時(shí)間:2012-03-19 來源:網(wǎng)絡(luò) 收藏
          摘要:MAXQ?提供的啟動(dòng)加載程序使外部主機(jī)能夠利用一組標(biāo)準(zhǔn)命令,輕松地識(shí)別MAXQ,并對(duì)其進(jìn)行編程。本應(yīng)用筆記中的代碼可以用作構(gòu)建全功能啟動(dòng)加載主機(jī)應(yīng)用程序的出發(fā)點(diǎn)。主機(jī)應(yīng)用程序能夠識(shí)別、初始化、裝載、驗(yàn)證支持標(biāo)準(zhǔn)啟動(dòng)加載程序命令集MAXQ的程序和數(shù)據(jù)存儲(chǔ)器內(nèi)容。

          簡介

          具有可在線編程的程序存儲(chǔ)器(例如和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) 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)用筆記并沒有使用的特殊功能。這表明,這里的實(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 PinJTAG Cable FunctionMAXQ2000 JTAG
          Master Connection
          MAXQ2000 JTAG
          Slave Connection
          1TCK (Test Clock)P0.0 (Output)P4.0 (Input)
          2GNDGNDGND
          3TDO (Test Data Out)P0.1 (Input)P4.3 (Output)
          4VREF
          5TMS (Test Mode Select)P0.2 (Output)P4.2 (Input)
          6nRESETP0.4 (Open Drain)nRESET (Input)
          7Keyed pin
          8+5V
          9TDI (Test Data In)P0.3 (Output)P4.1 (Input)
          10GNDGNDGND

          不需要對(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è)置
          BoardSwitch or JumperSettingNotes
          Serial-to-JTAG BoardJH1Connected
          JH2Connected
          JH3ConnectedSupplies 5V power over JTAG cable
          Master MAXQ2000 EV KitJU1Pins 1 and 2 connectedPowers VDD from 2.5V supply
          JU2Pins 1 and 2 connectedPowers VDDIO from 3.6V supply
          JU3Pins 1 and 2 connectedPowers VLCD from 3.6V supply
          JU11ConnectedPowers kit board from JTAG 5V supply
          DIP SW1Switches #4 and #8 ON; all other switches OFFEnables serial port 0 output to J5
          DIP SW3All switches OFF
          DIP SW6All switches OFF
          Slave MAXQ2000 EV KitJU1Pins 1 and 2 connectedPowers VDD from 2.5V supply
          JU2Pins 1 and 2 connectedPowers VDDIO from 3.6V supply
          JU3Pins 1 and 2 connectedPowers VLCD from 3.6V supply
          DIP SW1All switches OFF
          DIP SW3All switches OFF
          DIP SW6All switches OFF

          實(shí)現(xiàn)MAXQ2000微控制器的JTAG加載主機(jī)
          圖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 SignalSignal NameDirection (Master)Direction (Slave)Signal Description
          TMSTest Mode SelectOutputInputThis signal line, along with the TCK line, is used to shift the TAP controller from one operational state to the next.
          TCKTest ClockOutputInputThis 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.
          TDITest Data InOutputInputThis signal carries data that is sent from the master to the slave.
          TDOTest Data OutInputOutputThis 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)站上有該文檔。

          TAP控制器通信

          TAP控制器圍繞狀態(tài)機(jī)進(jìn)行構(gòu)建,如下面的圖2所

          上一頁 1 2 3 4 5 6 7 下一頁

          關(guān)鍵詞: MAXQ2000 微控制器 JTAG

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();