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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。2 r) @2 G: ]$ ~/ i" s1 y
2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。
/ q7 N, r$ u* b2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。

' ?. T. R9 K6 B) M; E2019-12-24重要更新,速度提升,功能不变。+ L3 v9 u+ h: w0 X0 M+ s# B
$ r: Y8 W+ Q( q) Q  V4 O. f
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO5 q3 e* _" ~- s) I$ W- T# M
4 {) y  F$ W& @+ F0 \
-----------------------------------------------
0 @! i' X; h+ F为什么要改CMSIS-DAP / DAPLink,也许只是好奇。0 ~8 q" s" H6 e* O
$ h) `2 M" C7 G$ {; p1 g
2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。& g5 w+ D* y# i0 R6 h# o
TB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。
% Q/ V! J: [$ b4 S如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:  X% [" h$ q4 |3 ~9 Q" [
SWO ------------- PA10。& |5 |. R: W4 }5 R9 s& x  m
CDC -------------- PA2_TX / PA3_RX(USART2)。
; Z3 T+ y- v4 A: ~+ R--------------------------------------------------------------------------------------------------
  T: i! {6 W8 Z9 ?# m- y# X" N7 J. D# y
上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。
2 F: K) L* o" ^( ]9 }- o下面是其中两种:
( V- b+ G( i7 I, u- { 00.jpg , t3 u) h. v5 b  ^' G

. j  F2 _. D; h8 k( \  @7 W" e! _
而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片); T- c. ?& {& |6 ^3 u. Z% T
01.jpg
* W* I% n4 q5 o9 t. Z- V6 w& u" `( I
下面把改装的情况,用图片说明。
: o: c) g8 k. }; \: m# | 02.jpg
- e( `# u: Z) B8 e8 ?! s
  Q0 }% G( y! Q1 y 03.jpg
7 X$ J5 d/ ?1 D* f
' B7 F0 s3 S. _* t Schematic(part) STLINK_V2A_V2B.jpg ; d- W2 x. w  _5 @& D- O

' V( E9 o( ~2 i' {; P3 v3 P我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......
1 K( N6 ~: Y# v0 h. \7 B
6 @3 x/ y% n; b4 e. ^3 Z严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。
3 A* r7 \8 E" e8 z; I有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。8 z9 [( N$ J) {0 s! T7 e( W) K

1 [1 F( {# p& Z& ?' `7 q- ]% D
  O9 {' L" F  ]8 W0 Z2 A. f% j
: H5 I' J$ S" n& o4 f( ]6 s: U+ p1 a6 `

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 编辑
; C4 F' @, T# g4 F7 y! m
spmno 发表于 2018-6-16 15:30
; Z+ R, g, u$ h: ^+ z) F用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。

1 r7 B7 d3 d  D/ S今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
; K/ u& v4 C/ {' E
+ P# `5 [$ Q/ f' `重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。
& s7 E: J% \& B, }# Y0 }% u* b- y7 s0 _( }
Pin_configs_1.jpg
  z! X2 a! o) s' {% N" q" N) s! q2 ?
参见一楼附件,可以试一试。
5 u& c8 b9 u" a- O
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50; ~( M5 P" c$ N+ X. ]7 A. L
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?! F% L4 g, h9 H6 I+ O% Y
操作系统是WIN10。
9 W3 C1 X! o8 C/ B, f- Z用了其它版本的固件也不好用 ...

2 @: ]* w* U6 N, h) t6 W/ h5 q& S测量一下USB的D+线的电压,有没有pull-high。2 R' L) s/ o! k' R, J3 y$ u
# h3 a& P9 H- A" I: ]$ G
如果是驱动的问题,试一试附件的驱动:
) c$ P: z& h% B7 R3 z- o2 F8 X
2 J$ A, `# P( l' U$ B

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 296

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:41, E2 o* j* T, s
好像不起作用,感觉不完全是软件问题,会不会和固件也有关系

% C. y, O5 `; f# K: G也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。
! ]+ z, U( v1 b! r  m" B# }9 _8 ^  m( S+ L4 v
坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。8 b) ]* T" O- @  u+ Q$ ~* F. \
+ l, q/ P5 ]4 b# \
我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。* W" Y% l1 b7 h# `
) N% H3 y; \% G* D2 e3 q. A
建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。
: K; i$ {  A. N再就是,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 编辑 ' v, n. ~  Z: o; {7 ~: |
1 w! `& |0 D! g" \
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?3 b1 l# j: C/ i2 p1 y
操作系统是WIN10。3 t* m' X/ a' \; R$ w8 A( X
用了其它版本的固件也不好用。; e+ I( A& D- C/ N& ]
0 t0 h$ P. f  e6 x
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:59
8 Q; b% t8 o  N% c7 q( w测量一下USB的D+线的电压,有没有pull-high。
) W- a/ p5 a) C1 B# ^- M' }9 N& d+ F0 S
如果是驱动的问题,试一试附件的驱动:
2 c2 [# y% p1 Z( N/ n$ d
多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:220 O, D$ D! R/ W" `: x% |
多谢楼主,我这就试一下。
, o- _! P0 T9 [: k& v2 v+ S; V
D+ 3V9 v4 `  a* h& @& a
设备管理器提示:未知USB设备(设备描述符请求失败)。
' s  `  ]2 ?% v更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑
, ~3 z9 w+ p" b* r
spmno 发表于 2018-6-13 13:33
7 v4 `& l) t; G/ {, l" z2 s: \0 tD+ 3V6 T6 S5 @+ H; T( l; f' j+ ^! [& k( _
设备管理器提示:未知USB设备(设备描述符请求失败)。9 R4 K  ~) x1 e) s/ l9 G
更新驱动也失败。 ...

9 P/ ?4 i2 `/ H这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:478 C' r% |/ `; J1 o! c& t$ C
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...

. j9 m/ A5 w% G2 V  h6 u0 M好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47
/ l  I' W' t2 n; L4 Z, E) \这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...

/ g2 b. T9 A& Q6 G$ I* ^* \2 i: _用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48
5 n  d. b( i' Y0 L/ I# M今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
' \- B' X1 r) x4 |' k7 J4 x5 J" q" Q9 D* z& N* b. U6 ?% U9 ^
重新 ...

" u) z7 Q( k5 i$ k, z, x) e* t好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53
; B- v* i* m# K: Q0 ^好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...

0 E" A8 m, |0 Q! F不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。* K! m2 }% h# L1 s
原程序都是用其他GPIO的。% M) P" F. T4 w8 `$ K6 y$ Q

2 I% K0 ?$ E% v4 h7 h' ~下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50
7 H. V/ c+ r# K  U, N不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。! v, N% P) R7 @7 G- Q1 V) O9 ]
原程序都是用其他G ...

$ B& A% u8 ~( R2 L% S* T8 b嗯,说错了。是CMSIS-DAP-STLINK的代码。  i) G3 u0 D! K5 {  O1 n3 p
使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

相似分享

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