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

          新聞中心

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

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

          作者: 時間:2012-03-19 來源:網(wǎng)絡(luò) 收藏
          移出時,狀態(tài)機保持在Shift-IR或者Shift-DR狀態(tài)。在最后一個比特周期,TMS必須被驅(qū)動為高電平,這樣,隨著最后一位的輸入和輸出,TAP控制器將進入Exit1-DR或者Exit1-IR狀態(tài)。

          作為一個例子,在表4中,主機將數(shù)值100b (系統(tǒng)編程模式)移入到IR寄存器中。IR寄存器開始設(shè)置旁路值011b;TAP控制器最初為Run-Test-Idle狀態(tài)。如下面的圖4所示,比特以最低有效位在前、最高有效位在后移入(移出)TAP控制器。因此,在第一個移位周期,新數(shù)值的第0位被移入,舊數(shù)值的第0位被移出。

          表4. 指令寄存器移位實例
          TCKTMSTDITDOTAP StateShift RegisterInstruction Register
          bit 2bit 1bit 0bit 2bit 1bit 0
          01xxRun-Test-Idlexxx011
          11xxSelect-DR-Scanxxx011
          01xxSelect-DR-Scanxxx011
          11xxSelect-IR-Scanxxx011
          00xxSelect-IR-Scanxxx011
          10xxCapture-IR001011
          00xxCapture-IR001011
          10xxShift-IR001011
          000xShift-IR001011
          100xShift-IR001011
          0001Shift-IR000011
          1001Shift-IR000011
          0110Shift-IR000011
          1110Exit1-IR000011
          01x0Exit1-IR100011
          11x0Update-IR100100
          00xxUpdate-IR100100
          10xxRun-Test-Idlexxx100

          下面是執(zhí)行這一操作的例程shiftIR3。

          ;==============================================================================;=;=  shiftIR3;=     clock0, clock1, shift;=;=  Shifts a 3-bit value into the IR register.;=;=  Inputs   : A[0] - Low three bits contain value to shift into IR;=  Outputs  : None;=  Destroys : AP, APC, A[0], PSW, LC[0];=shiftIR3:move    APC, #80h         ; Acc => A[0], turn off auto inc/deccall    clock1            ; (Select DR Scan)call    clock1            ; (Select IR Scan)call    clock0            ; (Capture IR - loads 001b to shift register)call    clock0            ; (Shift IR)move    TMS, #0           ; Drive TMS low                            move    C, TDO            ; xxxxx210   c = srrc                       ; sxxxxx21   c = 0call    shift             ; Shift in IR bit 0rrc                       ; ssxxxxx2   c = 1call    shift             ; Shift in IR bit 1rrc                       ; sssxxxxx   c = 2move    TMS, #1           ; Drive TMS high for last bitcall    shift             ; Shift in IR bit 2 (Exit1 IR)call    clock1            ; (Update IR)call    clock0            ; (Run Test Idle)ret

          寫入TAP數(shù)據(jù)寄存器

          數(shù)值移入或者移出TAP控制器DR的操作與裝入/卸載IR的方式相似。通常,只有當IR被設(shè)置為兩個數(shù)值之一時才能進行這一操作:100b (使TAP控制器進入系統(tǒng)編程模式)或者010b (使TAP控制器進入調(diào)試模式)。

          激活系統(tǒng)編程模式后,裝入和卸載DR寄存器的操作如下。
          • DR寄存器移入和移出寬度為3比特。所有三個比特都代表有效數(shù)據(jù)。
          • 當?shù)竭_Update-DR狀態(tài)時,送入DR寄存器的數(shù)值被復(fù)制到從機的內(nèi)部系統(tǒng)編程寄存器中。這三個比特的用法如下。
            • 從機可訪問第0位(讀/寫),它作為寄存器位ICDF.1 (SPE),也被稱為系統(tǒng)編程使能位。復(fù)位后,程序ROM檢查該位,確定應(yīng)進入啟動加載程序模式(SPE = 1)還是正常程序執(zhí)行模式(SPE = 0)。
            • 從機可訪問第1位和第2位(讀/寫),它作為寄存器位ICDF.2-3 (PSS0-PSS1),也被稱為編程源選擇位。對于能夠為啟動加載程序提供多個接口的微控制器,例如,這些位用于當SPE = 1時應(yīng)選擇哪一啟動加載程序接口。當SPE = 0 (正常程序執(zhí)行模式)時,這些位的設(shè)置不起作用。
          • DR寄存器傳送出去的數(shù)值是系統(tǒng)編程寄存器以前的數(shù)值(當進入Capture-DR狀態(tài)后,鎖存到移位寄存器中)。
          激活系統(tǒng)編程模式后,裝入和卸載DR寄存器的操作如下。
          • DR寄存器移入和移出寬度為10比特。對于移出數(shù)據(jù),所有10個比特都代表有效數(shù)據(jù)(8個數(shù)據(jù)位和2個狀態(tài)位)。對于移入數(shù)據(jù),只使用了8個數(shù)據(jù)位;沒有使用兩個狀態(tài)位。
          • 然后,將移入DR寄存器的高8位卸載,作為啟動加載程序命令的一部分,被啟動加載程序(從程序ROM中運行)讀取。
          • 移出DR寄存器的10個比特含有8位由啟動加載程序裝入的數(shù)值(作為命令輸出的一部分),以及由TAP控制器設(shè)置的兩個狀態(tài)信息位。
          ;==============================================================================;=;=  shiftDR3;=;=  Shifts a 3-bit value into the DR register.  This operation should only be;=  performed when IR =100b (System Programming Mode).;=;=  Inputs   : A[0] - Low 3 bits contain value to shift into SPB (PSS1:PSS0:SPE);=  Outputs  : None;=  Destroys : AP, APC, A[0], PSW, LC[0]shiftDR3:move    APC, #80h         ; Acc => A[0], turn off auto inc/deccall    clock1            ; (Select DR Scan)call    clock0            ; (Capture DR)call    clock0            ; (Shift DR)move    TMS, #0           ; Drive TMS low                            move    C, TDO            ; xxxxx210   c = srrc                       ; sxxxxx21   c = 0call    shift             ; Shift in DR bit 0rrc                       ; ssxxxxx2   c = 1call    shift             ; Shift in DR bit 1rrc                       ; sssxxxxx   c = 2move    TMS, #1           ; Drive TMS high for last bitcall    shift             ; Shift in DR bit 2 (Exit1 DR)call    clock1            ; (Update DR)call    clock0            ; (Run Test Idle)ret;==============================================================================;=;=  shiftDR;=     clock0, clock1, shift;=;=  Shifts a 10-bit value into and out of the DR register.  This operation ;=  should only be performed when IR = 010b (Debug/Loader Mode).;=;=  Inputs   : A[0]  - Byte value (input) to shift into DR;=  Outputs  : A[0]  - Byte value (output) shifted out of DR;=             A[1]  - Low two bits are status bits 1:0 shifted out of DR;=             A[15] - Byte value shifted in, cached for use by shiftDR_next;=  Destroys : AP, APC, PSW, LC[0]shiftDR:move    APC, #80h         ; Acc => A[0], turn off auto inc/decmove    A[15], A[0]       ; Cache input byte value for use by shiftDR_nextsla2                      ; Add two empty bits (for status)call    clock1            ; (Select DR Scan)call    clock0            ; (Capture DR)call    clock0            ; (Shift DR)move    TMS, #0           ; Drive TMS low                            move    C, TDO            ; xxxxxxxx76543210   c = s
          				
                      
                          
          			
          							

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

          評論


          相關(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); })();