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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。/ v9 D0 Z9 j, T  L0 E) W) O
2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。0 i: `; k6 K& D2 x# o. y
2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。

0 G7 W) ]- M0 m, i- a# g2019-12-24重要更新,速度提升,功能不变。. K. U& p, q2 x3 [

. G8 a& r( A+ {6 G( E2 l
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO1 {$ n/ d2 X4 k% o  N% x9 M3 b+ P9 P
# s2 Z* C8 f6 U! [: j2 J: X0 [
-----------------------------------------------3 n2 J$ A0 V, B' ?
为什么要改CMSIS-DAP / DAPLink,也许只是好奇。3 N) r" x6 q- X
# Y& x. @/ F6 F
2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。
! @. e* p  Z7 z; HTB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。
" a: j3 Z% D7 K  U/ C6 J如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:
/ ?: b& b3 n# FSWO ------------- PA10。0 |( X6 C2 |- T& B& F/ o* O5 N1 v( |
CDC -------------- PA2_TX / PA3_RX(USART2)。8 H3 [$ O1 d7 _5 ~, k* u
--------------------------------------------------------------------------------------------------
3 ~5 G! M3 `- Y# _# U; u0 a
2 v" |* h  c3 J4 X1 A2 H; J. |& C上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。
3 \/ Z  _# c! M下面是其中两种:
+ z) w7 O. G6 ]0 O( u' W 00.jpg
, M% n& s" i+ Y1 N/ |% X6 |# `) b' V5 I9 ?

* Z7 @# j- L$ a6 o" }- D而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)
3 z9 `" m! i( `" L# _1 S7 M 01.jpg
8 ?. o( X0 X0 U$ a* y
- p0 o& K6 A& R7 k( e下面把改装的情况,用图片说明。
/ t, T1 i, D: S4 H" C$ f+ @# C 02.jpg
8 U; F7 U3 ]; ]" d7 ^/ d: }4 }6 a" d" [! j/ v$ J( @4 f
03.jpg # n5 M1 s$ F( J: `$ z; e

4 ]& w4 U! J* E' M( L% C' p5 n Schematic(part) STLINK_V2A_V2B.jpg
0 i) A8 V( K- L6 @% T0 N8 ]* j: j$ T5 _  }! ^' U+ o* z, j: t) w
我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......
4 j" q+ s1 p' P) [+ C1 }$ t+ y. d
# z! V, V* i7 A; n# S2 K严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。
) R- }' {: L8 ?1 \. J6 ~# |- ~有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。; S6 U# @9 j1 P8 ^: T

$ b( q5 [- }0 q1 I, Q, u$ U/ ]- N! Q; l% s! F0 k
* V% O  H: b* o. w  a, f  Y: b
. w& {; R& @7 B' Q. U+ U) a2 m

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 编辑 3 b+ O6 x. Y% G
spmno 发表于 2018-6-16 15:30
3 |. F( f/ {' c) l9 x用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
  a1 u1 o1 c( |( t: {0 y' ?
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。4 J/ F8 ]6 k" j2 N% R5 i/ B
) Z6 q; l, b/ ]7 q4 {( Q
重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。
1 u3 n* |! r% e0 R: A; R( [3 O! H; t& y/ f8 `! O
Pin_configs_1.jpg " e  C1 H/ f6 ?/ f. b0 b
" ^3 G1 e* H3 L- E( l
参见一楼附件,可以试一试。& Z9 T, U6 d3 f. X
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50! N" _  m3 L" n8 g& `$ O2 D2 x
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?" e4 \1 u* Y+ ?; s! l2 d' @% j
操作系统是WIN10。
+ O7 T+ G1 O. d用了其它版本的固件也不好用 ...
9 a2 A% x3 p7 b8 s+ Q8 u* B+ p2 O
测量一下USB的D+线的电压,有没有pull-high。" \8 ~2 Y7 Y) v6 ?
  H; j- b5 _; {, l
如果是驱动的问题,试一试附件的驱动:; Q/ U' }" @/ e, }) s( A$ s" y

% F% y6 T4 X  [

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 296

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:41
: t7 ~" r  ^7 @5 K" N% e好像不起作用,感觉不完全是软件问题,会不会和固件也有关系
# b5 x: z3 G+ f$ I  ]
也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。3 `  g1 d$ F' w+ t9 C

& Q0 X5 q- z8 Z6 U" T0 F坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。0 ^7 t" J' L5 r3 g
3 c0 w& m6 c% j4 f, c
我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。4 x$ C3 b* d3 n" f. [: y9 f- L- E) Z

) e$ \1 Z) s# O: n0 s建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。# l  p, |& E6 B) s: ~
再就是,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 编辑
6 ^% G; `+ R: [3 h$ Q" z4 F! ^
/ e( r; K1 e+ E刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
% e  x6 [' r/ [' u' m0 W. F操作系统是WIN10。
) ]0 |! T4 [  _5 ~5 F用了其它版本的固件也不好用。+ ~2 ]3 k8 K8 V, c; H
2 R$ V4 e8 y/ F  R( m( d
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:593 q; y( V; f; G* D! L; w
测量一下USB的D+线的电压,有没有pull-high。6 w. \) E. g; J
2 w2 s& z- Y' P( o" i
如果是驱动的问题,试一试附件的驱动:

& }$ L# E" z8 A, P2 M多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:22
/ e, }, L  |0 |0 j" Y3 G$ r% ?多谢楼主,我这就试一下。
- [5 \$ d) o* G4 ?3 c& t
D+ 3V( n4 s2 g: \7 m6 Z  o
设备管理器提示:未知USB设备(设备描述符请求失败)。
9 V* \+ o( {4 k! s, q" p( H, S- y更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑 + X8 W/ z+ ~) ]  \8 T/ l+ _
spmno 发表于 2018-6-13 13:33* a/ F9 U, q& ]# [' {7 \
D+ 3V
* M- Z( i. O# O) p设备管理器提示:未知USB设备(设备描述符请求失败)。
4 o: u  g6 u7 R" K) c更新驱动也失败。 ...

7 s, V( d) W) r  u这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:477 K4 _& \' U, e* D) T
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
. N; D4 B0 b5 R$ n$ T" r
好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47$ k" m1 i( Q' E; j: c
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
4 z- o( F$ i$ ]; d- ?- N( {
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48
0 Y9 G, X7 y  q9 c* ^, J, P; S今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。3 H' Z) |) D$ N( V- f$ m* J

% k2 s  u7 J3 `8 n4 Y7 v5 }重新 ...

! |' ?3 I% q& ?2 q好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53$ K6 q% P, j' U4 g! J8 ?+ t
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...
" c5 [# ^' W$ S! X: W" J' M
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。/ Z' {- M. E; M9 {7 i
原程序都是用其他GPIO的。, T* l. v0 k; U0 n" S* ^

; X% T6 ]0 f6 l* q6 h下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50* d* X  j; N/ H1 X
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。
% N- d3 n# O/ U8 }$ T, J原程序都是用其他G ...
5 `2 X( I% O8 R# R  i
嗯,说错了。是CMSIS-DAP-STLINK的代码。4 |/ O- ]6 }1 G4 M0 m
使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

相似分享

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