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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。
/ B7 T% G. G3 l% F2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。
+ I& I& e  U' F# `+ d2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。

5 g6 `1 X+ o0 [  y2019-12-24重要更新,速度提升,功能不变。
' d. Z0 Z; {6 Y9 c- R; P
. \- K) L8 V$ ?& \+ T/ y
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO
4 _3 z& S  N8 w9 }2 h' [- {
9 R( G+ `( {0 E  i-----------------------------------------------& g6 V1 \+ h5 [2 `$ |8 ]
为什么要改CMSIS-DAP / DAPLink,也许只是好奇。
' `1 Y: X, R; F) H- r* k4 r4 y# l# W. C
2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。
) r/ R3 a' r6 ?0 N) q% i% i. l6 i( cTB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。- F4 K! v) t) ]6 Q6 Z1 p
如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:9 ?/ Y% ^; S4 q2 W, K
SWO ------------- PA10。
5 S: M9 \" |9 S& U& K: ACDC -------------- PA2_TX / PA3_RX(USART2)。
* Q2 `0 n6 ]- g/ |/ h: S3 J--------------------------------------------------------------------------------------------------
2 I! a7 N; R, v- y! v7 |
) x) d, F. I* u! \* M上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。2 G/ _: B; F& b0 Z
下面是其中两种:
7 t' q/ M0 r  @. h 00.jpg
3 t( r0 }: |: B/ r, W* X3 \6 J3 Q7 L- P) ?* n5 d
# o& F: d* q) X, |/ s
而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)& L3 C) b. t3 b1 {: K* P, Q* e, z
01.jpg & D& S2 l$ ]! G+ V

; h# Y8 y- o' h. l; Z下面把改装的情况,用图片说明。
( r5 E4 C) e$ R) O6 _ 02.jpg
) t! r8 ?# b, ^
( U) T; }! |2 R1 C+ Z5 A 03.jpg 3 R, n) s6 c2 m+ ^6 K# C
: P# |/ a3 O$ z6 ?8 @: r
Schematic(part) STLINK_V2A_V2B.jpg + @  o0 i' O& O1 o& B& o
4 {0 j. J: h, x" i5 ~, m. o- W
我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......
  j( i. e# [* Q0 Y. V8 ~" w+ e: \% K+ S! ^+ s2 F3 e% v! E
严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。
5 l& A$ ?/ n  M: q& g有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。
. i+ v( a6 }- g8 M! E" {
. s- a9 i" k  t  [  M
0 }+ p4 H8 _* N, `: K+ `" ?7 S' F. j- y) P

5 e# Z# H6 d6 L0 n

STM32F103C8T6_CMSIS-DAP_SWO-master20200509.zip

下载

3.48 MB, 下载次数: 701

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

举报

100个回答
radio2radio 回答时间:2018-6-16 22:48:32
本帖最后由 radio2radio 于 2018-8-29 11:03 编辑
! |" h! m# w2 a3 e" Q! A1 f# l
spmno 发表于 2018-6-16 15:305 {2 c% v) E' P" M* \3 v. m; {" v
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
- F+ O3 m" ]5 E5 B
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
% @6 Z4 C! L, t! N! ~
- o' N8 t8 Y7 Q' O, d重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。
4 c( ]4 V$ ^, [# B$ O( U1 k5 J$ g" m& @5 u; W) N" F! f
Pin_configs_1.jpg # `4 t$ P! c+ x! e7 J& w& T0 i3 W
- |3 k5 ^/ {+ b3 e  ~2 i
参见一楼附件,可以试一试。  t6 m! k- q) Q& J$ W' D8 n7 ~
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50
9 S4 k( w$ L. u) N刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
5 R6 X, `6 ^2 Z/ A$ K操作系统是WIN10。
( c- }# v* g0 [- e$ }用了其它版本的固件也不好用 ...

8 r( |* H6 Q# r% H8 S测量一下USB的D+线的电压,有没有pull-high。
8 c( F6 u$ ^7 C7 ^* ]' x3 [8 U3 r# _& B9 R
如果是驱动的问题,试一试附件的驱动:8 F4 k" H5 F% H$ V  c

- G3 P; X; S5 H2 r" H# S) A

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 296

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:41
0 g8 `& g8 I# h# }' G. b好像不起作用,感觉不完全是软件问题,会不会和固件也有关系
% ]3 p& ]# i# c! t* A
也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。1 h2 K. Y- X8 ?* [8 Q. R  M

% Q' E4 k8 r9 f& @; Y坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。  P# U/ M3 ]6 |. V7 R# \
0 a# n$ }, A5 O$ @
我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。
$ m: R, K1 |) u) m6 P
( D# x$ ]4 I1 ]- f4 L7 _, ~  ^建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。
2 c  w* F7 l+ h5 e. P. Q再就是,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 编辑 ) O$ F! H+ Z" h: k$ V% S0 T

- K' S) @# y: F+ t4 y+ b刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
5 m8 A7 \' H2 m+ {$ \+ [7 U6 S6 J操作系统是WIN10。
0 w" @7 t: L! F; ~3 Y# C: Z用了其它版本的固件也不好用。
6 j/ }/ d  D1 g6 Y1 ~+ R
/ Q; B/ Y" X# }0 T
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:598 }4 A! M, X/ ?2 T+ m
测量一下USB的D+线的电压,有没有pull-high。
4 f& R) i3 ]- r# s
# q  }* x6 T9 @4 H( w  H9 X$ H% U如果是驱动的问题,试一试附件的驱动:

( {4 }3 d& m8 }" |* d, f多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:22
3 {3 V. k  @8 w# h/ |, h+ C8 p多谢楼主,我这就试一下。

8 {: ?0 E1 ~& A4 o8 O* V5 zD+ 3V$ U( s& Z7 ]$ A, Z# W4 j! ?6 ^
设备管理器提示:未知USB设备(设备描述符请求失败)。, H" u4 B% w+ Q0 \$ O# M% s
更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑
% V) A" Y+ {1 J7 F; f
spmno 发表于 2018-6-13 13:33* y7 Y5 x& r' y: ^- p, M  I
D+ 3V; _8 _) q. E4 N) n
设备管理器提示:未知USB设备(设备描述符请求失败)。/ h' Q6 U5 r$ S8 n2 L6 ^
更新驱动也失败。 ...

: N2 X4 h5 j6 F, N9 _这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:47" Z3 Z% W4 f2 \* `* N
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
& z/ D3 c, \( y5 s$ S
好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47# g/ u/ d, J9 H3 S0 v
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
) ~/ {% V& \5 z$ G1 u, R2 f
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48/ d! q2 d! ]8 ?* i) p& O3 U$ S. ^
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
' P! O% J5 {, ~7 a
6 H% h1 V5 a9 q' X4 Q重新 ...

% R' U; j4 I% c; b; Y4 W好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53
0 [1 m8 z7 Z5 o4 K好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...

3 w; ?6 c" a& [  i, r不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。8 n: O& i5 N- M. x! O  ^
原程序都是用其他GPIO的。, n8 Q; P9 e' @9 V$ o# D( H/ f) n% c# R
8 B6 Q* N# ?- t% K, L! s+ w
下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50
2 z7 i" z3 t+ P" ]+ z8 l/ W# t/ f不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。
) D: P8 w4 O8 o+ n% w原程序都是用其他G ...
, e# u" t$ [, D  e$ Q; H: d1 L) |
嗯,说错了。是CMSIS-DAP-STLINK的代码。8 }5 p0 x$ s, `; i
使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版