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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。+ n0 |: f' _5 W' z3 R, D
2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。
1 f( }& k+ C& H% L. y0 m! J4 @* {0 ]2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。
3 v3 B! s5 i- N) R
2019-12-24重要更新,速度提升,功能不变。( O4 B% G) G0 ^1 B) M
& q, X4 |: d, E. P1 v
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO: f' q$ ^( o0 L, v3 z! b* w
: r/ c3 ]' c2 m; L- G7 }' |
-----------------------------------------------
  [0 B. r. n9 ^$ ?! o, m为什么要改CMSIS-DAP / DAPLink,也许只是好奇。% [' }- Z7 _8 I% I
; g9 |3 R0 {1 ~: F* c$ {: w" D: l- C4 S
2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。4 O: R; g8 B4 q7 H; }. l& p$ z+ A
TB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。
9 w0 K! q! t1 d1 v! l  `3 s- j如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:' l  `$ C- e/ Q) Q/ S
SWO ------------- PA10。
) [, a( N' g4 D8 g% g5 xCDC -------------- PA2_TX / PA3_RX(USART2)。
* j2 j6 g2 }9 i: D--------------------------------------------------------------------------------------------------
& y7 y  k/ _8 a) _" O) w/ z% ^, c6 ^: }$ V  n# `/ X
上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。
, A: Y' H& Z* Q6 U4 a( z5 n下面是其中两种:
9 o6 l1 |/ P: Z9 J7 V7 O. c 00.jpg 2 i6 m6 E7 y- l/ J- n# R# {
' c8 G# m5 S, |  z: A2 z

) S) {1 a! H' P6 M; X而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)  v, i3 G: q6 A# L$ k
01.jpg
2 ~5 W% h3 k- ]9 N- w
3 k' `) \  `: C/ A( u下面把改装的情况,用图片说明。4 w) c$ d! ^1 ?& e& P* @$ _
02.jpg
* c( E2 B- c# \' G( q. M: j) @& I9 Q% Y
03.jpg " r6 x+ n' \& K. P

3 ]; q" g2 f% M* n* [' G; X* l9 _& E Schematic(part) STLINK_V2A_V2B.jpg
9 R6 ?9 @: ^4 M) A8 S1 w0 j& G( n3 O( X( Y; U- I0 T
我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......( r: Q! ^* i* I
1 J0 O# k$ [3 h. H' ?9 O, ^- E- R
严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。
6 W* q" n) u, b% R4 n有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。
* m6 K% Z' ~! g; V+ c* j4 R$ u9 e" ?: R8 f

2 c( J. v5 w# A! z/ \% H3 `; |5 c7 r0 e, q8 ]3 Y

3 ~4 D8 d% h3 q) T7 t

STM32F103C8T6_CMSIS-DAP_SWO-master20200509.zip

下载

3.48 MB, 下载次数: 709

收藏 15 评论100 发布时间:2018-6-9 11:52

举报

100个回答
radio2radio 回答时间:2018-6-16 22:48:32
本帖最后由 radio2radio 于 2018-8-29 11:03 编辑
  u2 s8 ~  N: N4 I: Z- _
spmno 发表于 2018-6-16 15:30
0 m+ l- E& F) ^/ f- L用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。

$ \+ J, J3 J7 ~7 y: ~; q今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。8 J0 r( V, Z2 V
' g7 j$ p+ v, J1 n
重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。
* q& V, c/ d# o
0 t  a6 I1 e0 K Pin_configs_1.jpg ; g- R1 @% L  @+ D4 {

, r. O- G% t5 Y$ w( M7 J# R0 f参见一楼附件,可以试一试。
. j) e. U! b5 c
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50
# H' V6 z5 F, @# E5 R9 w: A5 q刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
3 q# o& t0 b6 V" x2 q7 I2 y操作系统是WIN10。
& R" f$ R2 U+ O$ H( y' O7 z, b: i用了其它版本的固件也不好用 ...
6 X* E+ V" r3 m- s3 N! r
测量一下USB的D+线的电压,有没有pull-high。
) n) ?0 G( b4 X
. A$ L% h, N- D7 W  R0 S6 }- x7 b- _如果是驱动的问题,试一试附件的驱动:1 f7 R' Y' N3 T% U; m

" z+ J9 H7 v2 Q, Z$ y: w

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 297

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:41
; I9 N& A7 g4 P! S8 o0 o# Z+ a1 o好像不起作用,感觉不完全是软件问题,会不会和固件也有关系

  d/ F+ o! w. m; u3 I5 U也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。
' c, e% A' o% T( d: f3 ^; R
. `4 r$ D9 H  ]9 D4 }& d坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。
; A% v0 v$ Y4 X* h
2 b" ]/ H" e9 J& i1 p我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。9 D  j* ?0 R- d" M8 V- x' W

! L* k! I7 |. x& _; W+ u2 }建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。
. `7 z* q9 L6 z+ m  k& Z再就是,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 编辑
! f3 u" R2 n) y5 J% [7 d% N
# q7 v4 L) y! u% X刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?; w+ Y6 O- k  l& u4 [0 Q3 R
操作系统是WIN10。; v0 {# I0 i6 Z3 j9 p- l
用了其它版本的固件也不好用。
5 k6 R4 x; ?% h, v  `; F$ Y; q' G9 D) j0 w" c
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:59' Z) Y4 P3 m& M: m( U
测量一下USB的D+线的电压,有没有pull-high。
# p. \9 S* i) c4 Q8 H( h6 y
3 P1 Z6 @% |/ k2 K) ^6 Q7 ^$ s/ E. ~如果是驱动的问题,试一试附件的驱动:
6 ?6 o+ |! L1 _
多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:227 b. f3 `7 N4 r* Z* n
多谢楼主,我这就试一下。

% ?4 a) D* c* n; S/ x& XD+ 3V
* M" m& Z; W9 R0 o5 }4 O设备管理器提示:未知USB设备(设备描述符请求失败)。
) ^% y& w$ L7 s# a; s7 S更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑 ; p9 B5 b; J- M# D8 W( l
spmno 发表于 2018-6-13 13:336 j7 [  Y- P; \9 b0 F' K: V6 }
D+ 3V
  R7 r" i: Z* R  y设备管理器提示:未知USB设备(设备描述符请求失败)。
0 q8 U# K3 G% [$ F0 C更新驱动也失败。 ...

& X& J3 Y( U+ U- M9 e7 G这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:47- v2 w8 X, t+ o3 C+ [. J
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...

- E& ]6 M; m6 B. u+ k+ y0 O好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47
7 B2 G1 W4 @9 M- S6 b这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
0 T' v5 K+ h& T' t6 p' I# O
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48
7 o# z2 n. v, A* X0 z2 ]今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
( X  }- r7 \7 j' {. v- D1 J7 S4 p* u5 K2 T2 [
重新 ...

1 p) K4 w" C. Y' V好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53/ y! ~* N; G, I- P) l
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...

! l: a0 N* d# m# I6 B/ z* M不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。: R3 n# V6 K- U, l2 ]
原程序都是用其他GPIO的。
6 N1 M5 a; ^; o; c5 V5 N0 b: y. ]* }5 q1 j! T
下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50
# r3 T  A) n, x4 f7 D不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。
1 q! Q8 _8 K8 q8 Q+ ^, M/ E原程序都是用其他G ...

* z( x: u. v! v9 ]. |0 z0 d1 I1 B嗯,说错了。是CMSIS-DAP-STLINK的代码。
3 Z% p6 H* X( p( \9 U使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版