JTAG與SWD

來源:互聯網
上載者:User

SWD與JTAG區別及使用方式

    是SEGGER說明書中給出的Jlink引腳圖,可以對照著看SWD引腳與JTAG引腳的關係。


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

    1. SWD 模式比 JTAG 在高速模式下面更加可靠。 在大資料量的情況下面 JTAG 下載程式會失敗, 但是 SWD 發生的幾率會小很多。基本使用 JTAG 模擬模式的情況下是可以直接使用 SWD 模式的, 只要你的模擬器支援。 所以推薦大家使用這個模式。

    2. 在大家 GPIO 剛好缺一個的時候, 可以使用 SWD 模擬, 這種模式支援更少的引腳。

    3. 在大家板子的體積有限的時候推薦使用 SWD 模式, 它需要的引腳少, 當然需要的 PCB 空間就小啦! 比如你可以選擇一個很小的 2.54 間距的 5 芯端子做模擬介面。


二、模擬器對 SWD 模式支援情況

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

(1) JLINKV6 支援 SWD 模擬模式, 速度較慢。
(2) JLINKV7 比較好的支援 SWD 模擬模式, 速度有了明顯的提高,速度是 JLINKV6 的 6 倍。 
(3) JLINKV8 非常好的支援 SWD 模擬模式, 速度可以到 10M。
(4) ULINK1 不支援 SWD 模式。
(5) 盜版 ULINK2 非常好的支援 SWD 模式, 速度可以達到 10M。
(6) 正版 ULINK2 非常好的支援 SWD 模式, 速度可以達到 10M。

2. SWD 硬體介面上的不同

(1) JLINKV6 需要的硬體介面為: GND, RST, SWDIO, SWDCLK
(2) JLINKV7 需要的硬體介面為: GND, RST, SWDIO, SWDCLK
(3) JLINKV8 需要的硬體介面為: VCC, GND, RST, SWDIO, SWDCLK (註:下面有我自己用JLINKV8的實際連線及相應實驗結果)
(4) ULINK1 不支援 SWD 模式
(5) 盜版 ULINK2 需要的硬體介面為: GND, RST, SWDIO, SWDCLK
(6) 正版 ULINK2 需要的硬體介面為: GND, RST, SWDIO, SWDCLK

    由此可以看到只有 JLINKV8 需要 5 個引腳, 即多了一個VCC引腳,其好處是: 模擬器對目標板子的模擬需要用到 RST 引腳, 使用模擬器內部的 VCC 作這個功能其實並不是非常美妙。 因此,JLINKV8 選擇了只和目標板共 GND, 但不共 VCC。 因此我覺得這種模式最合理, 當然通常情況下模擬器和目標板共 GND 和 VCC 是沒有錯的。

三、在 MDK 中SWD 模式的設定

    在調試模擬的時候用J-LINK的Cortex-M3方式已經足夠,並且在MDK下他的功能已經做得非常的好,用標準20腳的JTAG下載,速度是非常的快,一般初學者都是這樣做的。但是SWD方式似乎速度更快、更加方便、簡捷、,對於項目中對板子空間要求嚴格、I/O口資源緊張的使用者來說更加的有利,正常的JTAG需要20管腳,而J-Link 的SWD只需要2根線(PA13/JTMS/SWDIO、PA14/JTCK/SWCLK)就夠了(加上電源線也就4根),這樣就節省了3個I/O口(PA15/JTDI、PB3/JTDO、PB4/JNTRST)為其它所用,並且可節省一部分板子的空間(只需4個口就可以了)。

    下面我說一下SWD兩線模擬的一些步驟、注意事項及需要注意的問題。

    介面的串連如下:將JLINK的1、7、9、20分別與自己的開發板上JTAG的VCC、JTMS、JTCK、GND用杜邦線相連即可!

    接下來告訴大家怎麼使用SWD設定:

開啟工程OPTION設定:

 

    在設定中按照設定成 SWD 模式, 速度你可以按照你的實際需求來設定, 如果你的板子供電系統不是特別穩定, 紋波比較大或者模擬線比較長可以設定成 500K 或者 1M,如果環境很好當然可以選擇 10M , 當然速度會飛起來。

    記得不要忽略了左下方的那個USB還是 TCP 模式, 當然我們是 USB 模式, 因為有的時候預設是 TCP 模式, 這個時候我們忽略這個設定後會模擬常常串連不上的。

 


下面是我自己的實驗(用JLINK V8)

(1)按SW方式來調試,實際需要接1,7,9,15,20腳,某些資料上說的需要6個腳(第13腳SWO也需要連上)是不對的,SWO不需要串連。
(2)用兩種方式的速度沒有太大的區別。
再次測試:

(1)不接第15腳,即RESET腳,僅接4條引線,即Vref,SWDIO,SWCLK,GND。

(2)設定時Reset位選擇:AutoDetect,可以正常下載,模擬。

(3)如果Reset位選選擇:HW Reset ,則不能正常下載。

(4)速度遠沒有上面轉載中說的那樣快,擦除和寫入ucosDemo工程約需40多s。以下是這個工程的代碼量:

Program Size: Code=96830 RO-data=143650 RW-data=1016 ZI-data=16440

   但是有個現象,即下載一次後退出,然後再次進入(沒有重編譯時間),似乎沒有擦除和下載的過程,時間飛快。也許這就是上面所說的時間快的原因?


////以下來自21icbbs// http://bbs.21ic.com/icview-127364-1-1.html

    問:一直在核心板上玩 103ZE,都是些小程式 都是在RAM中調試的,而且只接三根線GND SWDIO SWCLK (VCC 直接接JLINK內部的),很爽利。不過今天要試IIS 要放一個大的資料進去,於是要燒到FLASH中去, 發現很快進度條走完, 然後顯示失敗,放狗一搜,說要接RESET,於是接上,果然下進去了...慘了,我PCB都畫好了,都只有4線(VCC SWDIO SWCLK GND),以後怎麼辦呢?

    答:可以不接,可以在MDK模擬器的設定裡面不使用硬體複位,而是用system reset或者vect reset,前者適用的範圍更廣

/////轉載結束


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

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

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

    做這個貼子的用途是為硬體設計做一點準備。

原文來自:http://blog.ednchina.com/czlyzhj/1805761/message.aspx

擴充閱讀:http://www.iartools.com/Info_ArticleList_Show.asp?ArticleId=32

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.