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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。1 _! p' a4 Z0 W# S% z
2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。* Q1 _! q& y$ f2 N3 X0 d/ J6 b9 s
2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。

- h3 M( E: U+ P+ l+ q) t$ T2019-12-24重要更新,速度提升,功能不变。
% K" z5 ~7 u( T$ }  K, G- b8 \- N# y/ Y4 \
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO3 a5 m  M, C! t- _* X9 V; E

  F$ z: o5 q6 d9 }- g1 F/ d-----------------------------------------------
/ a2 Z* P" ~" B$ g为什么要改CMSIS-DAP / DAPLink,也许只是好奇。; B7 t+ A/ o$ x

$ M: Y& w! w& {! C5 ^2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。9 c! h0 `2 b. }1 p& x( D+ n
TB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。
  `  W/ V# f3 L* [8 E如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:
3 j7 L% T. b) B$ a) _9 I# vSWO ------------- PA10。6 K4 W0 C* u% i3 R* G
CDC -------------- PA2_TX / PA3_RX(USART2)。% K+ i  W, g4 x( W6 y* M' n3 i; c% W
--------------------------------------------------------------------------------------------------
) [& O; a0 S, e6 y
: m& C0 D8 K& X7 [0 z& ^6 F# Q上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。
- r0 |1 w; ~4 B3 ]* k2 l1 ]下面是其中两种:, U9 K, X- j7 t" W" h
00.jpg
7 i( m( r8 Z$ f7 {" _  }
# R7 |7 n5 ?+ t% H" X& _9 I& [0 w1 t1 w: W
而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片). d" O# M0 N/ L1 E9 }0 ?6 m
01.jpg 7 F/ U, O& \; z

. ^8 j; C( l) O5 ~4 `8 x8 J下面把改装的情况,用图片说明。/ \" [" v- V" I" O+ ^( T) S6 @1 Q1 ?5 C" N
02.jpg
; R% V* r2 [' T' I, y2 F  N: {! a1 t! F* V2 P
03.jpg
" V4 ^% f. z- @) \* K* l% _3 b& |8 e, Y
Schematic(part) STLINK_V2A_V2B.jpg   q: g, F: }! n% q9 a

5 r2 P4 }1 Y  K! |$ I7 \' J4 ?, s6 R我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......9 K( {+ n/ K2 j+ \
. S7 Z2 D; h! m7 Y( E) @
严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。9 K2 N/ I2 R: E: p* @) }
有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。0 [: w# B; B9 R5 \0 ?) M2 y
8 |4 Z: ~  g9 [' n" I3 X

" |% M$ |$ {- ?: f  v2 Y# p% o  P' o* [

  }: _% u: H; z

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 编辑 $ z* \2 [9 U- V+ K
spmno 发表于 2018-6-16 15:30, ?* I; F* q; e! E: b4 }$ |4 ?
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
+ h: `4 ]' N* C% Q5 u- `
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。! B- d7 O1 p/ g
9 i1 E/ Q, k* n7 ~  t: s
重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。
/ N; q# u% f. r: q" s9 X. o
* w! K2 m% N' I Pin_configs_1.jpg
* ?' {6 w1 Z4 E% ]! E3 O
% H6 d6 E: P) I3 t1 u: d* Q8 K参见一楼附件,可以试一试。
- c  }$ ?2 M% M1 f) X
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50' K; D0 c0 T3 R9 [
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
. E9 W1 e1 Z/ O( S( V3 |2 W  V操作系统是WIN10。
  j6 w2 z8 |& o2 ~+ \用了其它版本的固件也不好用 ...

; v) `/ b4 T# p# L" B' F测量一下USB的D+线的电压,有没有pull-high。, b0 Z3 T* p: O  J5 b6 U

$ m/ Q  y# U$ ?, o/ ^如果是驱动的问题,试一试附件的驱动:
% g* [0 x3 n. [! s2 f
' [; `  b* n: m! g, }

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 296

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:41
  D$ o. `4 m7 {/ G好像不起作用,感觉不完全是软件问题,会不会和固件也有关系
. j2 F  ?; w! T+ S/ p* J' c
也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。
) I9 \8 _$ r; }: S6 }3 w% q. T1 Q3 M6 u6 g% j
坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。8 B3 u: q/ O3 N& B) k) z
/ T* x$ @( d# c8 S' @: m
我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。  O" {' J8 Y% v1 u

. m, M* y/ b8 R9 D+ H建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。
7 m: f* ?! k; Z6 |再就是,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 编辑
# J5 b: `6 W- a2 O4 n3 m, K8 E4 |! N# Z- d, E
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
* h3 t: i& C5 u, w& e3 M- V操作系统是WIN10。: ?9 H, v: r- _% z
用了其它版本的固件也不好用。/ K+ `$ S1 s8 {! z4 J) @

0 i) d0 G6 X7 Q! P5 J  L
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:598 m0 {2 s. x+ q
测量一下USB的D+线的电压,有没有pull-high。
8 n+ Z/ c; q7 I6 T2 b7 T, u8 g
/ r$ c  o, J! y6 d/ b如果是驱动的问题,试一试附件的驱动:

6 @$ n3 a1 T- ]+ h( t: v6 N多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:22
8 y/ V) y$ y4 v9 c- V多谢楼主,我这就试一下。

' }; X3 x- Y# `8 y. r* lD+ 3V) c/ L/ k' @- k. m# x0 t$ T
设备管理器提示:未知USB设备(设备描述符请求失败)。
8 q/ J- a  {  R+ ~% U  T更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑
) x  O+ l3 S$ J8 ?
spmno 发表于 2018-6-13 13:33
* f2 \" Z0 a* ~, K: I# F2 g( z# A8 zD+ 3V
. k: Z  ]" B) O7 F7 O8 ^设备管理器提示:未知USB设备(设备描述符请求失败)。
3 Q0 a$ {4 o) e2 V! N5 A  y更新驱动也失败。 ...

3 }5 W' P: M5 ]6 @3 b+ M  X: y这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:475 g% ^3 |' |7 i$ B( ]
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...

: ~+ {3 D* ]5 o! h6 i好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47
# Z* u# ~$ v% u* ?# f: v" h1 q这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
( ^; h, K4 d+ |& p6 ^& G+ K" W  w( \' B
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48
  t0 R( \' }, U5 P" t1 K! {今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。3 ^9 c' f8 x+ z+ b) W0 h

; _6 c8 a: y# b& Z重新 ...
) e' A6 `0 U2 W. T# f; y
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53
# i7 v) h7 b  n# K! D6 m+ A好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...

$ o1 s  B% n7 _- k" l; ~不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。
6 s: w- s4 o0 n: S原程序都是用其他GPIO的。: j( ?5 j2 }, ^/ [# S! E

5 Q3 P) Z4 k3 D下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50
+ K+ P7 q0 f. `- ^# k8 V4 p不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。
9 {" ~* V1 Q1 p6 p/ d, k原程序都是用其他G ...
2 K) c5 h+ W, }- @7 o! L
嗯,说错了。是CMSIS-DAP-STLINK的代码。) L0 e9 s+ u: Q" W% b! m
使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

相似分享

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