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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。( C) |) U6 }4 w9 h
2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。& g- N) U0 u- ]
2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。

6 u0 z$ E# C5 Z: l4 u# O2019-12-24重要更新,速度提升,功能不变。. F" v( U4 x& v- L* h4 g

* X! _8 `7 t/ m
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO
* ]. t) S$ g$ |! s9 {
* V  [1 Y; k1 L, A# m: ?-----------------------------------------------
' q1 k) Y0 Y: R0 A; \+ h为什么要改CMSIS-DAP / DAPLink,也许只是好奇。! G+ d' |# S( G& K
& ^3 x0 @) O/ A9 P4 y- v
2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。* T+ W* o  i5 ?, y# s
TB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。: W0 }; M$ C2 N' M0 i: h7 Z
如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:  E' j+ T, S" r* T2 n; N" w
SWO ------------- PA10。8 i: N/ m+ x, Y
CDC -------------- PA2_TX / PA3_RX(USART2)。
; l8 L0 M, H( s--------------------------------------------------------------------------------------------------' f% {* G$ k6 J' e

  U: e7 I) s: ]上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。% A' h8 T+ a% G  S) _
下面是其中两种:
% N3 |  F+ O) L 00.jpg
5 X: _" d; j! P& t6 T
9 W. T9 Y; _' ~3 B% c" C& N7 }* u+ z2 J, K' m
而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)1 o6 q2 J0 B/ ]' N4 H* R
01.jpg
1 w0 f4 U. S2 w' i6 q% ~3 {- L0 x: L# }
下面把改装的情况,用图片说明。
! C% T% c% t- } 02.jpg
' X4 G5 Z+ \& g3 G0 o/ T8 u
$ @( c0 j: W; y6 R& Y: F5 K: { 03.jpg
4 H" t1 h- g5 S3 ]
+ m# Z! U, L0 I9 Y Schematic(part) STLINK_V2A_V2B.jpg 5 {* D# Z! E1 j2 h+ a% b
* k$ g" ?. [$ K) t- |5 f. V
我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......  c* d1 M2 O2 Q5 s. N/ [; p. F/ C

: g- d5 \8 T' u, K; J严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。3 J- U1 J( k2 Y, v! N4 `
有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。$ B6 G; S8 ]2 k* F

, t4 ^% u  g- z+ v- w0 t
, F7 p. x4 ^  g* \1 R. q# y4 ^
- K" |; |0 F$ W3 l' c9 a8 k9 }3 H( X$ `/ N, R

STM32F103C8T6_CMSIS-DAP_SWO-master20200509.zip

下载

3.48 MB, 下载次数: 714

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

举报

100个回答
radio2radio 回答时间:2018-6-16 22:48:32
本帖最后由 radio2radio 于 2018-8-29 11:03 编辑
% Y2 V9 T1 K/ a) o5 n( }$ z
spmno 发表于 2018-6-16 15:30
4 _% A  k4 W, q用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
5 w3 E$ D9 @, a( ^/ f& v
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。* b1 K8 M; R. f" g
/ b) _1 t* ~- a& J% W, k
重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。
& W9 X- x0 @& s7 M7 c- o6 i1 S! v  z7 }. k  B3 i
Pin_configs_1.jpg - @1 m# n$ M5 }% |  {% n* w' r

; Q3 B7 `7 F8 k8 x% ]4 @# W参见一楼附件,可以试一试。7 a) v2 ?' Z# s& M5 n
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50
8 s% _1 g0 t& l7 w6 w" g7 P6 G刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?- }. K8 w- }6 v" B" C4 ?
操作系统是WIN10。
2 Q1 a  w9 X- |/ X  y0 _用了其它版本的固件也不好用 ...
' o* s) o  U; z9 @' B9 a4 Q* n2 `2 B
测量一下USB的D+线的电压,有没有pull-high。% N2 ]5 I: c5 M0 |
1 x0 R8 p& L- d. v5 p: T
如果是驱动的问题,试一试附件的驱动:! k4 c( ^3 W$ A6 V/ R/ ]

1 \$ j/ E) q# a4 p

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 298

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:41
) U& h! D; b3 {好像不起作用,感觉不完全是软件问题,会不会和固件也有关系
1 V9 `. O5 f% g( `  I' g
也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。- b: k# b  Q. b$ |& V. l

2 u3 }' x$ L, B& h& U  p: l坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。
: M( F9 C, H6 V' [9 H
+ L! F. L% u& c% w) y我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。
% D6 [7 u9 v/ Q# V2 A
: Y! ~5 L/ T& {5 k) P0 M  b建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。
8 \9 m% C1 ?- O% C& H8 ?再就是,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 编辑 : |: l/ R+ g. T) m: q
4 c$ K$ |# z/ M' E5 C; K" m
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?& N- L3 b+ K/ @# ?. ~4 k8 O
操作系统是WIN10。
: W, W$ z0 ^; m$ i) d0 f/ e用了其它版本的固件也不好用。
3 j4 `+ C1 M2 T+ k  z3 l
: `, \  O8 ^( ]3 l0 z, l- e
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:59
; C$ n& V2 V' d& m7 F测量一下USB的D+线的电压,有没有pull-high。
0 [. Y6 }* e) N: b8 ^* m7 }7 n2 S0 W. @* J
如果是驱动的问题,试一试附件的驱动:
- c& H6 y, X5 ?& t: I
多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:221 b  g) ~! ]( T& j% N
多谢楼主,我这就试一下。
# S9 H7 U% x" j# V# i2 n
D+ 3V
# w% c" O& k$ ~3 B1 f5 z- ~设备管理器提示:未知USB设备(设备描述符请求失败)。
% h5 m, y0 D2 b+ S/ ?6 [' M更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑   a2 }$ N" k, i7 n; N
spmno 发表于 2018-6-13 13:33* |& v' u- W& q1 u+ u4 F
D+ 3V
) B) B; P9 L, b& B, E设备管理器提示:未知USB设备(设备描述符请求失败)。) u. L; c* s6 H& I
更新驱动也失败。 ...
7 b+ m; `& o; ^4 s
这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:47
3 T; M9 o) l+ C2 x/ x5 v! x这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
5 m) ~) z0 o- {; y; d7 [. Q
好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47) D* h9 Q  r1 |5 ]6 _
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
$ ?1 K0 z. }" k3 u
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48% l* {8 E+ r( D. D
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
' ?9 g; ]' q( e2 \  q" a( r/ B. @( Z/ ?. y
重新 ...
; d' X, q& g  D# ^  ^: N) g( x
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53
6 `9 y0 z' E( P好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...

# z$ I6 w: Q4 @& @; l3 D# R不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。- u& Z& H9 E; b8 F1 \
原程序都是用其他GPIO的。+ B6 ^3 }/ U7 n- r
/ n: u0 ~, `* X* @. h2 G; m
下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:502 c- t/ Q( I0 M) `* e6 J( a2 ~
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。$ T+ @5 e  V/ Y3 h" |5 B' J0 t
原程序都是用其他G ...
8 a1 Z3 O: P: F6 V
嗯,说错了。是CMSIS-DAP-STLINK的代码。" |6 H) Q7 C" n" S
使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版