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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。
% V$ k  P. H  I* H1 s; Q# c2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。
. g. E1 \5 h' }- I2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。
* H2 Y9 \  A& ~+ v
2019-12-24重要更新,速度提升,功能不变。: _( ~% p* v! x4 ^+ ?. J

# h7 [: q3 Z/ z5 M5 S5 M
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO1 ^  Q0 X6 h- S! Q0 U

. a; k& L7 I: j5 ~-----------------------------------------------7 S; ~1 k  G" E+ M2 `. u
为什么要改CMSIS-DAP / DAPLink,也许只是好奇。0 w9 i5 F7 [: B5 o: E
) G( m: y; n4 D* o) [+ a3 n
2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。
( _  R- g5 j( ~7 M. m7 ITB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。
+ d" w5 y; y4 e5 G2 J  b% P如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:# w9 ^7 l) J2 M3 L/ H; `
SWO ------------- PA10。1 K; ]9 D& A7 F) T& A! D
CDC -------------- PA2_TX / PA3_RX(USART2)。3 H$ _3 j- k, j- D& j' n3 m$ {
--------------------------------------------------------------------------------------------------
* e9 L/ j5 W' B3 L
1 E+ p/ z0 [* g: c7 H& K) ~上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。
/ i1 F1 I" ?$ v( E* X  i下面是其中两种:) C: M3 L7 R8 _+ S
00.jpg ' y$ h" t5 L8 J6 }1 ], \8 b6 R" c

( g; s9 w/ p# _0 G0 k- `
: l+ F/ N2 M0 [) T* S6 [# F而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)
: C  g+ n& y6 c7 `; m: U! @ 01.jpg 8 I" S5 K, F7 o) T6 @3 Y4 m; t

+ V/ H$ _! [4 {下面把改装的情况,用图片说明。" I( \5 J5 }1 p
02.jpg 0 r1 ]. y; X, S) V) @1 V

6 {8 ~! }  T% K: o3 x( v7 `  d9 w 03.jpg & s0 u7 c/ N: Z5 [
0 r1 L9 ]2 H+ j
Schematic(part) STLINK_V2A_V2B.jpg + |7 [' ~9 m, I& v. M( Z2 {0 x
0 }8 n# [0 k0 H+ t- _) m
我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......% @, O/ G: m7 u% E1 z: ?" q
& G" p( \' k- \, F( X
严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。$ y0 f6 H: j9 J& b0 @" D% E+ B
有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。" W  E4 w2 t8 n& D

* }, |' U' I7 q& I4 ]
$ M8 \5 {2 {' P; w6 b
# |9 V9 n' |  g0 {  r9 ]
9 }) ^0 S1 H6 u! z3 q, 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 编辑 7 R; L* s- p+ H8 i  s
spmno 发表于 2018-6-16 15:30
6 T  H# D( m4 P6 n/ E' l. Y5 a# S用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
% k/ |* B# _) C/ H
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
- p  r8 _( d! s* m- l9 C8 s2 C
, }  F) F) G1 O" T4 \+ d重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。1 N5 k3 v. a( Q9 J4 y2 s

" ^) w* T7 p6 o* I4 E7 ] Pin_configs_1.jpg ! N( a, z5 o1 Z. z; K) Z3 G
5 v9 F1 v# `: R8 t3 U7 R: p* v
参见一楼附件,可以试一试。
0 X2 Y/ X4 p3 _1 b  ]2 r2 x; B
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50
8 |& I; e' |  c  W刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?( O5 _" l/ j  b9 o
操作系统是WIN10。# G& E' w6 [& ], }7 m
用了其它版本的固件也不好用 ...

. K4 v9 C, W& \1 H7 a' g测量一下USB的D+线的电压,有没有pull-high。# ~3 a* `2 u; W

1 m( u# l' E$ _  v  {1 E3 c2 X0 i! [" k如果是驱动的问题,试一试附件的驱动:
2 G* k: Y3 O6 \2 S0 R- l
# Q+ ^* ^8 O8 z/ P5 G( y5 o, Z4 t

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 294

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:41
' y3 `3 A! L5 l& I& d- R, O: V# L好像不起作用,感觉不完全是软件问题,会不会和固件也有关系
1 B; t3 l* Z' ^; C4 P
也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。
; R' e" C5 t6 c
+ Q9 k8 f' c5 |, [3 D坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。1 |: U8 i/ H( R
3 V3 l4 i: I9 I, H) `2 O
我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。5 f( k2 a: K( u+ C  f( Z+ h& X+ `

- S  ?. F5 _; d$ Q/ W建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。. {1 Y* c! _/ d  g2 K% b' X
再就是,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 编辑 : H: S8 R1 L) x/ j

! l: m) ^. F' X$ s刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
+ J1 W9 r# L4 o操作系统是WIN10。
9 J6 f$ K5 {$ l2 N7 @  |用了其它版本的固件也不好用。. X; b. @/ Q+ V& X) q5 \9 i

, ^! A# \$ Z3 ~. h$ A5 v0 k0 e
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:59
$ b; k3 E2 y; p: I" j- j8 b% V测量一下USB的D+线的电压,有没有pull-high。" D1 B& ^! v3 @: l/ [

" P" r! J" e7 P) o# f- a如果是驱动的问题,试一试附件的驱动:
& K, ]! G$ @9 R* g- d6 X/ _
多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:22/ [. ~# i! |) j& s, v
多谢楼主,我这就试一下。

# B2 W5 E# a8 l. \" L* \D+ 3V9 x8 p6 a: b1 |, m& c
设备管理器提示:未知USB设备(设备描述符请求失败)。8 d% p0 E. A& D0 B" g
更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑 $ h2 r, X: n/ ?* b; X% ~  f
spmno 发表于 2018-6-13 13:338 z0 `/ b8 {7 T2 \- A- t6 L& q
D+ 3V
' w4 `, A4 _) ^7 V8 t+ L* x设备管理器提示:未知USB设备(设备描述符请求失败)。
6 [7 P4 f- K. L% {) w更新驱动也失败。 ...

$ R+ _; J% P) D) g9 m( ^这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:47
. D  w6 R5 ]5 {0 @* r) X这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...

8 h" V( j  ~# o& _好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:472 d' L+ W9 A) @8 d. g2 [4 F
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
/ N! v% @/ [/ ]7 O, W( j5 Z
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48
& ^4 C- s6 y1 Y) A2 [/ D! u8 Y& G今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
' i- p. k  c2 S
! D# x2 w* l. |  q+ Y) y/ R重新 ...
% G4 r2 W: N* g0 X5 o& B7 ?
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53
- {1 b) ^* L, Q9 T好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...
  y! f) c5 X+ Z0 V0 |$ d
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。$ G$ P( [( x; \3 s, J; l
原程序都是用其他GPIO的。+ D, W6 i, o4 [

0 ^. j' Y) `  s* o7 d' Y1 y. Q下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50
/ h& l% O! Z$ X5 K不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。
: o- V" N6 W* P- j% i原程序都是用其他G ...

1 y" ]8 b% ]# q& Z' j) B; ~嗯,说错了。是CMSIS-DAP-STLINK的代码。) ?5 S9 `; a2 R, y" O! }# h& O
使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

相似分享

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