TAG有10pin的、14pin的和20pin的,盡管引腳數(shù)和引腳的排列順序不同,但是其中有一些引腳是一樣的,各個(gè)引腳的定義如下。
一、引腳定義
Test Clock Input (TCK) -----強(qiáng)制要求1
TCK在IEEE1149.1標(biāo)準(zhǔn)里是強(qiáng)制要求的。TCK為TAP的操作提供了一個(gè)獨(dú)立的、基本的時(shí)鐘信號,TAP的所有操作都是通過這個(gè)時(shí)鐘信號來驅(qū)動(dòng)的。
Test Mode Selection Input (TMS) -----強(qiáng)制要求2
TMS信號在TCK的上升沿有效。TMS在IEEE1149.1標(biāo)準(zhǔn)里是強(qiáng)制要求的。TMS信號用來控制TAP狀態(tài)機(jī)的轉(zhuǎn)換。通過TMS信號,可以控制TAP在不同的狀態(tài)間相互轉(zhuǎn)換。
Test Data Input (TDI) -----強(qiáng)制要求3
TDI在IEEE1149.1標(biāo)準(zhǔn)里是強(qiáng)制要求的。TDI是數(shù)據(jù)輸入的接口。所有要輸入到特定寄存器的數(shù)據(jù)都是通過TDI接口一位一位串行輸入的(由TCK驅(qū)動(dòng))。
Test Data Output (TDO) -----強(qiáng)制要求4
TDO在IEEE1149.1標(biāo)準(zhǔn)里是強(qiáng)制要求的。TDO是數(shù)據(jù)輸出的接口。所有要從特定的寄存器中輸出的數(shù)據(jù)都是通過TDO接口一位一位串行輸出的(由TCK驅(qū)動(dòng))。
Test Reset Input (TRST) ----可選項(xiàng)1
這個(gè)信號接口在IEEE 1149.1標(biāo)準(zhǔn)里是可選的,并不是強(qiáng)制要求的。TRST可以用來對TAPController進(jìn)行復(fù)位(初始化)。因?yàn)橥ㄟ^TMS也可以對TAP Controll進(jìn)行復(fù)位(初始化)。所以有四線JTAG與五線JTAG之分。
(VTREF) -----強(qiáng)制要求5
接口信號電平參考電壓一般直接連接Vsupply。這個(gè)可以用來確定ARM的JTAG接口使用的邏輯電平(比如3.3V還是5.0V?)
Return Test Clock ( RTCK) ----可選項(xiàng)2
可選項(xiàng),由目標(biāo)端反饋給仿真器的時(shí)鐘信號,用來同步TCK信號的產(chǎn)生,不使用時(shí)直接接地。
System Reset ( nSRST)----可選項(xiàng)3
可選項(xiàng),與目標(biāo)板上的系統(tǒng)復(fù)位信號相連,可以直接對目標(biāo)系統(tǒng)復(fù)位。同時(shí)可以檢測目標(biāo)系統(tǒng)的復(fù)位情況,為了防止誤觸發(fā)應(yīng)在目標(biāo)端加上適當(dāng)?shù)纳侠娮琛?/span>
USER IN
用戶自定義輸入。可以接到一個(gè)IO上,用來接受上位機(jī)的控制。
USER OUT
用戶自定義輸出。可以接到一個(gè)IO上,用來向上位機(jī)的反饋一個(gè)狀態(tài)
由于JTAG經(jīng)常使用排線連接,為了增強(qiáng)抗干擾能力,在每條信號線間加上地線就出現(xiàn)了這種20針的接口。但事實(shí)上,RTCK、USER IN、USER OUT一般都不使用,于是還有一種14針的接口。對于實(shí)際開發(fā)應(yīng)用來說,由于實(shí)驗(yàn)室電源穩(wěn)定,電磁環(huán)境較好,干擾不大。
二、20、14、10pin JTAG的引腳名稱與序號對應(yīng)關(guān)系
值得注意的是,不同的IC公司會(huì)自己定義自家產(chǎn)品專屬的Jtag頭,來下載或調(diào)試程序。嵌入式系統(tǒng)中常用的20、14、10pin JTAG的信號排列如下:
需要說明的是,上述Jtag頭的管腳名稱是對IC而言的。例如TDI腳,表示該腳應(yīng)該與IC上的TDI腳相連,而不是表示數(shù)據(jù)從該腳進(jìn)入download cable。
實(shí)際上10針的只需要接4根線,4號是自連回路,不需要接,1,2接的都是1管腳,而8,10接的是GND,也可以不接。
附轉(zhuǎn)接板電路:
JTAG接口的SWD接線方式
JTAG引腳示意圖:
一、SWD 和傳統(tǒng)的調(diào)試方式區(qū)別
1. SWD 模式比 JTAG 在高速模式下面更加可靠
2. GPIO 剛好缺一個(gè)的時(shí)候, 可以使用 SWD 仿真, 這種模式支持更少的引腳
3. 在板子的體積有限的時(shí)候推薦使用 SWD 模式
二、仿真器對 SWD 模式支持情況
1. 市面上的常用仿真器對 SWD 模式支持情況
JLINKV8 非常好的支持 SWD 仿真模式, 速度可以到 10M
ULINK2 非常好的支持 SWD 模式, 速度可以達(dá)到 10M
2. SWD 硬件接口上的不同
(1) JLINKV7 需要的硬件接口為: GND, RST, SWDIO, SWDCLK
(2) JLINKV8 需要的硬件接口為: VCC, GND, RST, SWDIO, SWDCLK
(3) ULINK1 不支持 SWD 模式
(4) ULINK2 需要的硬件接口為: GND, RST, SWDIO, SWDCLK
三、在 MDK 中SWD 模式的設(shè)置
正常的JTAG需要20管腳,而J-Link 的SWD只需要2根線(PA13/JTMS/SWDIO、PA14/JTCK/SWCLK)就夠了(加上電源線也就4根),這樣就節(jié)省了3個(gè)I/O口(PA15/JTDI、PB3/JTDO、PB4/JNTRST)為其它所用,并且可節(jié)省一部分板子的空間(只需4個(gè)口就可以了)
第一步:
第二步:
另外, JTAG引腳可以被復(fù)用為IO口,但是這樣一來,JLINK就不能夠連上芯片了。解決的方法有兩種:
(1)另寫一段程序,不要將JTAG復(fù)用為I/O口,然后將這段程序用串口工具寫入芯片中
(2)將BOOT0/BOOT1設(shè)置成為內(nèi)部RAM啟動(dòng),那么上電后就不會(huì)執(zhí)行FLASH中的程序,這樣JLINK就能順利“接管”JTAG引腳
實(shí)例應(yīng)用:
10針JTAG與20針JTAG的連接:
下面說一下接法,其實(shí)根本不需要什么轉(zhuǎn)接板什么的,直接把相應(yīng)的幾根線對接就可以用了,所以要參考電路圖,上面為TQ2440開發(fā)板的JTAG電路圖,下面為JLINK的20針電路圖,下面的JLINKV7電路圖是標(biāo)準(zhǔn)接口,網(wǎng)上到處都能找到
一、 ULINK2仿真器
ULINK2是ARM公司最新推出的配套RealView MDK使用的仿真器,是ULink仿真器的升級版本。ULINK2不僅具有ULINK仿真器的所有功能,還增加了串行調(diào)試(SWD)支持,返回時(shí)鐘支持和實(shí)時(shí)代理等功能。開發(fā)工程師通過結(jié)合RealView MDK的調(diào)試器和ULINK2,可以方便的在目標(biāo)硬件上進(jìn)行片上調(diào)試(使用on-chip JTAG,SWD和OCDS)、Flash編程.
ULINK2 新特點(diǎn)
標(biāo)準(zhǔn)Windows USB驅(qū)動(dòng)支持ULINK2即插即用
支持基于 ARM Cortex-M0,3,4 的串行調(diào)試
支持程序運(yùn)行期間的存儲器讀寫、終端仿真和串行調(diào)試輸出
支持10-pin 連接線 (也支持20-pin 連接線)
ULINK2主要功能:
USB通訊接口高速下載用戶代碼
存儲區(qū)域/寄存器查看
快速單步程序運(yùn)行
多種程序斷點(diǎn)
片內(nèi)Flash編程
ULINK2技術(shù)規(guī)格
Feature
ULINK2
RAM Breakpoints
Unlimited
ROM Breakpoints (ARM7/9)
2 max
ROM Breakpoints (Cortex-M3)
8 max
ROM Breakpoints (μPSD)(Cannot Set While Executing)
5 max
ROM Breakpoints (XC800)
(Cannot Set While Executing)
4 max
ROM Breakpoints (XC166)
4 max
Execution Breakpoints(Set While Executing)
√
Access Breakpoints (ARM7/9)
2 max
(R/W Only, With Value)
Access Breakpoints (Cortex-M3)
4 max
(With value)
Access Breakpoints (μPSD)
3 max
Access Breakpoints (XC800)
1 in IDATA max
Access Breakpoints (XC166)
1 max
Real-Time Agent (ARM7/9)
√
Serial Wire Debug (Cortex-M)
√
Data Trace (Cortex-M3)(Serial Wire Viewer)
√
JTAG Clock
<= 10MHz
Memory R/W
≈ 28KB/s
Flash R/W
≈ 25KB/s
Data Trace Streaming
1Mb/s
10-pin (0.05")
(Cortex Debug Connector)
√
20-pin (0.1")(ARM Standard JTAG Connector)
√
16-pin (0.1")(Infineon OCDS Connector)
√
14-pin (0.1")(ST μPSD Connector)
√
I/O Voltage Range
2.7V - 5.5V
XC800 (8051)
√
μPSD (8051)
√
XC166/XE166/XC2000
√
LPC950 (8051)
√
ARM7
√
ARM9
√
Cortex-M0
√
Cortex-M1
√
Cortex-M3
√
Cortex-M4
√
二、ULINK 的安裝使用
1、請確保ULINK驅(qū)動(dòng)已經(jīng)正確安裝,不然不能使用UINK仿真器。
2、 工程設(shè)置
打開一個(gè)工程文件,如下所示
點(diǎn)工程設(shè)置圖標(biāo),如下
打開工程設(shè)置頁面,選擇芯片型號:LPC2103
Debug選型卡設(shè)置如下:選擇右邊的硬件仿真,仿真器選擇Ulink Arm Debug
點(diǎn)開settings設(shè)置如下:
設(shè)置Utilies選項(xiàng)卡
Settings中,首先設(shè)置download選項(xiàng),然后點(diǎn)擊Add,添加programming algorithm
LPC2103芯片的內(nèi)部flash為32K,所以,選擇下面這一項(xiàng)
然后點(diǎn)OK,完成設(shè)置
3、 開始調(diào)試
好了,下面就可以開始調(diào)試了,點(diǎn)Debug快捷圖標(biāo)
進(jìn)入仿真界面,如下
我們可以看到仿真工具欄
可以看到,程序運(yùn)行的進(jìn)度只是箭頭
這樣,就成功連接ULINK和ARM7核心板了,現(xiàn)在可以進(jìn)行單步、全速運(yùn)行等調(diào)試了。