Stm32 SWD 下載 調(diào)試配置
找到一篇比較好的 關(guān)于stm32 SWD模式 下載 調(diào)試 配置文章 整理如下:
我們比較常用的是Jlink下載器 ,這種下載器有一個(gè)缺點(diǎn)就是使用的Jtag 20PIN接口,太多的PIN會(huì)導(dǎo)致一些小型的PCB板很擁擠,也會(huì)增加布線的難度。 而使用SWD接口下載調(diào)試,只需要要使用4個(gè)PIN: GND, RST, SWDIO, SWDCLK ,而且下載速度可以達(dá)到10M/s,優(yōu)勢顯而易見。
以下轉(zhuǎn)自:http://www.openedv.com/posts/list/187.htm
我們所使用的Jtag 20PIN引腳圖: 相關(guān)原理圖:
SWD 仿真模式概念簡述
一、SWD 和傳統(tǒng)的調(diào)試方式區(qū)別
SWD 模式比 JTAG 在高速模式下面更加可靠。 在大數(shù)據(jù)量的情況下面 JTAG 下載程序會(huì)失敗, 但是 SWD 發(fā)生的幾率會(huì)小很多。基本使用 JTAG 仿真模式的情況下是可以直接使用 SWD 模式的, 只要你的仿真器支持。 所以推薦大家使用這個(gè)模式。
在大家 GPIO 剛好缺一個(gè)的時(shí)候, 可以使用 SWD 仿真, 這種模式支持更少的引腳。
在大家板子的體積有限的時(shí)候推薦使用 SWD 模式, 它需要的引腳少, 當(dāng)然需要的 PCB 空間就小啦! 比如你可以選擇一個(gè)很小的 2.54 間距的 5 芯端子做仿真接口。
二、仿真器對 SWD 模式支持情況
1. 市面上的常用仿真器對 SWD 模式支持情況
(1) JLINKV6 支持 SWD 仿真模式, 速度較慢。
(2) JLINKV7 比較好的支持 SWD 仿真模式, 速度有了明顯的提高,速度是 JLINKV6 的 6 倍。
(3) JLINKV8 非常好的支持 SWD 仿真模式, 速度可以到 10M。
(4) ULINK1 不支持 SWD 模式。
(5) 盜版 ULINK2 非常好的支持 SWD 模式, 速度可以達(dá)到 10M。
(6) 正版 ULINK2 非常好的支持 SWD 模式, 速度可以達(dá)到 10M。
2. SWD 硬件接口上的不同
(1) JLINKV6 需要的硬件接口為: GND, RST, SWDIO, SWDCLK
(2) JLINKV7 需要的硬件接口為: GND, RST, SWDIO, SWDCLK
(3) JLINKV8 需要的硬件接口為: VCC, GND, RST, SWDIO, SWDCLK (注:下面有我自己用JLINKV8的實(shí)際連線及相應(yīng)實(shí)驗(yàn)結(jié)果)
(4) ULINK1 不支持 SWD 模式
(5) 盜版 ULINK2 需要的硬件接口為: GND, RST, SWDIO, SWDCLK
(6) 正版 ULINK2 需要的硬件接口為: GND, RST, SWDIO, SWDCLK
由此可以看到只有 JLINKV8 需要 5 個(gè)引腳, 即多了一個(gè)VCC引腳,其好處是: 仿真器對目標(biāo)板子的仿真需要用到 RST 引腳, 使用仿真器內(nèi)部的 VCC 作這個(gè)功能其實(shí)并不是非常美妙。 因此,JLINKV8 選擇了只和目標(biāo)板共 GND, 但不共 VCC。 因此我覺得這種模式最合理, 當(dāng)然通常情況下仿真器和目標(biāo)板共 GND 和 VCC 是沒有錯(cuò)的。
三、在 MDK 中SWD 模式的設(shè)置
在調(diào)試仿真的時(shí)候用J-LINK的Cortex-M3方式已經(jīng)足夠,并且在MDK下他的功能已經(jīng)做得非常的好,用標(biāo)準(zhǔn)20腳的JTAG下載,速度是非常的快,一般初學(xué)者都是這樣做的。但是SWD方式似乎速度更快、更加方便、簡捷、,對于項(xiàng)目中對板子空間要求嚴(yán)格、I/O口資源緊張的用戶來說更加的有利,正常的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è)口就可以了)。
下面我說一下SWD兩線仿真的一些步驟、注意事項(xiàng)及需要注意的問題。
接口的連接如下:將JLINK的1、7、9、20分別與自己的開發(fā)板上JTAG的VCC、JTMS、JTCK、GND用杜邦線相連即可!
接下來告訴大家怎么使用SWD設(shè)置:
打開工程OPTION設(shè)置:
在設(shè)置中按照上圖設(shè)置成 SWD 模式, 速度你可以按照你的實(shí)際需求來設(shè)置, 如果你的板子供電系統(tǒng)不是特別穩(wěn)定, 紋波比較大或者仿真線比較長可以設(shè)置成 500K 或者 1M,如果環(huán)境很好當(dāng)然可以選擇 10M , 當(dāng)然速度會(huì)飛起來。
記得不要忽略了左下方的那個(gè)USB還是 TCP 模式, 當(dāng)然我們是 USB 模式, 因?yàn)橛械臅r(shí)候默認(rèn)是 TCP 模式, 這個(gè)時(shí)候我們忽略這個(gè)設(shè)置后會(huì)仿真常常連接不上的。
按SW方式來調(diào)試,實(shí)際需要接1,7,9,15,20腳,某些資料上說的需要6個(gè)腳(第13腳SWO也需要連上)是不對的,SWO不需要連接。
我的Jilnk 和 開發(fā)板 接線圖:
白色線 : 3.3v
黑色線 : GND
灰色線:SWIO
紫色線:SWCLK
關(guān)于是否要接上 Reset 引腳的問題 我測試時(shí)并沒有接上 可以正常下載和調(diào)試 而且下載速度設(shè)置為 10Mhz 仍然沒有問題 速度的確快了很多 。。