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

【源代码】ST-LINK V2仿真器改CMSIS-DAP/DAPLink,带有SWO和CDC功能  

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。% [' d- B$ U, W1 M
2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。
0 J+ m/ q7 z' n1 k2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。
$ ]& I& H! m$ a8 U2 G
2019-12-24重要更新,速度提升,功能不变。
: {  t& ?3 e4 d4 C. |' Z0 S5 T3 w6 j' h  w2 E8 R; A
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO
( i0 ]  [; a6 G* z; J( ^9 W5 ^( I0 ^, }! ?4 e, n, w$ f* q% a6 c
-----------------------------------------------" d9 M4 E6 @& q2 Z
为什么要改CMSIS-DAP / DAPLink,也许只是好奇。
7 M0 _. e5 d- ]3 Z7 C) K  b6 d& ]; M, A: c+ W' r5 e
2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。6 P& N8 w& b- b1 @" u
TB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。: d5 {- _1 A* q* K( F$ K/ W! g
如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:& r8 |$ E' N5 [1 e
SWO ------------- PA10。
8 y/ E, N7 t/ ^3 \, T# l; o6 WCDC -------------- PA2_TX / PA3_RX(USART2)。
; s7 ~$ i0 D8 t  s* Z' G' d--------------------------------------------------------------------------------------------------
$ F! z' _& M; I" o2 }6 F: M6 E! T; R
& P8 B! I. \; |# p上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。* X% S2 ~0 v! J4 t
下面是其中两种:
; P+ [! w  ^% _. i* w0 n2 T/ O$ T$ M9 \6 S 00.jpg
+ d; N2 n1 c: P* H. ]( Y2 V# A! J
1 `) O: O  d2 X1 m9 R  p# ^( e; I4 p# }* Z* b, Z) W
而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)3 x3 Z, u. B1 m2 K
01.jpg ' l/ o. `  h+ g# E, c% L, I/ g

$ X" q; R" p" H) N1 p! `5 U5 T8 Z8 @下面把改装的情况,用图片说明。* j7 @8 Z/ A  y' A8 N2 V2 S4 y
02.jpg
2 v: e+ ?! ?0 J5 B. y4 R$ H2 g3 X9 b
03.jpg
9 W+ n! d4 e5 `. v' K& a* C. v5 P( I
Schematic(part) STLINK_V2A_V2B.jpg 6 V# j1 n* B- A3 m
6 Y4 {2 _; X1 o" M8 s3 W
我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......
! K( m. T- {2 {
" _. ]5 C$ i/ l9 }4 ]4 E严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。
; H1 u" c" Y. b有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。9 h: L; c6 v( w2 o) p; L
1 J4 W& ]* \6 }4 C, D

/ E7 P8 m3 ^  i$ m+ c9 Q7 ~' w* C! M2 |" q. e1 P
# H' j% a" B! S3 d

STM32F103C8T6_CMSIS-DAP_SWO-master20200509.zip

下载

3.48 MB, 下载次数: 709

收藏 15 评论100 发布时间:2018-6-9 11:52

举报

100个回答
radio2radio 回答时间:2018-6-16 22:48:32
本帖最后由 radio2radio 于 2018-8-29 11:03 编辑 , J  a  r' K  o. Y
spmno 发表于 2018-6-16 15:30
$ o/ F' P  r+ t. @  ?4 |用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
3 K. W$ ^9 q& O3 W
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。7 y; K/ n1 t& y6 r- ^
$ _9 u. L2 W) E8 ]% w4 K
重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。4 e- d  n2 Z' s* I

) f. k' z8 Z  _6 z6 k( B; R/ Y Pin_configs_1.jpg % t1 g) z2 ?* v4 z: m
* i  f/ j( e5 s- x" Y- T
参见一楼附件,可以试一试。
7 U+ S8 f$ E) U# X
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50
1 p1 x: h1 z4 l/ I9 B" |刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?$ S, U# x* x( \& \# d+ h* r
操作系统是WIN10。
5 U8 n! S1 i' U& U9 x' k用了其它版本的固件也不好用 ...

1 Q/ C7 A( M- I" W, ?* h测量一下USB的D+线的电压,有没有pull-high。
2 w+ u0 ^, }) a4 K
: C, A# d0 x+ K+ [/ B如果是驱动的问题,试一试附件的驱动:+ C9 [' n7 u  R# v: `) `/ T
5 h1 u1 x% X1 C3 s# v5 g

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 297

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:41& g0 m  _+ \2 B8 m5 T4 [
好像不起作用,感觉不完全是软件问题,会不会和固件也有关系

% f) N/ }" f- c0 p1 y  t6 s也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。* C, {0 P& o6 m! i/ g1 P2 U

+ m/ V1 ~% H7 B( u坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。$ v1 @4 Y1 s0 s$ _

/ b$ m) ]3 A5 V% ]: T我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。
& ~) A  N0 \  c1 n3 J* ?/ N/ L( y, P; {
建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。
$ }7 c3 a; x) q% L' r( W再就是,SWO使用过程中不一定需要一个数据不漏,偶尔缺少一些数据,不影响正常判断程序的工作情况。
spmno 回答时间:2018-6-9 15:30:38
可惜只是固件,有代码就好了,呵呵。
jeeson196 回答时间:2018-6-10 09:14:50
谢谢分享
spmno 回答时间:2018-6-13 11:50:37
本帖最后由 spmno 于 2018-6-13 11:51 编辑 . E4 d. b8 A% ?
& n. w- ^* \" {1 E2 x
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?2 z) z3 w. K' ~
操作系统是WIN10。
! f) w1 C" `; P0 T$ P用了其它版本的固件也不好用。3 j1 R& U, r- f& k+ ^; `/ {
. u! G- J  r. M! f* M4 y
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:59
% v) k1 h( N3 ?/ m" S5 S7 ]' A! Q测量一下USB的D+线的电压,有没有pull-high。
2 J3 i/ _: T: U
' J- c6 g9 ~, B+ b9 s如果是驱动的问题,试一试附件的驱动:

$ F4 r$ s7 r3 e, I: g! g' z多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:22# P" j/ ?! {7 ]8 d! i
多谢楼主,我这就试一下。
& T  o3 x5 X8 ^, W0 a  p" F+ r
D+ 3V6 I6 t) F$ R5 ]& k0 z" o" E$ u% a
设备管理器提示:未知USB设备(设备描述符请求失败)。, D- E$ d4 a, C- |
更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑 : m- c. ]* l, _9 \/ `, Y
spmno 发表于 2018-6-13 13:33
0 T0 }: ^4 _5 n. w# ]5 fD+ 3V' H$ k* u* b6 i5 g% P: }, I
设备管理器提示:未知USB设备(设备描述符请求失败)。
" G1 g; ~) T0 p更新驱动也失败。 ...
- S' }+ a4 ^+ \
这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:47
: ?. O8 w* W! N0 u( I) g! h这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...

4 Z+ r8 P' _" o' s, ]好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47
  N: @+ U% Q# X# s这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
9 K: q: U; r6 O# J8 q6 o, E9 D
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48) q1 l% }6 `1 H" z6 }% L" P6 K
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
. @: f$ x* }/ \9 T/ Y6 L1 Z! ]( e! g' s- E
重新 ...
' L3 D; Q1 J3 R+ B# H2 _9 O
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53
7 g7 r2 u- S/ ^好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...
: p0 m1 u6 u- N* E* ?: ~8 p
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。2 ^; b, h2 l9 }& v( H7 k
原程序都是用其他GPIO的。" J+ x& C  c) E% U0 f" U

1 T3 e2 ]" }- U: T9 ?下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50  p  P* F1 N4 X9 I9 s
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。0 ~5 v2 I0 c% C4 S& ?
原程序都是用其他G ...
! I2 F% n5 y* q* s
嗯,说错了。是CMSIS-DAP-STLINK的代码。  R# q) |$ }5 r1 d5 X6 s
使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

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