J-Link是德国SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器,很多ARM芯片的接口协议是JTAG,JLink一端接电脑USB接口,一端接CPU的JTAG接口,JLink充当的作用就是USB转JTAG,支持JTAG和SWD两种模式。
JLINK-JTAG下载方式:
jlink的第1脚(VDD)
第3脚(TRST对应stm32的PB4)
第5脚(TDI对应stm32的PA15)
第7脚(TMS/SWDIO对应stm32的PA13)
第9脚(TCK/SWCLK对应stm32的PA14)
第13脚(TDO\SWO对应stm32的PB3)
第15脚(RESET对应stm32的NRST)
第4.6.8.10.12.14.16.18.20中的任意一个脚(地脚)。
JLINK-SWD下载方式:
jlink的第1脚(VDD)
第7脚(TMS/SWDIO对应stm32的PA13)
第9脚(TCK/SWCLK对应stm32的PA14)
第4.6.8.10.12.14.16.18.20中的任意一个脚(地脚)
第15脚(RESET对应stm32的NRST)可接可不接。
1)J-Link下载程序时先安装J-link驱动,打开MDK,并按下面指示配置
2)选择J-LINK,点击setting
3)配置flash download
下面简单的说一下什么是JlinkOB 。Jlink_ob 官方说法(简单来说是“板载调试”),J-Link OB是一种板载调试探针,作为您的评估板的一部分。 微控制器的一侧有USB接口,设备侧有JTAG / SWD + SWO等接口。 它允许调试随附的板上的目标器件,而无需额外的调试探针。 J-Link OB由多个评估板制造商用于各种目标CPU的各种评估板上。以前我们下载MCU程序是用ST-Link或JLink这个东西很贵,功能很强大,体积也大。但是实际上我们常用的就是下载程序,而且我们用的最多的是SWD下载,所有就有了JLinkOB这个东西,小巧实用。
这个项目是SEGGER公司的开源项目,有兴趣的朋友可以去官网看看,里面有很多关于JLinkOB 的说明文档和资料。
原理图
原理图还是比较简单的,STM32最小系统+电阻电容,具体的原理,我还没看明白,USB接口连接到了PA11和PA12,STM32的这两个引脚可以用来模拟USB设备。另外,当时设计的时候,没有考虑到一些保护电路,如自恢复保险丝,所以实际使用时,要注意不要接反了!
PCB图
焊接了两块小板,焊接没什么难度,电阻电容大部分是0603封装,还比较好焊接。
如果某个阻值的电阻没有,如上下拉电阻和限流电阻,可以用相近的阻值来替换,不过个别电阻最好使用对应的值,如R5、R12,如果不一样,可以会导致USB识别失败。
确保电源没问题后,就可以下载固件了,使用另一个调试器,配合JFlash或者ST-LINK Utility烧录软件,SWD模式,把hex固件烧录进去,重新上电,就可以看到设备管理器里多了一个Jlink driver,打开Keil选择Jlink调试器,试一下看能不能用,第一次使用会提示升级固件,可以放心点击升级,这样就会把当前JlinkOB的固件升级到最新版本。SWD方式连接好ARM芯片,如STM32,可以看到成功检测到芯片,而且速度最大支持50MHz。
说明:这里采用SWD下载方式,可以用的JLink连接需要下载固件的JLink,这里焊上排针不好看就直接用杜邦线斜着插,稍微上点力就能有效连接了。
SWDIO-------------------------SWDIO
SWCLK-------------------------SWCLK
VCC-----------------------------VCC
GND----------------------------GND
ST-Link是ST意法半导体为评估、开发STM8/STM32系列MCU而设计的集在线仿真与下载为一体的开发工具,支持JTAG/SWD/SWIM三种模式。
CMSIS-DAP 是一个协议规范和支持访问 CoreSight 调试访问端口(DAP)的固件实现。为各种 Arm Cortex 处理器提供 CoreSight 调试和跟踪。CMSIS-DAP 支持包含一个或多个 Cortex 处理器的目标设备。一个设备提供一个调试访问端口(DAP) ,通常有一个5针的 JTAG 或一个连接到调试单元的2针的串行有线调试(SWD)接口。CMSIS-DAP 是连接 Debug Port 和 USB 的调试单元的接口固件。在主机上执行的调试器通过 USB 和调试单元连接到运行应用软件的设备。
DAPLink之前叫CMSIS-DAP。它的硬件和软件都是开源的(开源的Github网址:https://github.com/ARMmbed/DAPLink),它支持对运行在Arm Cortex的单片机上的应用软件进行编程和调试。DAPLink的源码是开源的,意味着你可以对代码进行修改、提速、增加功能等,比如可以改为无线调试、Wifi功能等。它连接到目标MCU的swd或jtag端口。因为要实现DAPLink只需要一个MCU而且外围器件很少,所以很多官方的开发板上都集成了DAPLink。DAPLink的串口功能和SWD、JTAG模式连接关系如下:
常见的DAPLink原理图:
DAPLink的特点包括:
1)、MSC-支持拖拽式编程Flash,把DAPLink连接电脑后,电脑上会出现一个U盘,把hex或bin文件拖入其中就能完成程序烧写。
2)、CDC-虚拟串口,把DAPLink连接电脑后,电脑上会出现一个串口,可以使用串口助手打开实现与目标板的串口通信。
3)、DAPLink本身的固件支持U盘升级,只需将nRST接地,插入DAPLink,PC上即会出来一个U盘,只需将新的固件(hex或者bin文件)拖入到U盘中,即可完成固件升级。因为DAPLink实现了一个带U盘功能的bootloader,可以方便的完成固件升级。“若您有基于STM32的产品正在量产,而且产品后续可能需要升级,则DAPLink中的bootloader代码非常值得您参考,客户端不需要安装复杂的IDE或者烧写工具才能完成升级,只需拖动到U盘即可方便的完成您的产品升级。”
4)、支持主流上位机调试软件,包括keil、IAR、openocd,均支持使用SWD进行下载、单步调试。
5)、免驱动,插上就能用。
ULINK已经停产,在售的是ULINK2和ULINKpro版本,ULINK2是ARM/KEIL公司(2005年ARM收购了KEIL)最新推出的配套RealView MDK使用的仿真器,ULINK2仿真器也被称为Keil ULINK2、ARM ULINK2仿真器。
ULINK2仿真器支持:
总结一下J-Link、ST-Link、ULink三种仿真器之间的区别:
总结一下JTAG、SWD、SWIM三种下载模式的区别: