天天看點

JTAG各類接口針腳定義、含義以及SWD接線方式

 JTAG有10pin的、14pin的和20pin的,盡管引腳數和引腳的排列順序不同,但是其中有一些引腳是一樣的,各個引腳的定義如下。

一、引腳定義

TCK在IEEE1149.1标準裡是強制要求的。TCK為TAP的操作提供了一個獨立的、基本的時鐘信号,TAP的所有操作都是通過這個時鐘信号來驅動的。

TMS信号在TCK的上升沿有效。TMS在IEEE1149.1标準裡是強制要求的。TMS信号用來控制TAP狀态機的轉換。通過TMS信号,可以控制TAP在不同的狀态間互相轉換。

TDI在IEEE1149.1标準裡是強制要求的。TDI是資料輸入的接口。所有要輸入到特定寄存器的資料都是通過TDI接口一位一位串行輸入的(由TCK驅動)。

TDO在IEEE1149.1标準裡是強制要求的。TDO是資料輸出的接口。所有要從特定的寄存器中輸出的資料都是通過TDO接口一位一位串行輸出的(由TCK驅動)。

這個信号接口在IEEE 1149.1标準裡是可選的,并不是強制要求的。TRST可以用來對TAPController進行複位(初始化)。因為通過TMS也可以對TAP Controll進行複位(初始化)。是以有四線JTAG與五線JTAG之分。

接口信号電平參考電壓一般直接連接配接Vsupply。這個可以用來确定ARM的JTAG接口使用的邏輯電平(比如3.3V還是5.0V?)

可選項,由目标端回報給仿真器的時鐘信号,用來同步TCK信号的産生,不使用時直接接地。

可選項,與目标闆上的系統複位信号相連,可以直接對目标系統複位。同時可以檢測目标系統的複位情況,為了防止誤觸發應在目标端加上适當的上拉電阻。

使用者自定義輸入。可以接到一個IO上,用來接受上位機的控制。

使用者自定義輸出。可以接到一個IO上,用來向上位機的回報一個狀态

由于JTAG經常使用排線連接配接,為了增強抗幹擾能力,在每條信号線間加上地線就出現了這種20針的接口。但事實上,RTCK、USER IN、USER OUT一般都不使用,于是還有一種14針的接口。對于實際開發應用來說,由于實驗室電源穩定,電磁環境較好,幹擾不大。

二、20、14、10pin JTAG的引腳名稱與序号對應關系

值得注意的是,不同的IC公司會自己定義自家産品專屬的Jtag頭,來下載下傳或調試程式。嵌入式系統中常用的20、14、10pin JTAG的信号排列如下:需要說明的是,上述Jtag頭的管腳名稱是對IC而言的。例如TDI腳,表示該腳應該與IC上的TDI腳相連,而不是表示資料從該腳進入download cable。

實際上10針的隻需要接4根線,4号是自連回路,不需要接,1,2接的都是1管腳,而8,10接的是GND,也可以不接。

 附轉接闆電路:

JTAG接口的SWD接線方式

JTAG引腳示意圖:

JTAG各類接口針腳定義、含義以及SWD接線方式

一、SWD 和傳統的調試方式差別

1. SWD 模式比 JTAG 在高速模式下面更加可靠

2. GPIO 剛好缺一個的時候, 可以使用 SWD 仿真, 這種模式支援更少的引腳

3. 在闆子的體積有限的時候推薦使用 SWD 模式

二、仿真器對 SWD 模式支援情況

1. 市面上的常用仿真器對 SWD 模式支援情況

JLINKV8 非常好的支援 SWD 仿真模式, 速度可以到 10M

ULINK2 非常好的支援 SWD 模式, 速度可以達到 10M

2. SWD 硬體接口上的不同

(1) JLINKV7 需要的硬體接口為: GND, RST, SWDIO, SWDCLK

(2) JLINKV8 需要的硬體接口為: VCC, GND, RST, SWDIO, SWDCLK (注:下面有我自己用JLINKV8的實際連線及相應實驗結果)

(3) ULINK1 不支援 SWD 模式

(4) ULINK2 需要的硬體接口為: GND, RST, SWDIO, SWDCLK

三、在 MDK 中SWD 模式的設定

正常的JTAG需要20管腳,而J-Link 的SWD隻需要2根線(PA13/JTMS/SWDIO、PA14/JTCK/SWCLK)就夠了(加上電源線也就4根),這樣就節省了3個I/O口(PA15/JTDI、PB3/JTDO、PB4/JNTRST)為其它所用,并且可節省一部分闆子的空間(隻需4個口就可以了)

第一步:

JTAG各類接口針腳定義、含義以及SWD接線方式

第二步:

JTAG各類接口針腳定義、含義以及SWD接線方式

另外, JTAG引腳可以被複用為IO口,但是這樣一來,JLINK就不能夠連上晶片了。解決的方法有兩種:

    (1)另寫一段程式,不要将JTAG複用為I/O口,然後将這段程式用序列槽工具寫入晶片中

    (2)将BOOT0/BOOT1設定成為内部RAM啟動,那麼上電後就不會執行FLASH中的程式,這樣JLINK就能順利“接管”JTAG引腳

執行個體應用:

10針JTAG與20針JTAG的連接配接:

下面說一下接法,其實根本不需要什麼轉接闆什麼的,直接把相應的幾根線對接就可以用了,是以要參考電路圖,上面為TQ2440開發闆的JTAG電路圖,下面為JLINK的20針電路圖,下面的JLINKV7電路圖是标準接口,網上到處都能找到

<col>

10針JTAG針序

20針JTAG針序

信号

1,2

1

VTref

-

2

NC

3

nTRST

4

GND

5

TDI

6

7

TMS

8

9

TCK

10

11

RTCK

12

13

TDO

14

15

RESET

16

17

DBGRQ

18

19

5V-Supply

20

實際上隻需要接4跟線,4号是自連回路,不需要接,1,2接的都是1管腳,而8,10接的是GND,也可以不接

作者:柒月