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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。# i& m, r9 g% G$ f; `
2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。
2 z! p! O' a, T2 P, {( W) w* o0 h! @2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。

. F3 ]( J* F* C7 V' A7 r; S2019-12-24重要更新,速度提升,功能不变。2 A. s3 A2 ]9 j# d
8 d; B! G8 ]8 W. K) {
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO; `- X* a  k* S, ]
* K% G" ]' W( F: U
-----------------------------------------------: Y' I0 Y9 e( H. _2 O' o0 c0 a$ V
为什么要改CMSIS-DAP / DAPLink,也许只是好奇。' U4 |3 Q8 w8 ]

* j) v( w$ o" |9 g2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。
9 i& e+ z# Y) U! A( OTB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。& G! w* b7 v" {! D
如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:
$ V0 G  |0 t  j6 a) ?5 d( t  K. CSWO ------------- PA10。
3 [1 g  w5 ~& KCDC -------------- PA2_TX / PA3_RX(USART2)。( ?: {% W# L/ c. P4 @4 ]
--------------------------------------------------------------------------------------------------
6 @- I8 k  s* i7 D& X2 Z6 h
, ^! w: a0 ]0 v+ ?$ A# F+ {5 R上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。
" W. O$ A6 q4 g8 b& `下面是其中两种:) u+ M7 m3 n- E8 ]4 p( \
00.jpg + h% P! z$ l# O0 q0 a

- a+ ~2 X4 I6 i1 J2 |% o# d/ O+ i! `
而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)
) E% m; y, p2 M3 U- M) y1 | 01.jpg . a' m" i" H' e. F8 R) D, n  i

- c/ S# W$ N  u8 G( z5 |4 q4 \7 r下面把改装的情况,用图片说明。( ?9 B4 v( H9 m8 f+ Q
02.jpg
+ {1 s: P3 x) `# v% ^( G* s9 M' B! ]5 _4 ~
03.jpg
  ]# S! [" e5 m8 @4 i1 Z) I/ E) r
9 J+ |5 a6 t7 a7 k Schematic(part) STLINK_V2A_V2B.jpg 6 J7 k) H3 K( B( R& @3 }! d
5 D: N1 Q  t  R5 [$ U
我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......
4 X" \6 D% K, |9 [+ ^" u# a
) E8 }+ J+ w# F  Z: D严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。2 L! r8 D, g2 O( d( H* N. n2 @% V
有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。) U5 M5 l, u  G: n

/ O( h5 S: _+ H( ?* y$ V% p- h/ S, l, v& L! n/ Q1 L/ ]

4 |6 _. ^  ?; P; _/ @) O8 Q& K  T3 ]# |7 {6 x

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 编辑 * ~: Q4 \7 }3 Q- `1 n  h& D1 d
spmno 发表于 2018-6-16 15:30
3 e2 B; M: E! x7 ~9 H用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。

- z& b1 t1 H6 M% M今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。" P! E8 f. w% ~3 J

2 T  C3 K$ y/ x! Q重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。" R+ t9 c- n: I7 M- @# z& X9 O
' P/ w2 Q' }8 o, X1 a
Pin_configs_1.jpg ' o* ]0 z, a7 `1 g. m" H( O5 d
( ~* _: t  S8 v! w/ t' g) z
参见一楼附件,可以试一试。
3 x# \* N2 ^) P* m* n& Y
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50
, o8 W0 ~8 R+ z/ w/ r8 P8 e刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
( C7 B8 `, t+ y操作系统是WIN10。! E- p4 b4 A+ P7 O
用了其它版本的固件也不好用 ...
+ U3 f  K4 e8 r; e# v. o/ K5 G. l
测量一下USB的D+线的电压,有没有pull-high。
7 \+ T- S$ b0 L- [. D' [0 o( A
5 N/ O% |3 R0 |如果是驱动的问题,试一试附件的驱动:
- Y$ b8 m5 K6 r2 m9 O5 A% i! Y
* e7 H3 ~% A" @( c6 K4 N5 \

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 296

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:41( F( m1 `. }  N6 d! O
好像不起作用,感觉不完全是软件问题,会不会和固件也有关系

- `$ r& w/ u# C( n4 C# |+ ^也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。( S7 `8 i" h  ^* k# C1 C  V

' u& g6 x) ]. C& W. z0 H5 \, F坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。
* x, H. l5 f& }* j0 L
; q5 a1 R7 O3 j% F. P6 H我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。
8 |3 r- n, {7 `* B9 w1 j7 M4 d
0 ~. p1 \% w: q' z& V8 v! b2 L建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。
6 M) X* C4 R4 m: @9 F' s( `再就是,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 编辑
! V6 H$ n; Q  x! ^# x) T2 k1 Z/ s% O% N1 u4 L$ a4 {
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?4 p+ r! q! ^5 `6 j
操作系统是WIN10。
0 K  q& \" W: e% q" V3 f9 O3 e3 f用了其它版本的固件也不好用。
- Q6 y# [, A  a- S4 ?& f% D  x2 z3 Z7 v, _2 ?4 w: X
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:59. X/ \& i) H  P& R; f
测量一下USB的D+线的电压,有没有pull-high。
4 l5 x4 v! u1 |2 j- `
/ S0 x8 u0 N/ I1 b6 X+ l4 }如果是驱动的问题,试一试附件的驱动:
  z" K7 Z, h) Q/ ^
多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:22
4 @! u5 u) D6 ^多谢楼主,我这就试一下。

" [' ^7 c1 S3 N( w- T; d9 OD+ 3V9 Z( u8 Z& y; p, m6 H8 y* ?4 n
设备管理器提示:未知USB设备(设备描述符请求失败)。) M. B8 l) f8 o; V% ^
更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑 . a) l( ^8 e5 |* U- k0 S
spmno 发表于 2018-6-13 13:33
/ F* ~; G6 v" M) T8 f8 WD+ 3V2 k0 E  i5 i$ v) v
设备管理器提示:未知USB设备(设备描述符请求失败)。
* h' o; L8 I# A0 f* R' C更新驱动也失败。 ...
: Q) {- ?& K( K) D. L
这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:47
% }' y$ Y% Y" R8 C( R这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...

9 y+ ]0 j2 q' T5 y: i9 C' t% b好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47+ T6 W/ a. ~; ?" }) W6 S
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
, `; f' k! B0 d9 o
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48
7 w( A0 {3 Z1 U) P! M! B6 G今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
* }8 _$ L1 H5 D8 F/ u/ {+ z% E, A) w
重新 ...
1 H7 i6 @9 H  l2 I% X5 r% u
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53
% B/ e4 s4 G, V/ z  c  y$ P2 F好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...

1 @6 F* t2 |& {不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。
8 `: m2 ~$ |4 M  a' G, J  f原程序都是用其他GPIO的。
4 r$ c  r2 O5 H. t
$ \- Y. N. C4 M$ d0 q# [' h& B' v下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50, a+ G2 \' a& G3 a% Y7 v
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。& a! I7 G# e* E0 Y6 E
原程序都是用其他G ...
. O3 J$ I1 D- r
嗯,说错了。是CMSIS-DAP-STLINK的代码。
3 n+ q! A* `! A使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

相似分享

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