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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。
% O2 D; g& N; z  \2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。+ b, A, j$ y4 c+ z
2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。

3 I4 O# K3 a4 k+ l2019-12-24重要更新,速度提升,功能不变。
4 u; y; M1 L. L2 s( y: v6 ~8 z" E# n5 y. }' W
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO( r: A1 g# z1 S$ A% F
5 \  C4 X& l; o) \2 u1 K
-----------------------------------------------
2 H# h2 l0 Z7 ?1 Q: y为什么要改CMSIS-DAP / DAPLink,也许只是好奇。9 y/ I% a2 Q& u) W$ J, T. ~. k
5 Z7 n' o' `8 s) f
2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。2 `, N0 e3 c" J
TB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。
$ Z( a# V7 H& J; e  T如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:& f) z/ F  e6 c, j' [% f2 g
SWO ------------- PA10。
" U" o. k5 M9 M4 n; @$ hCDC -------------- PA2_TX / PA3_RX(USART2)。& A) y, c6 B  {# X9 @5 W/ n0 ]6 c1 }
--------------------------------------------------------------------------------------------------
8 a: y9 {* p% n* f' \" C7 B. I7 M; J* U) e' u  M( U8 `
上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。+ s, g( C& v4 i
下面是其中两种:
2 D# a, ]  u: U2 `/ M: H& e 00.jpg * M3 x; T* {$ P0 S: l

' t" }! {* ?" m, P- `8 ]# |8 k0 ]
: N' c  ^  I  w0 K( C8 R  _# p而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)
$ L) Q  a3 D8 @. w0 ? 01.jpg & b+ R$ X  M! E& c  V: {4 `0 J
  Y8 A& {1 R) h- y) _9 Q/ A3 G/ b# a
下面把改装的情况,用图片说明。6 Y& Z" W7 R% j! f
02.jpg
1 q7 A2 Y& E3 f/ Y9 y
) l7 S6 A$ C$ V  B! T' h) O 03.jpg
: u- z. o) P/ n( u) n. h
2 s* I, N; v: p. C+ W. r Schematic(part) STLINK_V2A_V2B.jpg
7 ~, z" b, B  g1 C+ U  ]- y5 n9 f! |
我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......
  i  r. v$ ?: b! k9 W. |9 q, \" |- u, i
严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。
7 h: |& T+ c4 |* V  ^/ E有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。
8 L" L( O' U! f8 a, [) B, ~5 }" i. ~7 Z! k8 R
6 @) O. J3 R! D) ]$ M' v

5 D8 X% J0 E$ z! M
* ]& d8 z+ r! v) q' H8 D9 ?

STM32F103C8T6_CMSIS-DAP_SWO-master20200509.zip

下载

3.48 MB, 下载次数: 714

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

举报

100个回答
radio2radio 回答时间:2018-6-16 22:48:32
本帖最后由 radio2radio 于 2018-8-29 11:03 编辑 ' e: U$ C& o+ j6 N5 \
spmno 发表于 2018-6-16 15:30! {) X9 F  s9 O8 _
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。

4 w7 n. D' s' d+ a5 o# w今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
- ^, H( N1 q% _+ {3 u$ l. w! \# i4 f3 c: B* q
重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。
4 i, b/ ~$ {7 j. |4 y) U2 D
; `' n$ D& Z! n4 \7 d# G+ X9 ?: y Pin_configs_1.jpg
+ ?. g3 `% V& s+ F( w/ Y! {5 y0 I4 I7 D! |" c+ @
参见一楼附件,可以试一试。" f) i* _$ s# V4 D2 f5 b
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50" H! F( J; w6 k( f. Y
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
7 P5 n" [1 o! p5 N" B操作系统是WIN10。
1 J; E  `: ]- w用了其它版本的固件也不好用 ...
9 f, s# t: Z4 a5 V8 M) r
测量一下USB的D+线的电压,有没有pull-high。
  g& M  O6 P) @4 o* m4 ]4 D
# E5 _0 _( U+ u1 M! _8 J如果是驱动的问题,试一试附件的驱动:. T/ Z* T* ^) S8 l8 s! Z
8 T' l) R- ^& L+ p, H

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 298

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:41
/ G- Y% e- s- {: }# I' {好像不起作用,感觉不完全是软件问题,会不会和固件也有关系
, g) }+ L1 r: B4 d
也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。
: B- `# N% w, Y" H' p% l8 c3 z: p, x) U+ y6 p6 ]  I0 z4 T" d
坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。% N0 r/ a2 N9 O( L8 e( h

$ F1 z- G7 X4 {6 Q- V1 w7 T! X' ?我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。
  Z, ?8 _) e0 k1 {, |
! A/ \  ?5 U- j1 t建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。) E4 [( w" K$ |, d+ X6 N/ u$ b
再就是,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 编辑
$ C; ^! d% l  S/ u5 \/ S& a7 v% [( h
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?$ Y. j2 _; Z+ A0 X
操作系统是WIN10。/ d' K5 j: m, b8 ~
用了其它版本的固件也不好用。
' J1 r+ I$ [2 F0 U4 C6 D0 H9 R8 ?% \2 [' B6 n0 c
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:593 Q3 L; q( ]) k# T. ~1 \
测量一下USB的D+线的电压,有没有pull-high。
' d% u9 {+ R- L- ]% i+ \9 X9 ]$ x2 s. U; p2 g" R5 s; @
如果是驱动的问题,试一试附件的驱动:

, s' R& X& b- N$ w  Y# d5 `多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:22: |. B  q( m+ n: g- N9 }5 X+ ?
多谢楼主,我这就试一下。
" N+ G( J$ h3 \/ F- H7 R
D+ 3V
% G! M4 R9 Z' w. p设备管理器提示:未知USB设备(设备描述符请求失败)。2 b+ |9 c3 o& m* L! k: Y2 |
更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑 ; a/ p9 x( T; A2 G' N9 b
spmno 发表于 2018-6-13 13:33" h& f/ U: M. K4 y  [+ z# w
D+ 3V: Y' E+ a6 e- A1 M) E
设备管理器提示:未知USB设备(设备描述符请求失败)。
% U: n+ |# H9 [4 e! w! J( r7 Q. K) o更新驱动也失败。 ...

4 d' L# r: h) @1 z# T) N: |: R. I这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:47
7 w" W  e" n1 j& l% M( K这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...

9 V& T" o+ w; E* g8 U7 v好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47
2 `: V3 x1 u2 T6 m  b' b这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
& n0 }6 F& q4 ]: e
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48; N5 a8 C9 U7 ^. X
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
) z6 Q  D' O! `% w4 T7 N! f' \7 e2 R; [0 J) X' T
重新 ...

$ s( M$ `( m# L* J- |8 W3 _好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:534 X6 T8 D$ k2 P
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...
/ t$ t6 S! b2 f% M* h* {
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。
9 z  h& d% g5 v! x/ T1 s原程序都是用其他GPIO的。; H8 [# E1 L+ K  X) L' `  I: f

/ i# e  F$ g5 L5 D! _4 [/ J下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50
# ~# n( f) s% \# m! f不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。
2 ^  S4 V5 a" f! v, _' ]* K0 `, l8 Z/ i原程序都是用其他G ...
/ d& V  @  h3 m
嗯,说错了。是CMSIS-DAP-STLINK的代码。  D, m4 |; O1 D; M" A
使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版