通常在嵌入式應(yīng)用中,微控制器上的每一個(gè)端口引腳都需要,沒有多余的端口引腳。大多數(shù)具有可重寫內(nèi)部程序存儲(chǔ)器(如閃存或EEPROM)的MAXQ?微控制器支持標(biāo)準(zhǔn)化的JTAG/TAP接口(也稱為調(diào)試端口),外部主機(jī)使用該接口訪問在線調(diào)試或在線編程(引導(dǎo)加載程序)功能。構(gòu)成此接口的引腳通常與標(biāo)準(zhǔn) GPIO 端口引腳功能多路復(fù)用,這意味著它們可能可用于應(yīng)用程序,而不是在開發(fā)階段完成后浪費(fèi)。本應(yīng)用筆記討論了在一般應(yīng)用中重復(fù)使用這些引腳的方法,并介紹了在這樣做時(shí)應(yīng)牢記的注意事項(xiàng)。
概述
通常在嵌入式應(yīng)用中,微控制器上的每個(gè)端口引腳都是應(yīng)用所必需的;沒有一個(gè)作為備用。但是,開發(fā)人員可以選擇解決此問題。大多數(shù)具有可重寫內(nèi)部程序存儲(chǔ)器(如閃存或EEPROM)的MAXQ微控制器支持標(biāo)準(zhǔn)化的JTAG/TAP接口(也稱為調(diào)試端口),外部主機(jī)使用該接口訪問在線調(diào)試或在線編程(引導(dǎo)加載程序)功能。用于此接口的引腳通常與標(biāo)準(zhǔn) GPIO 端口引腳功能多路復(fù)用,以便在開發(fā)階段完成后潛在地將其提供給應(yīng)用程序。本應(yīng)用筆記解釋了如何在一般應(yīng)用中重復(fù)使用這些接口引腳。該說明還確定了在多路復(fù)用這些引腳時(shí)要考慮的一些情況。
應(yīng)用程序開發(fā)的階段
在開發(fā)階段,JTAG兼容的調(diào)試端口提供了許多有用的功能。首先,調(diào)試端口允許在外部主機(jī)的控制下加載應(yīng)用程序(使用MAX-IDE,Rowley CrossWorks或IAR Embedded Workbench?等開發(fā)環(huán)境)。這意味著可以測(cè)試、修改應(yīng)用程序,并在下一個(gè)測(cè)試周期中再次快速加載應(yīng)用程序。其次,調(diào)試端口允許訪問MAXQ架構(gòu)提供的在線調(diào)試功能。這些調(diào)試功能包括讀寫寄存器、一次單步執(zhí)行程序代碼以及查看程序、數(shù)據(jù)和堆棧存儲(chǔ)器的能力。最后,使用引導(dǎo)加載程序和在線調(diào)試器對(duì)應(yīng)用程序可用的內(nèi)存資源幾乎沒有影響。這是因?yàn)樵诰€調(diào)試功能完全在MAXQ硬件和實(shí)用程序ROM中實(shí)現(xiàn)。
一旦應(yīng)用完成并經(jīng)過測(cè)試,就不再需要在線調(diào)試功能。此外,在大批量部署中,可重新編程的MAXQ器件被屏蔽ROM版本所取代,也不需要在線編程(引導(dǎo)加載程序)功能,這意味著調(diào)試端口不再有任何用途,可以忽略不計(jì)...或更有創(chuàng)意地使用。當(dāng)MAXQ器件上的GPIO端口引腳數(shù)量有限且不足以滿足應(yīng)用需求時(shí),回收專用于JTAG兼容調(diào)試端口的端口引腳并使其可用于一般應(yīng)用可能特別有用。
重復(fù)使用調(diào)試端口引腳
以下四個(gè)引腳用于實(shí)現(xiàn)JTAG兼容的調(diào)試端口接口。
TCK:測(cè)試時(shí)鐘—MAXQ輸入
TMS:測(cè)試模式選擇—MAXQ輸入
TDO:測(cè)試數(shù)據(jù)輸出—MAXQ輸出
TDI:測(cè)試數(shù)據(jù)輸入—MAXQ輸入
這四個(gè)引腳通常與四個(gè) GPIO 端口引腳多路復(fù)用;用于此目的的確切引腳因MAXQ器件而異。默認(rèn)情況下,在復(fù)位或上電復(fù)位(POR)條件之后,調(diào)試端口使能,這意味著端口引腳不可用于一般應(yīng)用。要禁用調(diào)試端口功能并使端口引腳用于通用,必須將系統(tǒng)控制寄存器中的TAP位(SC.7)清零。然后使用PD、PO和PI寄存器以正常方式控制端口引腳。
硬件注意事項(xiàng)
如果在應(yīng)用程序開發(fā)和部署階段使用相同的硬件,則必須注意,當(dāng)調(diào)試接口中的端口引腳在GPIO模式或JTAG/TAP模式下使用時(shí),硬件將正常運(yùn)行。例如,當(dāng)引腳用于JTAG/TAP模式時(shí),連接到這些引腳的任何外部器件都必須將引腳釋放到三態(tài)模式,從而允許主機(jī)和MAXQ驅(qū)動(dòng)這些線路上的信號(hào)。此外,連接到這些線路的器件必須忽略在在線調(diào)試或引導(dǎo)加載程序操作期間由主機(jī)或MAXQ驅(qū)動(dòng)的任何信號(hào)。如果響應(yīng)信號(hào)可能會(huì)損壞設(shè)備,則尤其如此。
例如,假設(shè)其中一個(gè)端口引腳既用于TCK信號(hào)(在JTAG/TAP模式下使用時(shí)),也用于控制繼電器(在GPIO模式下)。當(dāng)使用JTAG接口調(diào)試器件時(shí),TCK信號(hào)快速切換,這反過來又導(dǎo)致繼電器打開和關(guān)閉,并可能損壞連接到繼電器的外部設(shè)備。為防止這種情況,只要器件在引導(dǎo)加載程序或在線調(diào)試模式下工作,就應(yīng)禁用從JTAG/TAP接口連接到引腳的任何外部器件。通過使用跳線或其他引腳作為使能信號(hào),可能會(huì)禁用外部設(shè)備。
軟件注意事項(xiàng)
禁用JTAG接口端口是一件簡(jiǎn)單的事情。TAP (SC.7) 位可以隨時(shí)清零,這樣做會(huì)使端口引腳立即可供應(yīng)用使用。應(yīng)用程序開發(fā)人員的自然傾向可能是在應(yīng)用程序代碼的開頭清除此位,以便為應(yīng)用程序設(shè)置正確的操作模式。但是,盡早清除 TAP 位可能會(huì)導(dǎo)致應(yīng)用程序開發(fā)過程中出現(xiàn)問題。
如果應(yīng)用程序?qū)⒃谄帘蜶OM MAXQ器件上運(yùn)行(永遠(yuǎn)無法重新編程),那么沒有理由不在應(yīng)用程序開始時(shí)將TAP清除為零。在這種情況下,將永遠(yuǎn)不會(huì)使用引導(dǎo)加載程序和在線調(diào)試功能,因?yàn)榇a已經(jīng)在設(shè)備中編程并且無法更改。
但是,對(duì)于在可重新編程的MAXQ器件上開發(fā)的應(yīng)用,應(yīng)用軟件在清除TAP位和禁用JTAG接口之前,應(yīng)始終提供幾秒鐘的延遲。如果在重置后立即清除 TAP 位,則在嘗試重新加載或調(diào)試應(yīng)用程序時(shí),可能會(huì)導(dǎo)致以下事件序列:
主機(jī)將/復(fù)位至低電平,使MAXQ處于復(fù)位狀態(tài)。
主機(jī)釋放/有效復(fù)位。
MAXQ從復(fù)位狀態(tài)出來,開始運(yùn)行代碼,從而立即關(guān)閉JTAG接口。
主機(jī)嘗試通過JTAG接口與器件通信,但無法這樣做。
此順序類似于在復(fù)位后立即進(jìn)入停止模式或另一種極低功耗模式的應(yīng)用程序引起的問題。在允許禁用/RESET引腳的器件上,問題可能更糟。在這些情況下,實(shí)際復(fù)位行為取決于主機(jī)觸發(fā)的事件順序,以及器件是僅使用/RESET引腳復(fù)位,還是通過上電和斷電復(fù)位。
為避免上述軟件問題,任何關(guān)閉調(diào)試/TAP端口或/RESET引腳的應(yīng)用都應(yīng)在啟動(dòng)時(shí)延遲幾秒鐘,然后再關(guān)閉調(diào)試引擎。這種延遲允許外部主機(jī)在關(guān)閉JTAG接口之前通過JTAG接口控制MAXQ。或者,應(yīng)用可以檢查另一個(gè)端口引腳(通過跳線或按鈕控制)上的輸入電平,以確定是應(yīng)啟用還是禁用JTAG端口。
結(jié)論
MAXQ微控制器上的TAP (SC.7)位提供的JTAG接口的多路復(fù)用功能允許接口的四個(gè)端口引腳用于調(diào)試/引導(dǎo)加載程序或通用I/O。只要遵循一定的硬件和軟件預(yù)防措施,這些引腳可以作為引腳受限系統(tǒng)的附加資源重復(fù)使用,并在使用MAXQ器件開發(fā)應(yīng)用時(shí)增加靈活性。
審核編輯:郭婷
-
微控制器
+關(guān)注
關(guān)注
48文章
7924瀏覽量
153845 -
接口
+關(guān)注
關(guān)注
33文章
8963瀏覽量
153316 -
JTAG
+關(guān)注
關(guān)注
6文章
403瀏覽量
73008
發(fā)布評(píng)論請(qǐng)先 登錄
多路復(fù)用ICSP引腳如何控制開關(guān)?
用于Arduino微控制器的多路交流輸入板
請(qǐng)問STM32WB55微控制器的GPIO引腳的切換速度是多少?
沒有其他方法可以將LCD和多路復(fù)用PSRAM與控制器引腳封裝連接起來嗎?
多路復(fù)用技術(shù)
基于CPLD的非多路復(fù)用與多路復(fù)用總線轉(zhuǎn)換橋的設(shè)計(jì)與實(shí)現(xiàn)

非多路復(fù)用與多路復(fù)用總線轉(zhuǎn)換橋的設(shè)計(jì)與實(shí)現(xiàn)

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

MAXQ微控制器中JTAG接口引腳的復(fù)用
MAXQ處理器的串口轉(zhuǎn)JTAG接口板
16位微控制器MAXQ613的特點(diǎn)及應(yīng)用

ESP8266 E1.31多路復(fù)用像素控制器

如何在MAXQ3180微控制器上使用串行外設(shè)接口

使用MAX6951/MAX6950 LED顯示驅(qū)動(dòng)器與MAXQ2000微控制器通信

為MAXQ2000微控制器實(shí)現(xiàn)JTAG自舉加載程序主控

評(píng)論