實現MAXQ2000微控制器的JTAG加載主機
從程序存儲器卸載代碼
裝入所有代碼后,JTAG演示的最后一步是讀回一個塊中的所有代碼。向啟動加載程序發送卸載代碼可變長度(20h)命令來完成這一讀操作。這一命令的參數是開始卸載的地址(讀),以及卸載的字節數。注意,對于所有的JTAG啟動加載程序命令,必須為每一讀回的字節發送一個字節。因此,這一命令需要大量的零填充字節,從程序存儲器讀取每一字節都需要一個。;;;;;;;; Dump program code;;;;move DP[0], #str_dumpCodeVariablecall txStringmove DP[0], #0move @DP[0], #CMD_DUMP_CODE_VARIABLEmove @++DP[0], #1 ; Indicates single byte length (256 bytes)move @++DP[0], #00h ; AddrL (byte address 0000h)move @++DP[0], #00h ; AddrHmove @++DP[0], #128 ; Length - 128 bytesmove LC[1], #128main_loop1:move @++DP[0], #00hdjnz LC[1], main_loop1 move @++DP[0], #000h ; Paddingmove @++DP[0], #000h ; Paddingmove @++DP[0], #55hmove LC[1], DP[0]move DP[0], #0nopcall sendCommandnopjump C, main_failJTAGcall getStatusjump C, main_failJTAGmove Acc, A[3] ; Check that loader status is 00h (no error)jump NZ, main_failStatus讀取這些代碼字節后,JTAG演示應用程序通過串口以十六進制格式輸出這些代碼字節。
退出啟動加載程序
單字節命令集0中的命令01h (退出啟動加載程序)導致啟動加載程序完成操作,并退出,如下所示。 由于退出啟動加載程序命令自動清除SPE和PSS位,而后面的復位清除TAP控制器,使它返回旁路模式,因此,不需要JTAG主機來完成這些操作。;;;;;;;; Exit loader mode and allow program code to execute;;;;call waitForPromptmove Acc, #CMD_EXIT_LOADERcall shiftDRmove Acc, #00hcall shiftDRmove Acc, #00hcall shiftDRmove Acc, #00hcall shiftDR
操作演示
需要下面的硬件和軟件來運行JTAG啟動加載程序演示。硬件
- 兩塊MAXQ2000評估板(MAXQ2000-K00 REV B);一塊評估板用作主機MAXQ2000板,另一塊用作從機MAXQ2000板。
- MAXQ2000 LCD子卡(MAXQ2000-K01 REV B)
- 兩條2 x 5 JTAG接口電纜(含在MAXQ2000評估套件中)
- 串口至JTAG接口板(MAXQJTAG-001 REV B)
- DB9直通串行電纜
- 兩個5V穩壓(±5%)直流墻插電源,中心正極,CUI公司。DPR050030-P6或者等效電源。
- 兩個HC49US 8.00MHz晶振
- 2 x 5 0.100英寸引腳插座
- JTAG演示軟件包
- http://files.dalsemi.com/microcontroller/app_note_software/an4012_sw.zip
- MAXQ的MAX-IDE開發環境
- http://files.dalsemi.com/microcontroller/maxq/dev_tool_software/MAX-IDE/MAX-IDE.zip
- MAXQ的微控制器工具包(MTK)
- http://files.dalsemi.com/microcontroller/dev_tool_software/mtk/
- 如果還沒有安裝MAX-IDE,按照MAXQ2000評估套件中的文檔說明進行下載并安裝。
- 如果還沒有安裝MTK,按照MAXQ2000評估套件中的文檔說明進行下載并安裝。
- 連接LCD子卡和從機MAXQ2000板的J3插座,如前面的圖1所示。LCD子卡應固定在MAXQ2000評估板的上部。
- 在兩塊MAXQ2000評估板(在Y1)上安裝8.00MHz晶振。
- 在主機MAXQ2000板的原型區安裝2 x 5 JTAG插座,引腳連接至主機MAXQ2000引腳,如表1所列。
- 配置串口至JTAG板以及兩塊MAXQ2000評估板上的跳線和DIP開關,如表2所列。
- 使用DB9串行電纜連接PC的COM1口和串口至JTAG板的J1。
- 將第一個5V電源連接至串口至JTAG板的J2。
- 將第二個5V電源連接至從機MAXQ2000評估板的J1。
- 使用第一條JTAG電纜,連接串口至JTAG板的P2和主機MAXQ2000板的J4。紅色線應連接兩個JTAG插座的引腳1。
- 使用第二條JTAG電纜,連接主機MAXQ2000板原型區的JTAG插座和從機MAXQ2000板的J4。紅色線應連接兩個JTAG插座的引腳1。
- 下載JTAG演示軟件包,把它解壓縮到工作路徑中。
- 啟動MAX-IDE。
- 打開兩路5V電源。
- 從菜單中選擇Project
Open Project ,選擇maxqjtag.prj工程文件,打開它。 - 從菜單中選擇Debug
Make。應出現"Build Successful"消息。 - 從菜單中選擇Debug
Run。應出現一連串的"Loading"消息,隨后是"Done"。 - 從菜單中選擇Debug
Stop。 - 關閉MAX-IDE。
- 關掉電源。
- 在斷電情況下,從串口至JTAG板斷開DB9串行電纜。
- DB9電纜連接至主機MAXQ2000板的J5。
- 啟動MTK。在起始對話框中選擇"Dumb Terminal"。
- 從菜單中選擇Options
Configure Serial Port。在對話框中,設置Port為COM1,Speed為9600波特率。 - 從菜單中選擇Target
Open COM1 at 9600 baud。 - 打開電源。

圖5. 演示應用程序,串口提示符
現在輸入一個4位十進制數;不需要隨后按下回車鍵。演示應用程序會完成剩下的操作(主機擦除、裝入代碼和卸載代碼),并輸出結果,以及從程序存儲器中卸載的十六進制字節值,如圖6所示。

圖6. 演示應用程序,串口輸出














評論