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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。
# j7 Z4 n4 E) j3 ?( j+ H2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。! R2 {  W  {6 ^% Q3 E) a, A
2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。
( ?) i0 W, r8 \) p6 o; I( h
2019-12-24重要更新,速度提升,功能不变。& g8 \% ]1 T, ?6 O  ]& R+ c5 k
# \' ^- N0 y1 @! O* I
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO  `7 h7 N% F+ u( @4 D

" p+ T3 l9 c# t, M2 J+ z-----------------------------------------------
: R- p; Q& D" K, ^7 D4 y; Z为什么要改CMSIS-DAP / DAPLink,也许只是好奇。# \  A) Q: d. l( J: R

; \. r3 k+ C0 q5 S2 B/ `( O$ O2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。
8 v9 U2 m& s& e/ gTB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。" n6 L9 V5 c( H/ X
如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:: k# u0 N6 n$ W: \8 Q+ |+ E! K0 R- @! ]
SWO ------------- PA10。( t0 T; y. g6 |$ E" T) Y" V
CDC -------------- PA2_TX / PA3_RX(USART2)。
( {  ]$ T6 L& a" ]% u2 N/ q7 c' F. Y--------------------------------------------------------------------------------------------------% d& @" {/ _. Y  g' b! Q
" _$ E5 `  z6 v' Z; U1 e
上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。
. Y9 b3 w; |. i/ \, Q0 i( K: a下面是其中两种:
8 {2 f* w1 Y: l* f5 O# d 00.jpg
& H  C) ~" S* t9 u9 f* d, f  K0 N) N+ |4 r
3 ?; Y0 e+ d5 r4 Z
5 J' Q0 Q. w  H  I/ t4 `2 `而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)
( `. M; W0 n; Y6 A 01.jpg " r( p4 a: L# ?3 W
8 z3 @/ l8 e: K* H1 }- C7 M
下面把改装的情况,用图片说明。, s* z7 o' E4 J1 m8 [0 N
02.jpg 6 C7 @; H4 x- W# Y. P' T6 {
  d+ S  y, \% F, {1 D# T
03.jpg
/ \. _$ f& U% @' o8 j1 \# D- T: @$ R4 \, T# R4 A( ?
Schematic(part) STLINK_V2A_V2B.jpg
# S0 s# J" G. R: G4 w4 Y, z
( f7 m& g; ~, a* G0 d+ @我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......
( A& Q, \0 y  A6 b* q" k4 U" n# [4 c) C1 X
严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。& I" ^% y6 j. a9 z: l- }/ y% x, u% Z
有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。5 ]2 W2 `" f. C: _9 w# I$ |
4 g% r' b) x  V& t6 W

0 z7 @/ \' W9 m: W+ n( a+ w1 @4 S2 i. Z# ?9 }/ C7 K( _3 ~6 d

7 v5 ~6 ]1 w0 u( i

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 编辑
) Y$ P  |4 Y% L' K$ E# J
spmno 发表于 2018-6-16 15:30
9 P$ q  ?& N/ _5 Q' h. M用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。

5 m# J, D7 ]; J( M) p0 E今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
3 s. P- L' N- ~9 i8 P6 ?; M2 A2 L" G8 o
重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。. X& l# n' [/ {$ H4 V! U
9 U- k. A  s+ r+ W
Pin_configs_1.jpg
6 M& |6 Q$ n9 e% \7 L2 ]0 z2 B3 ?, _4 j' d
参见一楼附件,可以试一试。. Q$ E- s6 g& D) K# N% v
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50/ \0 w" e% a( D- w! g/ r
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
$ B+ e: u" |  b3 q操作系统是WIN10。3 d) F4 E3 C; }2 @  H# a( }% _
用了其它版本的固件也不好用 ...

# a  V5 }$ q# I测量一下USB的D+线的电压,有没有pull-high。
; L: |) w( ]1 ~0 @" F
" a' C6 c8 }, ]# @2 j# v3 R如果是驱动的问题,试一试附件的驱动:$ G: b( y9 b0 C

# M4 d1 f4 h% {, v6 {/ U6 O

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 296

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:41$ [6 B; |( }" e: v  J
好像不起作用,感觉不完全是软件问题,会不会和固件也有关系
+ H7 X9 G/ v) {- h& ~
也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。
8 X- y8 W* ~+ ?. \+ z- |  q) ~* Q( x* G1 C  j7 \" h7 o; ~2 h
坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。
( D* y: [) h+ b# e
2 @7 B! |' C; Z5 N- m" V  w我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。
. b* K" A  a+ H8 l
* H6 t5 g5 X) V4 |! ]* l建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。! e$ Q! M9 Z. z7 Z( b' [  N0 a
再就是,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 编辑 + d* c1 ]8 X3 e3 i
( D' j8 M. O8 m- j! f
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?8 C4 Z; G8 ?/ ]  ~" A
操作系统是WIN10。
; G* v0 K& F' T! Y用了其它版本的固件也不好用。
# n  b; V2 d. T7 h0 u  T& P
2 _; z0 A' n6 K7 x- t8 v: l
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:59. [2 s+ X( D; d
测量一下USB的D+线的电压,有没有pull-high。0 s: [" e5 W9 o) M5 }

* O, h! g* C4 m' X; M, r7 z如果是驱动的问题,试一试附件的驱动:
1 o1 r7 z* ~" z: f. i7 N6 U6 `
多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:22
( a9 R( j. L/ m* B2 a. n9 [多谢楼主,我这就试一下。

. L( m) a1 {4 z. J3 r2 c7 |D+ 3V
# X4 V; K- o. d0 A设备管理器提示:未知USB设备(设备描述符请求失败)。
7 v$ |& l1 r$ }( |4 ~更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑
+ Q/ ?# y7 U4 j
spmno 发表于 2018-6-13 13:33# X* A  A6 s8 k; O+ ]1 c5 J
D+ 3V
. p8 v- _0 J) ~# b设备管理器提示:未知USB设备(设备描述符请求失败)。
4 x6 A% }9 I! J( }7 K更新驱动也失败。 ...
( ~( e# p' D+ F" Q. D
这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:47
# c; h/ M4 B$ f! l$ F8 J这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
) ^3 l2 l5 y) y: [( d3 s( g
好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47, |$ s) t9 F- o- S! r
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
4 J+ t: \: f' A& M- k& u
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48% m! R( O- `# j! R
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
, N5 z2 {% p* G5 p# ^- `1 r& M% S* F
重新 ...
( _  ]/ r) {* _- U: ?( e2 U
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53
2 a* }5 p3 N5 k0 W  s2 U好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...
' G6 i8 [3 ^  T$ A
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。) q& ]  k, ^: D' m) ]5 I$ U
原程序都是用其他GPIO的。2 \0 u8 z8 D, @8 i9 h  }0 \
3 h! e+ C% Y$ U$ t& R6 @
下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50, u3 ?) R5 d! l
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。0 v5 i! i+ p1 e$ f; A6 W( d
原程序都是用其他G ...

" A4 b- ^9 e+ ^1 i6 X( F# m嗯,说错了。是CMSIS-DAP-STLINK的代码。! R% F* |# F* x; _: N' s- u
使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

相似分享

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