单片机学习小组
直播中

苹果派派

11年用户 629经验值
私信 关注

STM32 J-LINK/ST-Link/CMSIS-DAP对比分析哪个好?

STM32 J-LINK/ST-Link/CMSIS-DAP对比分析哪个好?

回帖(1)

褚毕赋

2022-2-8 09:37:32
1.J-Link


        J-Link是德国SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器,很多ARM芯片的接口协议是JTAG,JLink一端接电脑USB接口,一端接CPU的JTAG接口,JLink充当的作用就是USB转JTAG,支持JTAG和SWD两种模式。



  • 可配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成开发环境;
  • 支持ARM7/ARM9/ARM11,Cortex M0/M1/M3/M4,Cortex A5/A8/A9等内核芯片的仿真;


        JLINK-JTAG下载方式:
                 jlink的第1脚(VDD)                第3脚(TRST对应stm32的PB4)                第5脚(TDI对应stm32的PA15)                第7脚(TMS/SWDIO对应stm32的PA13)                第9脚(TCK/SWCLK对应stm32的PA14)                第13脚(TDOSWO对应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
2.ST-Link

        ST-Link是ST意法半导体为评估、开发STM8/STM32系列MCU而设计的集在线仿真与下载为一体的开发工具,支持JTAG/SWD/SWIM三种模式。



  • 支持所有带SWIM接口的STM8系列单片机
  • 支持所有带JTAG/SWD接口的STM32系列单片机


3.CMSIS-DAP

        CMSIS-DAP 是一个协议规范和支持访问 CoreSight 调试访问端口(DAP)的固件实现。为各种 Arm Cortex 处理器提供 CoreSight 调试和跟踪。CMSIS-DAP 支持包含一个或多个 Cortex 处理器的目标设备。一个设备提供一个调试访问端口(DAP) ,通常有一个5针的 JTAG 或一个连接到调试单元的2针的串行有线调试(SWD)接口。CMSIS-DAP 是连接 Debug Port 和 USB 的调试单元的接口固件。在主机上执行的调试器通过 USB 和调试单元连接到运行应用软件的设备。



  • 支持各种Cortex处理器CoreSight调试和跟踪。
  • 为调试器提供标准化的接口,支持5线JTAG或2线SWD,其固件作为源代码提供

        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)、免驱动,插上就能用。
4. ULink

        ULINK已经停产,在售的是ULINK2和ULINKpro版本,ULINK2是ARM/KEIL公司(2005年ARM收购了KEIL)最新推出的配套RealView MDK使用的仿真器,ULINK2仿真器也被称为Keil ULINK2、ARM ULINK2仿真器。

        ULINK2仿真器支持:



  • 片上调试(使用片上JTAG/SWD/SWV)
  • FLASH存储器编程(用户可配置FLASH编程算法)
  • 以下是各版本ULINK仿真器的区别,可见支持的芯片内核,软件开发工具等内容;


总结一下J-Link、ST-Link、ULink三种仿真器之间的区别:



  • JLink是通用型的ARM内核芯片仿真器,支持的芯片和软件开发环境多,优选;
  • ST-Link是针对STM8/STM32,如果你使用STM8/STM32单片机,首选ST-Link,当然用JLink下载ST系列单片机也可以;
  • ULink专注于Keil平台,支持ARM7/9,Cortex-M0~M4,ULink2还支持8051系列芯片,综合性能(支持芯片种类、软件开发环境及及调试速度)均不如JLink;
  • 三者都支持JTAG和SWD模式;

总结一下JTAG、SWD、SWIM三种下载模式的区别:



  • JTAG接线比较多,高速模式下稳定性不如SWD;
  • SWD接线少,可空出多余的GPIO,所需要的接线信号不同仿真器会有所差别(主要在VCC和RESET),DIO和CLK必接;
  • SWIM常见于STM8单片机,需用4根线;

举报

更多回帖

发帖
×
20
完善资料,
赚取积分