SWD调试接口
发表评论
Jtag 是20PIN接口(非常多的接地PIN),太多的PIN会导致一些小型的PCB板很拥挤,也会增加布线的难度。
使用SWD接口下载调试,只需要要使用2-6个PIN: VCC, GND, RST, SWDIO, SWCLK, SWO
其中, SWDIO, SWCLK是必须的
国内仿制 ULINK2 非常好的支持 SWD 模式, 速度可以达到 10M。
ULINK2 需要的硬件接口为: GND, RST, SWDIO, SWCLK
Ulink2将JTAG的1、7、9、20分别与自己的开发板上JTAG的VCC、JTMS/SWDIO、JTCK/SWCLK GND用杜邦线相连即可
JLink按SWD方式来调试,实际需要接1,7,9,15,20脚,某些资料上说的需要6个脚(第13脚SWO也需要连上)是不对的,SWO不需要连接。SWO是调试数据,log可以从这里打印。
SEGGER Embedded Studio can use SWO for printf Output to the Debug Terminal and for code profiling and execution trace.
https://wiki.segger.com/Configure_SWO_in_Embedded_Studio
有些开发板,没有引出RST线。那么 不接第15脚,即RESET脚,仅接4条引线,即Vref,SWDIO, SWCLK, GND。
在MDK 中 设置时Reset位选择:AutoDetect,可以正常下载,仿真。
如果Reset位选选择:HW Reset ,则不能正常下载。
这是正常的,硬件reset信号都没连接,自然不能硬件复位。
小程序 都是在RAM中调试的,而且只接三根线GND SWDIO SWCLK (VCC 直接接JTAG内部的),很爽利。不过今天要试IIS 要放一个大的数据进去,于是要烧到FLASH中去, 发现很快进度条走完, 然后显示失败,放狗一搜,说要接RESET,于是接上,果然下进去了。
在MDK仿真器的设置里面不使用硬件复位,而是用system reset或者vect reset,前者适用的范围更广
因为SWD有软件复位协议,不需要硬件RST信号,也可以复位系统。