各種ARM模擬器介面圖
ULINK2 JTAG/SWD介面
ULINK2介面是如何定義的?下面為ULINK2介面定義:
模擬器埠 | 連線目標板 | 備註 |
1. VCC | MCU電源VCC | VCC |
2. VCC | MCU電源VCC | VCC |
3. TRST | TRST | Test ReSeT/ pin |
4. GND | GND或懸空 | |
5. TDI | TDI | Test Data In pin |
6. GND | GND或懸空 | |
7. TMS, SWIO | TMS, SWIO | JTAG:Test Mode State pin ; SWD: Data I/O pin |
8. GND | GND或懸空 | |
9. TCLK, SWCLK | TMS, SWCLK | JTAG: Test Clock pin ; SWD: Clock pin |
10. GND | GND或懸空 | |
11. RTCK | RTCK | |
12. GND | GND或懸空 | |
13. TDO | TDO | Test Data Out pin |
14. GND | GND或懸空 | |
15. RESET | RESET | RSTIN pin |
16. GND | GND或懸空 | |
17. NC | NC | |
18. GND | GND或懸空 | |
19. NC | NC | |
20. GND | GND或懸空 |
下面是標準的介面排列:
ST-Link SWIM & JTAG/SWD介面
ST-Link介面是如何定義的?下面為ST-Link
下面是標準的介面排列: |
J-Link JTAG/SWD介面
J-Link介面是如何定義的?下面為J-Link介面定義:
下面是標準的介面排列: |
JTAG引腳示意圖:
一、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引腳可以被複用為IO口,但是這樣一來,JLINK就不能夠連上晶片了。解決的方法有兩種:
(1)另寫一段程式,不要將JTAG複用為I/O口,然後將這段程式用串列埠工具寫入晶片中
(2)將BOOT0/BOOT1設定成為內部RAM啟動,那麼上電後就不會執行FLASH中的程式,這樣JLINK就能順利“接管”JTAG引腳
隨著ARM公司對Cortex系列的推出,取樣SWD方式除錯成了大家的首選。SWD不僅速度可以與JTAG媲美,而且使用的除錯線少得多。很多人在取樣SWD方式進行除錯時,一般都是採用4線:
① VCC - 電源
② GND - 地線
③ SWDIO - 資料
④ SWCLK - 時鐘
在對NXP的LPC1114下載模擬時,用ULINK2和JLINK V8都是可以的,但是對於STM32,如果用JLINK V8可以下載,而用ULINK2下載時總是超時,而加上NRESET復位線則可以正常下載。所以為了相容所有晶片和除錯工具,最好按照一下方式進行預留介面:
PIN 1: GND
PIN 2: NRST
PIN 3: VCC
PIN 4: SWDIO
PIN 5: SWDCLK當然有時候只需三條線就可以,但是對於有些晶片就不穩定:
PIN 1: GND
PIN 2: SWDIO
PIN 3: SWDCLK所以也可以採用如下方式:
1 - VCC;
2 - GND;
3 - SWDCLK;
4 - SWDIO;
5 - NRST.
中間三根是必須,NRST可加可不加,有人說VCC要給JLink的輸出介面晶片ALVC164245供電也可以加上。