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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。
8 W9 p) ?  X( \0 A& j! l4 {- O2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。
( j" Z1 ^. c, U5 k$ i) }2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。

* a+ H5 H5 _) Y( m* L; b2 O6 S: s/ A& X2019-12-24重要更新,速度提升,功能不变。
) Y7 ^/ a: E& ^
3 K, [0 Y- j$ U% X4 H
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO# a2 Z5 m( n+ B! F5 p

% `7 @% y9 F- B2 f-----------------------------------------------
6 G; p/ a& F2 A7 s1 w  u为什么要改CMSIS-DAP / DAPLink,也许只是好奇。
; q5 S: R0 }8 [, M# n) R" D
4 T4 s- C- ]5 S. b, ~* F8 A" r' c7 h2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。& y) |' T2 }" W+ U: H
TB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。( {) _) m3 m3 F: {* b
如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:
# ?" L; g( U. ^8 ^; p4 V5 E8 OSWO ------------- PA10。
% v5 G: G+ M( OCDC -------------- PA2_TX / PA3_RX(USART2)。0 u1 Z" N* L" V6 z
--------------------------------------------------------------------------------------------------
' O( W$ L2 J% ]
. Q" Y. y. ]: y" D% Q6 C上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。
' X4 H- L& s* B/ M9 e1 ?  T, Y+ Z下面是其中两种:- ^' A3 B) ]" W. ]$ h9 L7 c
00.jpg ! u* K% t( p( r/ Y/ q
* M2 E9 S# a" J
8 ?& @; v) Q" F
而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)
5 E5 Z" j( q( U! r3 F/ ~9 T) ~. Y 01.jpg
/ v2 R4 M4 ~( s: r- h" q6 v! I& }
下面把改装的情况,用图片说明。4 O$ P  _0 V- A
02.jpg
0 u6 r/ S+ S8 l( ^& U/ j" F' V- [$ z9 \3 g% y
03.jpg 5 a4 x: [* Y& M" V

3 g' W5 `! v" ^! b' } Schematic(part) STLINK_V2A_V2B.jpg
) B2 K% R% }- r# T5 |: D8 `
2 Y* |7 K3 K( Z. B我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......4 W/ P2 r9 X- E8 k

2 t6 N( j$ J7 `" n" T" {: p严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。
" B# j; ?3 D6 ]- A* K有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。
2 @2 V5 L% D7 H4 y, q3 t7 C; w/ g/ K* W$ z2 h

$ x# [, Q& m# r
- H' h3 S5 C& ]5 P$ f0 ^
# g* [/ x2 V. L  [3 Y( O; i

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 编辑
  W- B7 ~0 b9 W+ ]+ u6 r
spmno 发表于 2018-6-16 15:30
" j8 D. w  d& L4 L用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
1 _7 l$ @! y" m" J& C
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。1 ?; {4 z# |$ b3 w
+ f  [" ^1 O- `0 l/ @, p
重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。( c% V& |' z  S
0 U% l0 [& B, b, h
Pin_configs_1.jpg # c. u7 w  Q. A" I- P& K- q) `6 c

! l* T( z& ~  {% U  M7 z参见一楼附件,可以试一试。
0 t0 ]/ L! x) X) K. a
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50
) ]- o# D) i- @6 t刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?8 u3 H' ]  ~3 H4 g
操作系统是WIN10。# U7 ]1 g  H: J8 U1 {% i
用了其它版本的固件也不好用 ...
$ E) ~- ]# G  V- L4 ]9 k2 R
测量一下USB的D+线的电压,有没有pull-high。
4 F" @5 n! r9 k6 k4 ~  }- I# T# s4 j1 K3 q
如果是驱动的问题,试一试附件的驱动:
8 e% N2 a) r9 U: G; m- Q; Q
, ]* n7 c( p+ a; D* l. y0 m% k

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 296

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:41
. K# c) b7 v4 x, P( e: A: g1 T好像不起作用,感觉不完全是软件问题,会不会和固件也有关系

- Y0 C8 y1 E4 p/ n6 r) Y. _也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。3 x$ b) i0 e. L5 t# d3 x% }% b' n
1 a2 w) ]0 b* E, y
坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。
* f- X1 U" t5 e3 W) s( e* y& H$ p8 [: G5 }" ]. r) a( u2 v
我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。
5 B3 i5 Z1 M) u5 J
/ }; V. i) G; s1 Y建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。
! q- L: b/ U% i% _0 \+ R+ I再就是,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 编辑
- E" _9 L1 i, D; W8 u8 v& l
  X4 ?+ a) c0 h! V2 V/ X% f. d刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?4 o) L; M: d& N+ Q; e. L2 h  R
操作系统是WIN10。% _9 E  r. ~5 Y& X7 l( d
用了其它版本的固件也不好用。% ]6 U  l9 `+ m- k) D: q

! ]( }2 N9 M9 ~( T
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:59, e0 o6 T8 j% C) D4 a
测量一下USB的D+线的电压,有没有pull-high。- B& e& y# H/ v& _5 O& R: I' Q2 F1 X

4 P0 c: x7 z# u) ?- J如果是驱动的问题,试一试附件的驱动:

7 {' ~$ U4 }1 {9 S7 }多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:22
& t; s5 v% f* N. r多谢楼主,我这就试一下。

$ I. F0 O0 r& B/ _( k& _+ f& kD+ 3V- }3 _+ e% i5 w3 T% ]
设备管理器提示:未知USB设备(设备描述符请求失败)。
! M, t5 ]& P1 e9 p6 w; C" Y( z更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑 , I+ g$ z/ ?0 f( c: _; g
spmno 发表于 2018-6-13 13:33
5 D& J* S9 @; M( c( K6 O6 ^D+ 3V1 [3 j2 @2 @& `/ I) [
设备管理器提示:未知USB设备(设备描述符请求失败)。
5 m) q6 I! v" G5 ~" S, E! Q$ H更新驱动也失败。 ...

  j: e5 c9 M! T9 `8 T5 R& g( T& C这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:47
. A) `: b* J3 W- ]  _这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
# E4 i' ?- u/ L* f0 ?2 y' i
好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47/ G* o- G1 I+ b. M; R
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
2 S4 z) b8 {2 _1 I  z
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48! j1 i( F' b( y) Q
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。2 W3 j" ?7 N/ _+ \" ~
8 y: ]8 R6 E% D6 n. x
重新 ...

* h  G& z( T' l  G$ Q' v好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53
! A1 \* V& _& Y好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...
) P- a$ H1 G$ @5 G& Y# l
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。& ~, w7 y; \$ E8 t9 {
原程序都是用其他GPIO的。# |) F6 A0 K# R6 [& U) u1 H

1 Q: X$ b& P9 H5 F* ]下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:500 Q7 Y& w  q: O" l0 O5 c7 u
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。7 Q/ g% j# T4 E6 Y: G  o' e- ~
原程序都是用其他G ...

2 S8 L9 h) R# c4 K嗯,说错了。是CMSIS-DAP-STLINK的代码。
/ \) J. p8 d- }# {$ A" H2 f使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

相似分享

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