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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。
' {8 S4 U$ x/ G6 k9 N2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。
, T1 L+ M, K& W. Q# O2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。

3 H5 R' t/ j4 B0 t, e7 K+ |2019-12-24重要更新,速度提升,功能不变。- U8 s& V% X- h0 z1 }

7 I" k  v/ B" c' m' ]3 h
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO( O9 W+ o! h- H6 T; V4 m* u5 T; F

. M6 S( j  W$ i+ n+ \, i-----------------------------------------------) C+ P2 ^& H, i) T, e5 k& q- ~
为什么要改CMSIS-DAP / DAPLink,也许只是好奇。5 `- H, @- r3 z' _

% f% h7 S! k  B  a2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。
" H9 |% P8 [" c. cTB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。
4 S, T) K. ?* e3 y, M如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:$ |2 h/ H, u) X- \8 p2 O
SWO ------------- PA10。
3 `1 S" `7 D) R+ M  |+ jCDC -------------- PA2_TX / PA3_RX(USART2)。
8 r& s  S0 {* E5 _--------------------------------------------------------------------------------------------------9 }+ i4 o( c0 y. x6 {( u: N! V
: `0 Y9 n4 m. g) u7 G9 C! ]! l3 B+ Y
上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。
; i5 Q- E% V+ N下面是其中两种:( `. ]4 G9 P$ {( Q- |9 v
00.jpg ( Y6 b" [# p* z

$ W, D* C% b: G7 Y( ]3 |
* h! D: g* n3 a) n8 K  y而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)
( @0 a& a) I, B6 N9 A$ W$ A 01.jpg ( `. P  [1 R7 ?& ?' F4 P
' I- f( u0 A. q* [6 t: I3 V  c# D
下面把改装的情况,用图片说明。# l- C8 N; M' @& {- N. }
02.jpg / {, v# s& ]+ Z5 [) y. B

" G. d4 P3 W& t  x+ d- t- w 03.jpg ' z7 l% I4 y; H, t

) b- b' x/ `* q, R* d' x1 v Schematic(part) STLINK_V2A_V2B.jpg 3 G# I1 M( @3 W8 r- ]! x8 ^

' E& K2 E6 Z6 A) l! g5 k我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......& X( c+ y- j9 y( O

( E( \: ~1 h+ t( \! T3 b: y1 U严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。; M% F: \6 r* ]) ~( J
有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。
7 c! i  N% ]" w* _5 H3 N4 V" R$ S( L' q7 \' n0 J

4 Z; Q: A( K3 ?( t) r+ }
& `% U& u, g8 F, n7 @' j# X
5 N( B; ^' z* N( F* \& V0 _

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 编辑 " \; Z7 k0 E% @
spmno 发表于 2018-6-16 15:30+ b! y( Y' V6 v6 |6 V9 G3 u
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。

' i  n/ {; C8 b* i  R( w( p今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。' X' w( Z1 }; k0 d: q& `( v
6 Z4 b8 q3 v$ R. C  V
重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。6 ]8 e( {1 n8 p" I' G6 i/ n7 r: A
' \. K) A7 X3 ^+ `' `& ]2 [
Pin_configs_1.jpg ) o2 R9 t1 l$ V; l

& O3 u; H1 H& \3 b+ {9 D4 s参见一楼附件,可以试一试。
+ b0 z: ]; H) d
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50
$ }- n: f! Z9 q( f$ q- H( o% L刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
- }0 \6 e6 n7 k* D7 l操作系统是WIN10。9 B, X! q) M: w  M( h
用了其它版本的固件也不好用 ...

* e% h) o4 Y# D' f测量一下USB的D+线的电压,有没有pull-high。( ~5 j; M& Q, P8 \) a- Y9 `

% |3 |& W0 q/ ~+ T0 e4 {如果是驱动的问题,试一试附件的驱动:7 e' s/ c4 d' L& Q: z( c

! i1 ?) F+ x& h/ ?

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 296

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:418 k) J2 y2 D& q
好像不起作用,感觉不完全是软件问题,会不会和固件也有关系
$ B2 I* ^, O* }6 b1 |1 q% T
也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。' H! O- K  M. W9 E
. E5 Q/ c, D8 G3 q6 f
坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。, U7 ~1 k0 S7 G! g9 p7 n6 k- S) j

5 t/ w' w/ n  p5 @  S我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。) c1 U! j! w% l% P6 ?% Q# x

3 R0 @( E1 d6 {; B$ B建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。) W; ^' m: Q: e* k2 ]  g, D
再就是,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 编辑 + W- x: l  x  l' u: w: J

+ w1 a' A6 S1 {  g" }: D9 j刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
9 S9 h2 l  ]0 R( q  |操作系统是WIN10。
: O& I( t# m% l7 v2 c用了其它版本的固件也不好用。
3 y$ s; I' I% g% t: y$ S5 |: T2 s( S5 _6 _4 r" N% V& @/ S! Q# t
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:59
9 s6 ?4 f1 e) ^  ]1 [, [* L4 X, ~测量一下USB的D+线的电压,有没有pull-high。+ E5 P5 K" K" E( h! C( `

4 N4 a; c/ V5 Z; U, S如果是驱动的问题,试一试附件的驱动:

! C! I& n3 l* L' c1 F" P5 @+ u多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:220 D: M2 a# F$ z
多谢楼主,我这就试一下。
" `4 t7 A1 \& k& T9 {. a
D+ 3V
& [/ T) q  P9 R' \4 I0 X1 I设备管理器提示:未知USB设备(设备描述符请求失败)。
" ^6 m7 |/ `7 T( n# G) `7 n  }更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑
, I0 b3 G2 b! g* w! |, T
spmno 发表于 2018-6-13 13:333 M8 f  X) O" j+ n( z. S' N
D+ 3V7 C  n$ P  X$ n& t8 @# o
设备管理器提示:未知USB设备(设备描述符请求失败)。0 k2 o: [; c* k* J; [
更新驱动也失败。 ...
2 a) _& W" m3 o+ q( t
这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:473 r4 W/ I1 u* K: p2 J: B
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...

, w3 s4 r- K/ P9 n" I: P好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47# i- S- K9 Z/ ]9 {" J& {
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...

7 S% g' f- g; B1 y. j3 f用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48
! u2 O# l. _" g今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
4 P) @* R8 x& @- t
% h1 q' r- ^6 Z( ]& g: X! s& K重新 ...

! m2 q6 Q* Z2 e# e7 L好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53
( l1 L4 H3 p3 d* X- M) H6 q" x* b% @好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...
  @+ m3 h& Q% W; P  z/ T
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。
. J2 E7 J2 w: ?- ^: C" n+ ?原程序都是用其他GPIO的。% {! {9 H0 ^5 n- C

; d0 A  s2 C# U! B) l" m( R3 b: a下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50
0 v# v% Z5 m1 t$ o不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。
/ c" f2 [8 x* o+ ?8 ^原程序都是用其他G ...
/ k9 @+ H& Q$ b# q4 j2 `
嗯,说错了。是CMSIS-DAP-STLINK的代码。
- M6 M; P3 U( Z! Q使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

相似分享

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