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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。4 n. w4 ~( r$ s
2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。" {; Q6 X4 _; z6 r$ c! h$ c
2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。
" R7 P2 G* S/ h1 W6 b
2019-12-24重要更新,速度提升,功能不变。
: S9 `# ]# `2 |9 M4 a9 ]
# }8 u% A+ r9 g4 b& d; ?! [
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO
) d4 d* a% t& i; P/ |& F
% @) B3 D2 q- H1 p1 C* w4 H* H-----------------------------------------------
0 F% i5 r" a1 b) h- g; o为什么要改CMSIS-DAP / DAPLink,也许只是好奇。
1 s# t. m0 X; C# h( n  o) I% u5 b# z  G. _$ X: h& p3 J
2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。; q9 D) l& P* f9 V; k
TB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。9 Z$ C, ]: y# A! N$ N$ X) `# j
如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:/ c+ _& Z# A2 \. ^. N5 Z* k
SWO ------------- PA10。
. D4 ^7 s: w5 l5 V9 O/ R( B% lCDC -------------- PA2_TX / PA3_RX(USART2)。
) H( K' f3 H0 m0 v' u! G0 n--------------------------------------------------------------------------------------------------
- A9 ~0 ~' j% p& N$ L6 Y. v$ J2 _6 q5 A, a4 Q
上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。
; V' ~$ [9 O( H( s; U+ H7 F5 ?下面是其中两种:
* i4 f. p) Z4 S0 A: w5 X  ~4 W 00.jpg
$ g4 G* h! ^8 T% I: b
: C; E+ N9 a! y9 r3 m  ^+ C2 I
而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)
! s/ @: M* D6 [& R5 ~' E0 F 01.jpg
5 y$ |' }  S1 X3 {8 {; E4 l  S0 c, J
下面把改装的情况,用图片说明。. @% U3 q( ~' I. ~5 l/ ~
02.jpg
. h  ^" c' T  |+ a  ~, s
! G: _/ n8 T/ }. K, ? 03.jpg
+ M9 k& v+ O$ `, D- a0 z: |
. n# c; V$ U  K( v3 Y9 d4 G Schematic(part) STLINK_V2A_V2B.jpg 4 y; E* I3 P0 z

, e) s/ t* O) o5 C/ l我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......
& {$ o/ t( U* D6 Q8 E4 G0 L  n$ R8 a; R
严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。8 S3 X; M% O& B5 ]0 O! o
有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。
% b0 k2 O( Q+ I# [8 @  `2 D) H* }1 {

( u  P" n, r2 N5 S3 r  r" m
3 r; A2 d. K4 y  Q* p
* ~5 c- Z8 S: j9 v

STM32F103C8T6_CMSIS-DAP_SWO-master20200509.zip

下载

3.48 MB, 下载次数: 709

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

举报

100个回答
radio2radio 回答时间:2018-6-16 22:48:32
本帖最后由 radio2radio 于 2018-8-29 11:03 编辑 2 M( L( T8 |, _7 m
spmno 发表于 2018-6-16 15:30
+ u& O/ K- k2 i+ `用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
" g) Y, d- w! x
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。7 _4 i& Y9 C% A8 ], h3 `

% p2 T6 D, F; Y$ P  C. r# d4 r) T重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。
  M" p6 T) h8 O7 ^2 y; {* `4 U
: O5 P- v% S" `% D Pin_configs_1.jpg
; s" F  S! _" {3 [' N/ s# u- R) G2 B
参见一楼附件,可以试一试。7 F, Z/ k7 m- H/ x' }
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50, k! v# h7 `1 ^( M
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
: B6 g+ t3 F, e$ J$ v5 K9 ?$ h% B操作系统是WIN10。
: v' K8 k) Z2 u3 [5 B, s用了其它版本的固件也不好用 ...

+ d# Z) G, @& [; z3 E/ f, \) l8 W测量一下USB的D+线的电压,有没有pull-high。0 Y9 D% k9 o: f" m; E8 R6 D

$ `% n0 Q+ }8 u0 E# f! _如果是驱动的问题,试一试附件的驱动:
/ C9 M% \" L1 Y* \
' B: `- G+ a$ W

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 297

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:418 c6 {+ U, O1 s& c
好像不起作用,感觉不完全是软件问题,会不会和固件也有关系
& @. t8 y3 j8 g, o; C
也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。/ M. w1 h  Z" ]. x4 L, ~
7 c* M1 |" {0 k4 D- W
坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。
+ j1 W# k0 j, G0 u1 j( \* a' n: H( m" `( o$ D' G* K
我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。" Y5 v4 ]: n7 P9 a9 X9 z
7 D7 `! @+ K1 V. V4 N% j
建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。
% w9 l+ `8 B3 w6 g3 P  i0 p再就是,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 编辑
* r+ @( C/ R9 f/ a1 T7 ^/ o
; u" L8 p; V) }) u+ {9 s" U' E刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?! Z9 t1 e# U1 Q4 ^% k6 }; @3 I' B9 h. S
操作系统是WIN10。) ?( I. H* z+ |% e/ L; u, y( [0 A
用了其它版本的固件也不好用。
7 Y  G. V0 S, w
! {5 O: v% Q# o  T' ^
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:59
& ^' x" t& e: p" U' R! n测量一下USB的D+线的电压,有没有pull-high。
) D3 o; d0 ~  V  ~3 }  t
0 h& s" C8 i; _/ k! p如果是驱动的问题,试一试附件的驱动:

" v2 C7 }( T" d* S多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:22
. \4 f! K: T& E5 T$ G8 c/ g( X多谢楼主,我这就试一下。

2 o! T6 |+ n" w& H# K* K4 {$ qD+ 3V+ t; k. T8 D# R
设备管理器提示:未知USB设备(设备描述符请求失败)。
) b2 H* d: x" r6 Z更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑
0 I, \$ h, x( D, W+ f, N+ k( k% o
spmno 发表于 2018-6-13 13:33
. d6 u- `" r0 A% X6 BD+ 3V, E& g! z/ ~/ H2 G% O
设备管理器提示:未知USB设备(设备描述符请求失败)。
2 P# i" a, ~9 q  Q) P更新驱动也失败。 ...

4 ?4 F7 V3 H- s) s2 N: F这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:47
' z9 U" e; x3 q0 t/ J. d; i这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
% w# J8 w9 \6 P# ]% L/ {& t- ?% B
好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47' V% `: |; M  M: E8 s4 w$ D4 n
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...

3 E; y$ e4 W8 z2 V- I用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48
: ~! p# S3 f" e# O今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。$ t& w4 W) n& B1 _% c

4 K" J* t, S/ ]( D" X8 W, U重新 ...
2 G9 z+ x4 f* v$ p; F' u: z$ f
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53
2 x) F, f* y  I5 n% H5 e* T好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...

& `/ e& U  n+ m7 x6 r- i不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。" O0 e# N$ m2 M" ]  h% Q
原程序都是用其他GPIO的。
0 s6 T3 A  r" a2 b: ^, y; H! |- R  \
下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50
; P' _+ h0 V# \' L不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。6 U, w& a9 D* w( H, _
原程序都是用其他G ...

+ Y: [" B: j& ]5 H嗯,说错了。是CMSIS-DAP-STLINK的代码。
9 h" |( I, X* _6 M使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版