摘要:通常在嵌入式應用中,微控制器的每個端口引腳都是必需的,沒有多余引腳。大部分MAXQ?微控制器帶有可重新進行寫操作的內部程序存儲器(如閃存或EEPROM),支持標準JTAG/TAP接口(也稱為調試端口)。外部主機可利用該接口執行在線調試或在線編程(引導裝載)功能。構成該接口的所有引腳通常可復用為標準的GPIO功能,這就是說在開發階段結束之后這些引腳仍可使用,而不是被廢棄。本應用筆記討論了在常規應用中復用這些引腳的方法,并且給出了一些在復用這些引腳時需要考慮的事項。
在完成了應用系統的開發測試后,不再需要使用在線調試功能。此外,在大批量生產中,可重新編程的MAXQ器件將被掩模ROM器件替代,不再需要在線編程功能。這就意味著應用系統不再使用調試端口,此時調試端口可廢棄不用也可有效地對其再利用。當MAXQ器件的GPIO端口引腳數不夠使用時,若把專門用于JTAG調試的端口引腳重新利用起來,并且讓常規應用系統使用這些引腳,將會起到意想不到的作用。
舉一個例子,假設端口中的一個引腳既被用于接收TCK信號(當被用于JTAG/TAP模式時)又被用于控制繼電器(在GPIO模式時)。當用JTAG接口調試器件時,由于TCK信號的快速翻轉將導致繼電器的接通和斷開,可能導致連接到繼電器的外部設備損壞。為了防止這種情況發生,在器件將要引導加載或進行在線調試時,所有通過JTAG/TAP接口與這些引腳相連的外部器件都必須被禁用。
如果應用系統中采用掩模ROM MAXQ器件(這種器件不能被重新編程),那么在應用程序的起始位置對TAP清零就不合理。這種情況下,由于程序代碼已經燒入器件且不能更改,將無法使用引導加載和在線調試功能。
然而,對采用可重新編程的MAXQ器件的應用系統來說,其應用軟件應該總是在TAP位清零和禁用JTAG接口之前提供幾秒鐘的延時。如果緊隨復位操作之后馬上對TAP位清零,在試圖重新加載或調試應用程序的時候可能會順序發生以下事件:
為了避免上述軟件問題,任何禁用/TAP調試端口或/RESET引腳的應用系統在啟動時都應該在關閉調試引擎之前提供幾秒鐘的延時。這個時間延遲可以使外部主機在JTAG接口被禁用之前通過它對MAXQ進行控制。另一種方法是:應用系統可通過檢查別的端口引腳(由跳線器或按鈕控制)上的輸入電平來確定JTAG端口使能還是禁用。
簡介
通常在嵌入式應用中,微控制器的每個端口引腳對于實際應用來說都是必需的,沒有多余的引腳。然而,開發人員可采用其他方法來解決這個問題。大部分MAXQ微控制器可重寫內部程序存儲器(如閃存或EEPROM),支持標準JTAG/TAP接口(也稱為調試端口)。外部主機可利用該接口執行在線調試或在線編程(引導裝載)功能。該接口中的所有引腳通常可復用為標準GPIO端口引腳功能,從而使這些引腳在開發階段結束之后仍然可以被使用。本應用筆記闡述了在常規應用中如何復用這些引腳。同時,本應用筆記還指出了在復用這些引腳時需要考慮的事項。應用系統開發階段
在開發階段,JTAG兼容調試端口可提供許多有用功能。首先,調試端口允許應用系統在外部主機控制下對其加載(使用開發環境如MAX-IDE、Rowley CrossWorks或IAR Embedded Workbeach?)。可以根據以后的測試需求對應用系統進行測試、修改和快速加載。其次,調試端口允許執行MAXQ架構的在線調試功能,這些調試功能包括寄存器的讀寫操作、指令的單步調試,并可查看程序、數據、堆棧存儲器。引導裝載和在線調試功能會對應用系統所能使用的存儲器資源產生一些微小的影響。因為在線調試功能完全由MAXQ硬件和公用程序ROM實現。在完成了應用系統的開發測試后,不再需要使用在線調試功能。此外,在大批量生產中,可重新編程的MAXQ器件將被掩模ROM器件替代,不再需要在線編程功能。這就意味著應用系統不再使用調試端口,此時調試端口可廢棄不用也可有效地對其再利用。當MAXQ器件的GPIO端口引腳數不夠使用時,若把專門用于JTAG調試的端口引腳重新利用起來,并且讓常規應用系統使用這些引腳,將會起到意想不到的作用。
調試端口引腳的重復使用
實現JTAG兼容調試端口的連接用到下面4個引腳:- TCK:測試時鐘—MAXQ輸入
- TMS:測試模式選擇—MAXQ輸入
- TDO:測試數據輸出—MAXQ輸出
- TDI:測試數據輸入—MAXQ輸入
硬件設計注意事項
若在系統開發階段和批量生產階段使用同一套硬件,不論調試接口的端口作為GPIO還是JTAG/TAP使用,都必須使硬件能夠正常運行。例如:當這些引腳用于JTAG/TAP時,任何與這些引腳相連的外部器件都必須釋放這些引腳,使其處于三態模式,以保證主機與MAXQ這些引腳之間的正確驅動。此外,在線調試或引導加載過程中,連接到這些引腳的器件不能受主機和MAXQ在這些引腳上的任何驅動信號的影響。這一點特別需要注意,因為對這些信號的響應有可能造成器件損壞。舉一個例子,假設端口中的一個引腳既被用于接收TCK信號(當被用于JTAG/TAP模式時)又被用于控制繼電器(在GPIO模式時)。當用JTAG接口調試器件時,由于TCK信號的快速翻轉將導致繼電器的接通和斷開,可能導致連接到繼電器的外部設備損壞。為了防止這種情況發生,在器件將要引導加載或進行在線調試時,所有通過JTAG/TAP接口與這些引腳相連的外部器件都必須被禁用。
軟件設計注意事項
禁用JTAG接口的操作非常簡單,任何時候只要把TAP (SC.7)位清零,系統將立即使用這些端口引腳。為了把應用系統設置在適當模式,系統開發人員傾向于在應用程序代碼的開始就把TAP位清零。然而,這么早就把TAP位清零會引起應用系統開發中出現一些問題。如果應用系統中采用掩模ROM MAXQ器件(這種器件不能被重新編程),那么在應用程序的起始位置對TAP清零就不合理。這種情況下,由于程序代碼已經燒入器件且不能更改,將無法使用引導加載和在線調試功能。
然而,對采用可重新編程的MAXQ器件的應用系統來說,其應用軟件應該總是在TAP位清零和禁用JTAG接口之前提供幾秒鐘的延時。如果緊隨復位操作之后馬上對TAP位清零,在試圖重新加載或調試應用程序的時候可能會順序發生以下事件:
- 主機驅動一個低電平/RESET信號,從而使MAXQ處于復位狀態。
- 主機釋放/RESET復位信號。
- MAXQ脫離復位狀態并開始運行程序代碼,因此JTAG接口立即被禁用。
- 主機試圖通過JTAG接口與器件通信,但通信已經無法進行。
為了避免上述軟件問題,任何禁用/TAP調試端口或/RESET引腳的應用系統在啟動時都應該在關閉調試引擎之前提供幾秒鐘的延時。這個時間延遲可以使外部主機在JTAG接口被禁用之前通過它對MAXQ進行控制。另一種方法是:應用系統可通過檢查別的端口引腳(由跳線器或按鈕控制)上的輸入電平來確定JTAG端口使能還是禁用。
評論
查看更多