使用JTAG连接STM32 SWD模式 (STM32L011为例)

使用JLINK的JTAG接口连接STM32的SWD模式

近期使用STM32L011做产品,第一次接触SWD模式,之前都是使用JTAG接口进行下载仿真。初次使用,问题多多。现在将我遇到的问题,和解决办法贴出来,希望能够帮到后来人。

  • 使用的软件 Keil 5
  • 硬件芯片 STM32L011F4P6
  • 连接器 J-LINK V9

1:KEIL 设置

这个比较简单,在DEBUG选项,选择使用J-LINK
使用JTAG连接STM32 SWD模式 (STM32L011为例)_第1张图片
然后点击settings,将port由JTAG 改为SW
使用JTAG连接STM32 SWD模式 (STM32L011为例)_第2张图片
如果连接成功,则会在SW Device栏显示信息。

2:连线

在使用JTAG连接SWD时,比较茫然,网上搜索一番,得到信息是JTAG完全胜任SWD模式。但是怎样连接呢?
在网上看到的比较多的就是下图
使用JTAG连接STM32 SWD模式 (STM32L011为例)_第3张图片
这是JTAG与SWD接口的完整图,当然我们并不需要那么多。一般使用的只有下列几个引脚

  • VCC 1脚(实际使用的是2脚,原因见下文)接目标板的VDD
  • TMS 7脚 接STM32的SWDIO
  • TCLK 9脚 接STM32的SWCLK
  • RESET 15脚 接STM32的NRST
  • GND 4、6、8……20任意脚 接目标板GND

    但是我这么连接后,问题来了!

3:Invalid ROM Table

这是我准备下载仿真时出现的。
测量了一下,原本3.3V的电源电压,接到目标板后,降低到1.7V。期初怀疑板子有短路,在查找一遍之后,确定板子没有问题。
最终在网上找到了一篇帖子,说VCC(1脚)是外界对JTAG供电用的,VCC(2脚)是JTAG对外供电的。我还真没有注意这个问题。我的目标板正是需要从JTAG取电源。于是更改了线路将目标板的VCC接到了JTAG的2脚,OK 了

使用JTAG连接STM32 SWD模式 (STM32L011为例)_第4张图片

4:其他问题

主要就是连线了,RESET脚还是要接的,杜邦线要接好,避免接触不良。芯片引脚不能有虚焊。
还有一个就是最开始使用KEIL在DEBUG选项点击settings打开Cortex Jlink /JTrace target Driver setup 会弹窗,需要选择一下内核。也许是我之前没有设置的缘故。遇到了设置一下就可以了。

你可能感兴趣的:(STM32)