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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。+ D8 M6 ~. w# `3 K/ c
2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。
1 ]9 K* `3 d! D) I6 V& y8 G2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。

7 Q) ~' Z) {. w* F5 U2 ]+ V2019-12-24重要更新,速度提升,功能不变。6 X4 z! r1 k* o
* j5 V4 O" M. ^* q6 U6 Q
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO
9 H% U: Y6 H. g* w) |& C: W: a
+ M& N8 F; u. @. M-----------------------------------------------
# |# G) B+ G7 `% X' D6 F* t为什么要改CMSIS-DAP / DAPLink,也许只是好奇。8 M  I$ a% `. `1 E2 W

6 y- Q  q8 J' d; d" J( E1 m5 a4 z2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。1 r3 G7 ~! a$ k: |4 T- C2 e
TB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。
1 @+ @5 L0 D% G9 D' N4 h. ^如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:
" T1 j* y: j: G$ K- z1 g0 WSWO ------------- PA10。/ f# _9 T# d9 N" S! }4 o
CDC -------------- PA2_TX / PA3_RX(USART2)。+ C+ B- o* w. \4 F2 ]* R0 ?$ V
--------------------------------------------------------------------------------------------------  [+ h7 [- X. i& w
' G# @1 G7 G; L& g4 ~. C/ c9 O, \
上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。
0 ^, s4 J+ _4 d' {/ M  m下面是其中两种:
* a/ }; B6 N, U 00.jpg
# @* [, t3 E; _& h* b% Y6 i" z) \  R& F* B1 W6 U; Q
( F& x' l5 C3 x( A4 d- Y- z
而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)
9 c+ r4 Y# p: e9 f# H 01.jpg
  \/ C% U. W2 ^+ x/ P0 q* w4 b/ Y; d, @, K/ ^/ V
下面把改装的情况,用图片说明。+ s7 h% ^7 H, \2 k( w3 Q7 V9 D
02.jpg 9 e" V( l" Z$ h# l" Z+ d

5 ?* ^+ j( V8 c* J% \' d' M 03.jpg " V' a  x' n# q% L

# {5 R3 }, ~3 Z- C. _/ z Schematic(part) STLINK_V2A_V2B.jpg + h5 n" D% O) R% {& X
& y- s, I9 b" D/ e  x6 ?" u
我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......
% X& `3 k6 c, \" i! `: j
" C9 H0 h; i  a; l4 Q严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。% C' m+ w3 C2 M1 v5 Q7 P
有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。
+ H3 M, }+ z; a- \0 y$ s
" R2 c6 w9 P- T7 D8 P
) y0 H  ~( M/ [$ g) ~" b8 v1 L( k* X9 _, h$ e# ?' j# H8 ~
* E6 Y# s4 s. u& k, a

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 编辑
5 j% C3 Z1 ]3 U. Y$ X$ k
spmno 发表于 2018-6-16 15:30
# e7 G. U7 @9 v* d用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
# o+ s5 d* ?: K6 v) h
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。: Y# y9 {+ h1 r/ }

  ?5 n: I, I, M$ N重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。& W: z: @5 O* Z1 ]
6 L6 Y- j2 `7 o0 ?% r1 L' z% X
Pin_configs_1.jpg 8 d$ I( p4 `( d2 T& X0 F' @, s
% V  s7 I& i) O: A
参见一楼附件,可以试一试。6 l9 ?' T$ Z! x) E
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50( _# Y( A+ }. i+ z# _/ j, Q. l
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?! i% W$ b, y' l; g; R& C; W
操作系统是WIN10。0 j% E! v* A- i* m0 {! J3 o" |$ U
用了其它版本的固件也不好用 ...

; E, Q) }$ ~' f测量一下USB的D+线的电压,有没有pull-high。
1 J' H( ~6 \: r  f9 P& C1 `) ?! i% o% d+ c) _* h' h! {+ e
如果是驱动的问题,试一试附件的驱动:
+ l. O- r' [9 A. Q. \, ]3 x
' Z! G4 ?5 c, {. t. |3 X  q" i

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 296

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:416 Y/ g/ N0 q. V2 V
好像不起作用,感觉不完全是软件问题,会不会和固件也有关系
5 b: r! M5 p; h# V
也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。- z' h3 j  ~/ D! }8 Z5 u+ |
/ r; w  i- N" k+ w
坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。8 ~" \) ^: G/ q# `/ N
) Y; {1 s$ ^7 I0 @) X: \( e5 Q0 p
我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。
5 }; O+ `- a  \# _- ?4 ~3 {6 J5 w, |8 d
建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。
5 f5 q* v; J) z4 l  [2 B( k再就是,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 编辑 + {" f# \* n  N4 G" h
: [2 G8 T+ ?1 J' J- @6 i# y
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
. H% G( d9 M& g7 O操作系统是WIN10。8 F1 a( t7 k& q: m% {3 `6 d* O
用了其它版本的固件也不好用。3 k7 O4 `! v+ Y7 B+ q
0 a/ a: n* x$ a& }8 k% v, C+ {4 c
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:59
; K* A" b# ?; f5 N& A8 \测量一下USB的D+线的电压,有没有pull-high。8 z1 E+ i8 ~/ c) [0 D

. B* X+ U) n2 W& E6 g# i如果是驱动的问题,试一试附件的驱动:

* _1 w2 K6 T! C( g( h/ E, f' |7 U多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:22
* W) N6 F3 y# B4 o多谢楼主,我这就试一下。

- x7 T5 _, z# UD+ 3V
* o7 C4 k( h! l1 X设备管理器提示:未知USB设备(设备描述符请求失败)。
2 X3 q0 K$ ~1 n5 a  ]) N" f6 t8 n更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑 7 U. I5 t4 H. H$ p
spmno 发表于 2018-6-13 13:332 |  N4 F, N" j8 m$ c' K
D+ 3V
7 {5 r+ J  d' ~4 l9 N设备管理器提示:未知USB设备(设备描述符请求失败)。6 J2 ~( R& }5 K
更新驱动也失败。 ...
  H/ m( P1 |- P2 \( K; }: X( D1 N: s
这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:47
9 o1 K6 {# d# p, Z& m& t3 W这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
8 C' Z! N9 I( m4 E
好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47, q4 ^% h( m' x% x/ c' K2 m6 {# x
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...

* a- O( }6 Y8 ?* U8 ^用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48
# J$ D- g$ Q8 u4 C, }今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
* X5 A; K2 l& \
+ C" u$ W# o  j4 p重新 ...
% B2 |; o* w4 F6 v8 B5 q' A9 E8 V
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53* ]* Y9 |7 ?$ F* B* }6 P( f' s
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...

+ g5 o" p( l- V2 ]" N不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。8 A7 r; N6 e: C+ v
原程序都是用其他GPIO的。
. z7 o# z# j9 N% C5 T5 n
- c* C3 n" c* V. O下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50
0 `: d' m* s7 v6 K8 }0 ~不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。2 \& |9 B2 S7 N! b6 O
原程序都是用其他G ...
* `4 E* ]% x+ l8 t
嗯,说错了。是CMSIS-DAP-STLINK的代码。
6 }0 q$ Q2 v$ e( w- y使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

相似分享

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