你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

分享Jlink的三线制SWD方式连接STM32芯片无法识别的解决方案 精华  

[复制链接]
拼命三郎 发布时间:2015-1-7 14:01
STM32电机培训online,大佬带你玩电机2 z# w- S# @! P
keil+stm32+jlink 用swd方式printf输出
( d6 o) V, _* t( @! k- f
+ K" u& f/ ]! [JLINK V8新用户手册中文版8 U7 M+ L) v7 `- v& T& n& H4 G
: a# t9 w  }7 d1 L/ T
1 P3 j+ v. q  e2 q0 j% J6 y' ~

9 M* [' Z: A7 J# q2 n前段时间,做了一块板子,调试接口只留了三个口SWD、SWCLK、GND,在使用Jlink的SWD方式调试的时候发现无法连接。使用ST-link的时候可以连接,无奈楼主的ST-link的链接方式相当的不可靠,时而能识别时而不能识别:当然我的ST-link是山寨版的。
" _5 K4 A- ~. j# P% u# k4 V( A那么问题来了:为什么通过20针全部连接的方式可以调试,而三针的方式就不行了呢?
# }2 v% j# X5 J# @0 L古人云知之为知之,不知Google之,Google不让用,那就问度娘好了。+ f2 W$ o( P- v; K* a' E: Z: A
通过查阅网上资料发现,jlink的20针,不光有调试的功能还有供电和检测电压的功能。
9 |. N: ^0 b9 h" J$ S; _, q下面是jlink的接口图
+ z4 Q: _) K  C4 ^. B2 |

jlink接口图

jlink接口图
download.jpg
4 y5 Y7 J6 f7 W. @4 c' A- M% a通过上面图片可以发现,jlink的1脚叫做VTref,这个从字面意思理解应该是参考电压的意思,没错,这个管脚就是板子给Jlink内部缓冲芯片供电的接口,这个地方供几伏,缓冲芯片的IO电平就是几伏的。起了一个电平匹配的作用。
* D3 p* t& z" ?3 R% G. h' v/ Z& N
3 {, B, Q! F$ N( m20针JTAG的2号针可以提供VCC供电。打开J-Link
  U% f& \$ B" [+ Y$ \2 p6 cCommander输入power on时,发现2号针脚输出的是3.3V电压,那么可以通过直接短路1、2号针
+ R3 X% U! B0 d来解决问题。
$ S' R& }2 K# o
楼主的山寨版Jlink的2脚可以向外提供3.3V电压,那么短接1、2脚的话是可以让Jlink正常使用的,如果你的Jlink的2脚输出的是5V话那么最好就不要这样短接来用了。
8 ^3 [- Y0 |5 H3 e9 d& k好多板子上的20针调试接口是按下图连接的。
! `0 C# K9 _7 `7 | 13172402-07f9716e263849c5ad6c22963dbfa558.jpg ; S8 i% ]: o2 a9 S: |  l- _

5 a2 ~$ }7 e' W, Y$ s那么短接完成,如果再采用20针调试的时候就要注意了,jlink的3.3V千万不要与开发板上20针接口的3.3V接在一块,否则会有烧坏jlink的可能,这个时候就要设置jlink不给开发板供电了。
5 T1 r( P3 s- e
/ v* Y7 }( O0 g, G  j0 B) Y$ i楼主的解决方式是在jlink的2脚上加了一个开关,当需要jlink给开发板供电的时候,开关打到3.3V上,当不需要内部供电的时候呢打到悬空上。这样就可以同时使用三线的SWD和20线的JTAG与SWD调试方式了+ A, w% `. O5 J: k  M

0 Z- q$ I" _$ u% g6 e) h下面附上J-Link的三线SWD连接方式改造接线
2 \5 [' H# K( }* ~, e' ^' Z+ ~! } J-Link的三线SWD连接方式改造接线.pdf (1.08 MB, 下载次数: 3520)
2 收藏 15 评论143 发布时间:2015-1-7 14:01

举报

143个回答
Squall 回答时间:2016-10-25 00:37:53
学习了。正好自己在设计板子,下来学习一下。
巅峰残狼 回答时间:2015-1-7 14:04:19
好资料,谢谢分享
电子钟2016 回答时间:2016-12-11 13:24:16
楼主你好
% D6 Y! {) A3 X5 d
7 g4 {( ^3 C$ l1 R2 L: j我使用SWD3线连接,jflash说连接成功,可是没法下载( i& Y4 ~4 [* W3 C
提示3 O1 k2 H7 z# w/ d, |- G0 G
Erasing affected sectors ...
2 T& ]  p8 _" d6 _) v    - ERROR: RAM check failed @ address 0x20000000.& q( ~6 J6 s# e( b% h
    - ERROR: Write: 0x03020100 070605045 k) x0 b  X, x9 Q9 k) o' N
    - ERROR: Read: 0x00000000 00000000
$ j# B3 I5 `" m" G; H: E' u. t    - ERROR: (0 bytes of RAM have been checked successfully)
% j6 `1 A- G- o    - ERROR: Failed to erase sectors
2 {' Z0 R2 l& H3 ~我的芯片选stm32f051c8
  E% e: r- [8 M! q+ y9 \
. z% L# ~; a: J& z9 c5 U+ u3 w( h; \jlink的1.2脚已经短接
拼命三郎 回答时间:2015-1-7 14:34:58
自己顶上去
拼命三郎V5 回答时间:2015-1-7 14:43:57
st_link就挺好用的,弄个山寨的用就行。
625058882 回答时间:2015-1-7 14:53:26
不错,学习下,需要的时候改装下。
天好蓝 回答时间:2015-1-7 15:38:03
b不错,谢谢分享,过来学习了。
kxj116 回答时间:2015-1-7 17:37:42
逢贴必回,天天向上。回去改Jlink去
mryao4 回答时间:2015-1-7 17:47:49
顶一个
guomenhaolaogon 回答时间:2015-1-7 18:07:34
好贴,顶上去,都学习下。
山东大哥 回答时间:2015-1-7 18:24:31
dingding gengjianjiankang还是用STlink吧,折腾啥子嘛
台湾华瑞 回答时间:2015-1-7 18:45:43
JTAG的主要功能有两种,或者说JTAG主要有两大类:6 t$ A% l5 W1 M/ x% ?: z9 l
1)一类用于测试芯片的电气特性,检测芯片是否有问题;
8 S5 ]) _* H# \. d- E, f2)另一类用于Debug,对各类芯片以及其外围设备进行调试;一个含有JTAGDebug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器、挂在CPU总线上的设备以及内置模块的寄存器。本文主要介绍的是Debug功能。
默罕默德.ST 回答时间:2015-1-7 19:16:52
学习了,改天在研究下
拼命三郎 回答时间:2015-1-7 19:22:37
台湾华瑞 发表于 2015-1-7 18:45
4 K$ t9 Q% U% A6 `" ?/ i3 C" ~- x  KJTAG的主要功能有两种,或者说JTAG主要有两大类:1 s. R0 V( i% P. H2 V
1)一类用于测试芯片的电气特性,检测芯片是否有问题;
- T; Y% S8 h1 x9 q- [( [2) ...

7 X! j6 F; V, Q3 R; o' ^这个JTAG以前还真的是没了解过,学习了
拼命三郎 回答时间:2015-1-7 19:24:45
拼命三郎V5 发表于 2015-1-7 14:43
9 G# a" n& U% A+ \) O5 h  L: r" D4 a) Yst_link就挺好用的,弄个山寨的用就行。
$ e! l) Y; ~# u0 a: f, X
山寨的真心不稳定
阿里巴巴 回答时间:2015-1-7 21:23:41
那里能够买到Jlink,官网免费给不?

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版