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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。% K; P& {6 o9 A2 a, o: k
2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。
" y- O% r! G  F7 @& ^$ [2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。
6 e# \7 P6 f; ^$ D7 X0 l6 ~
2019-12-24重要更新,速度提升,功能不变。: H, Y" d; Z& \& B

  Z: i5 V* {3 M; X* M
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO
, q. @. h( e/ F& b7 o$ ?
) `5 e& }6 K5 H2 L: I-----------------------------------------------! K8 g+ k; H- ~( @0 z) L1 Z; x6 f
为什么要改CMSIS-DAP / DAPLink,也许只是好奇。! b3 m5 A" P! t
* m; Q+ F( m3 j1 G$ B
2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。) E2 g% N1 d; A
TB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。2 s7 G6 K- f$ m- X7 `8 S
如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:! h8 w2 z  J' w
SWO ------------- PA10。5 R3 S& v* j; r5 O+ o1 q4 h
CDC -------------- PA2_TX / PA3_RX(USART2)。. S! F8 m/ n& n6 G/ g
--------------------------------------------------------------------------------------------------' _+ v! j3 E1 t2 E. J9 ?  v
! f: d7 ?/ c+ X
上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。
9 K% V+ r9 z+ _( C6 f下面是其中两种:
; [9 t! p1 A, I" P9 S 00.jpg 2 K/ U% G& s# a& b

1 c6 ~- x8 D2 K
" T7 Y, u6 c& C" C- J而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)! S3 @. {0 R. n- F  Y4 D
01.jpg
3 g7 d0 R- q/ V9 Y' B5 C9 D2 d
2 _  u5 W& A) T/ w- ]下面把改装的情况,用图片说明。
" Y+ g4 F! u! o" I4 ~$ Z) q 02.jpg : J" T8 n+ Y8 @$ S4 f3 l
( G, ~/ {7 ]. I) ?9 o7 o
03.jpg , R! z5 @, U4 n- u, B

' q7 ]9 O; H7 t0 v# v. P Schematic(part) STLINK_V2A_V2B.jpg
1 l# k+ M2 Q9 X! `! e3 u
8 {' q! d, B. x! P# I0 x我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......$ Z/ \; B% Y* u! \$ J" [
6 e$ w& ]3 `2 o
严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。
( k* y+ T# B' \' w有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。+ N0 ?7 o& B7 I( a9 L$ D# l
" j. d/ D$ v  u4 }( E

) N& C; e+ t& j0 L" _/ H6 K
# U" s0 K' U/ r/ r, w& J# P# [: k0 X9 R& T- s3 n; H8 w

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 编辑
) |1 R4 W/ b  @4 K  d. e
spmno 发表于 2018-6-16 15:30
" x8 F9 p6 |8 C4 X; I用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。

  n+ z0 A, x' F* T4 y, h今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。' M: I9 L, Q5 j. `9 U
4 D7 c: ^; I& Z. P  D
重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。" z2 S/ \6 `0 Z6 U2 e. P, m
3 J: s' H! J- I2 ?% F
Pin_configs_1.jpg 1 r: J6 y6 T2 R% @+ {+ U
6 H- @" b0 f' \
参见一楼附件,可以试一试。
% [; G% M% s6 n3 \
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50
7 g4 H* t" n* K8 P2 U刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?. J. h6 C0 v9 r' o( V
操作系统是WIN10。4 U; K( L, l" u1 ~/ F* x
用了其它版本的固件也不好用 ...

$ F8 e) A+ o$ y5 {5 s, B3 W测量一下USB的D+线的电压,有没有pull-high。7 d( H' R9 ?! _/ Q/ r) Q" t+ Z
: m$ `0 W) M( F( o, k
如果是驱动的问题,试一试附件的驱动:  d) D' l- N  g0 H8 `! v1 ^& O

  y' L% s( g+ b! X7 X; g

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 296

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:419 N& |$ t' K; K# E/ S
好像不起作用,感觉不完全是软件问题,会不会和固件也有关系

( I! ^' a3 K; d9 W* f9 ~& k也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。
5 t7 E; l4 {/ r
$ _! |2 p  e+ P$ Y* y; k& z% R坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。$ u6 I5 i1 @. O* Q
' O! Y6 y* [4 A/ ^3 J- T
我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。
$ h& r+ A/ ]  K/ X4 r* y3 P$ F. m' _# D; x6 u/ e1 |
建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。
* ]; P# c: a" \. P! Y再就是,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 编辑 0 U& B* G. e: \6 x2 v
* v# H; B$ v: {8 _3 `
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
/ M; t$ a% C5 R" g操作系统是WIN10。- ?  K' ^. o: D/ \4 c
用了其它版本的固件也不好用。
! [& v4 h  {& `* I. T
  _& l5 ~. q* j9 g, b2 C
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:59; v6 c% `# W$ L0 e& w3 D
测量一下USB的D+线的电压,有没有pull-high。
0 d) q- v4 G- O5 p8 ^7 X1 o& [% T( P# d& }5 Y* K( G" K- [
如果是驱动的问题,试一试附件的驱动:

' a4 Y1 s* t* \( ~* }. G- ~/ `多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:226 i1 T, z! W8 O
多谢楼主,我这就试一下。

7 O! t4 f$ T, S+ ~$ J- N( K2 w% g) CD+ 3V% _6 D/ b' p  W2 c
设备管理器提示:未知USB设备(设备描述符请求失败)。- b: p: @2 j: @% U/ n
更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑
& K& ?7 N: X0 B3 ?( U% E
spmno 发表于 2018-6-13 13:339 i' C* O+ j7 V2 i5 K& t: }5 A) @
D+ 3V" O# s. ^4 x& R# X0 Y
设备管理器提示:未知USB设备(设备描述符请求失败)。
7 k/ N& e5 H! z8 m, L6 G更新驱动也失败。 ...
0 d; a5 [" |( x4 e! R& W2 w
这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:47
) f& t* E2 q. ]7 F; K0 v! P4 `; h这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
# E+ k5 {# z8 k, M; L4 e! ~
好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47* ~- Z$ E6 A+ K+ A
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...

6 K0 Y, e, w/ z' G0 a1 x; s* r用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48
) [5 }+ J" L5 H8 C; h今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。* `. O; s% P! B+ L% k: f
$ v8 j6 R* {( M+ f: M; c
重新 ...
+ F7 O2 a9 r' H2 b, K
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53
$ z: g0 M! d6 P好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...

1 z7 n( ?0 f0 R不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。  n' {$ O+ A- n# `* T1 ~. S3 ^- n5 Z
原程序都是用其他GPIO的。
' ?1 a! E( ]6 K7 h
$ L3 e6 f$ E. X下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50
/ @) t9 g2 x, o4 r6 z7 @+ t* d不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。; e! k/ n5 M' M4 T# `" B
原程序都是用其他G ...
3 n1 m. X; f  B3 }) D% a" p# C
嗯,说错了。是CMSIS-DAP-STLINK的代码。
( p0 e4 I, l1 c( R: ?使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

相似分享

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