|
STM32电机培训online,大佬带你玩电机 keil+stm32+jlink 用swd方式printf输出 ' p$ j7 Z7 x3 Q! s8 g JLINK V8新用户手册中文版) f0 ~8 ^( Z, M6 l; }) i % T5 M, |- |8 R6 u( J* ^+ E 8 e# |) s" Z; X, l3 B 前段时间,做了一块板子,调试接口只留了三个口SWD、SWCLK、GND,在使用Jlink的SWD方式调试的时候发现无法连接。使用ST-link的时候可以连接,无奈楼主的ST-link的链接方式相当的不可靠,时而能识别时而不能识别:当然我的ST-link是山寨版的。 那么问题来了:为什么通过20针全部连接的方式可以调试,而三针的方式就不行了呢? 古人云知之为知之,不知Google之,Google不让用,那就问度娘好了。 通过查阅网上资料发现,jlink的20针,不光有调试的功能还有供电和检测电压的功能。 o U; s: A8 J 下面是jlink的接口图0 j: m8 O# `: n( f jlinkæ¥å£å¾
通过上面图片可以发现,jlink的1脚叫做VTref,这个从字面意思理解应该是参考电压的意思,没错,这个管脚就是板子给Jlink内部缓冲芯片供电的接口,这个地方供几伏,缓冲芯片的IO电平就是几伏的。起了一个电平匹配的作用。+ v, f! Q9 ^- T2 k 20针JTAG的2号针可以提供VCC供电。打开J-Link Commander输入power on时,发现2号针脚输出的是3.3V电压,那么可以通过直接短路1、2号针 来解决问题。 楼主的山寨版Jlink的2脚可以向外提供3.3V电压,那么短接1、2脚的话是可以让Jlink正常使用的,如果你的Jlink的2脚输出的是5V话那么最好就不要这样短接来用了。 好多板子上的20针调试接口是按下图连接的。
9 }7 s( K' e/ I 那么短接完成,如果再采用20针调试的时候就要注意了,jlink的3.3V千万不要与开发板上20针接口的3.3V接在一块,否则会有烧坏jlink的可能,这个时候就要设置jlink不给开发板供电了。 楼主的解决方式是在jlink的2脚上加了一个开关,当需要jlink给开发板供电的时候,开关打到3.3V上,当不需要内部供电的时候呢打到悬空上。这样就可以同时使用三线的SWD和20线的JTAG与SWD调试方式了。, s' l- L$ F( i+ C 6 u6 V6 S) y( ^7 N 下面附上J-Link的三线SWD连接方式改造接线
J-Linkçä¸çº¿SWDè¿æ¥æ¹å¼æ¹é æ¥çº¿.pdf
(1.08 MB, 下载次数: 3530)
|
微信公众号
手机版
我使用SWD3线连接,jflash说连接成功,可是没法下载
提示: l7 \& _( n# X/ K1 A
Erasing affected sectors ...
- ERROR: RAM check failed @ address 0x20000000.$ h9 G! Y! W* C( ~% R! M
- ERROR: Write: 0x03020100 07060504
- ERROR: Read: 0x00000000 00000000! Q6 g! R" @/ I( c, U; X
- ERROR: (0 bytes of RAM have been checked successfully)! m7 B* B' ^9 l: O
- ERROR: Failed to erase sectors6 S5 B# O+ Y; P8 M# v: m6 g. W" t
我的芯片选stm32f051c85 B z# y- K$ R# l4 P6 j
jlink的1.2脚已经短接
1)一类用于测试芯片的电气特性,检测芯片是否有问题;2 s$ Z# Q4 _0 d' t, I. ` A' ~- R
2)另一类用于Debug,对各类芯片以及其外围设备进行调试;一个含有JTAGDebug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器、挂在CPU总线上的设备以及内置模块的寄存器。本文主要介绍的是Debug功能。
这个JTAG以前还真的是没了解过,学习了
山寨的真心不稳定