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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。
! z, h. b' [. w; U, E' d, U2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。+ B, i+ \5 g0 ^( t( S
2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。
3 z% @0 B# G8 P! P" @7 z
2019-12-24重要更新,速度提升,功能不变。) z0 A  }/ j. r( v' u8 \
$ s9 ^/ Q: G- N6 r" o+ T# ~( I
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO' d8 k* s- l. S) ]$ v
% ~$ F) d+ x; c& ?9 S
-----------------------------------------------
3 H  n, S0 [; i; i5 C为什么要改CMSIS-DAP / DAPLink,也许只是好奇。
+ x% B( E, @5 D( {9 N
3 d8 T0 W/ K  G4 L, Z$ G) P2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。, h$ ^, z! X, ]/ C( M5 h$ s% N! o
TB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。
; k: v1 \. c6 R: i. M4 ]! k- g. z如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:$ p" P' U% u- t* f. H
SWO ------------- PA10。( b( u: D0 \- v9 B# L* ?5 c6 @
CDC -------------- PA2_TX / PA3_RX(USART2)。, ~' C0 ~) Y+ k$ ^) D7 P: Y7 A
--------------------------------------------------------------------------------------------------& v0 x4 C' V' W( e# D8 q7 s
5 b, b" _- n$ R5 B) h, P
上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。  |1 i4 o0 V/ Q& K8 l0 W# V
下面是其中两种:
! Q( i7 o# A4 D: [' R 00.jpg 5 E" R! ~& N2 `7 G, B3 v
- G0 H3 T$ W* b- d, E4 p1 Z

* G+ E, ]9 j: e6 [. R  s0 B9 V而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)
" {0 K  O! e& l3 b/ A1 r1 D7 c/ U. F 01.jpg
5 T9 U# E: o& ]6 |# x
2 _8 E5 g. u. @6 f  E4 X下面把改装的情况,用图片说明。
1 n( {& ~) \8 ^4 A: d 02.jpg
( u/ f( ^" g$ R0 L( E+ z8 Y$ j% M
/ {7 E, g+ @3 V7 J- ~0 @2 ?/ I 03.jpg
9 ^: g+ H8 f& y1 F  V/ y# h% O: |. i; W! {. ?+ }
Schematic(part) STLINK_V2A_V2B.jpg
/ j9 J6 m% |$ w. b
1 G& T8 T5 W+ N% \我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......2 c9 \. u* T) {6 I
; n# W( X- w  {* y9 T
严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。
3 Y0 y& Z# w& a- a有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。
9 S3 T# a9 V/ m+ Q$ b6 y- k' `# t+ S2 t% K( D& `7 H

4 x' J7 p/ {4 Q' F; B
6 D) i& h/ ^$ v6 Q+ @, a- i0 e! w3 @
: V# [5 o9 i  P5 q; j6 |& _; ?- [

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 编辑 ' U+ \9 M" J' ~/ Y- C' X4 @
spmno 发表于 2018-6-16 15:30
/ X! U" O9 O9 M用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
; _& ]( ^& {+ I
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。' F3 ]& z# D" k$ M( H( [5 Y: w/ i
! ^/ k, b& I4 B6 n6 J
重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。
0 Y% P" t, @2 }
! l7 A: C3 w: e6 }& G Pin_configs_1.jpg
+ h, u$ A  ^) \' ?* k
& q* R) ]6 T3 T参见一楼附件,可以试一试。/ @; r$ S; m9 f/ a0 ]0 {
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:502 s) r' z7 @9 C# L- w( T$ h
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
9 D: R, M1 ]* h8 ^# w' m/ U. P操作系统是WIN10。  ?/ ?3 D. N4 w! k9 l' R
用了其它版本的固件也不好用 ...
8 k% y: c% T. p) R
测量一下USB的D+线的电压,有没有pull-high。
+ J4 B! p, I% j
; r7 w, j3 j3 X: i# x" ~+ s/ n如果是驱动的问题,试一试附件的驱动:
+ K+ \! V0 b4 X, r# d' \& I- O; j/ G7 E

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 296

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:41. u( f: e2 f7 E$ z# r3 p
好像不起作用,感觉不完全是软件问题,会不会和固件也有关系

) Y% i1 u: \, }4 C0 r也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。8 Z/ e9 @7 [4 i2 Y. }5 B

" D# n, o4 u" }4 O0 R  F5 ?: d坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。
6 v8 b, T: }- Q6 {1 h# {' ]' l9 g
我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。
' Z; w0 _7 o- i" b
& I- r5 |' D; m+ V8 E3 W1 c9 E建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。
0 s$ `% B; K- k5 a7 n再就是,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 编辑 ( j0 N) w5 E) |7 x5 u
* f5 J0 s; d- r4 @% \
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?( i6 U1 o& `, I) C
操作系统是WIN10。% U9 _7 T6 H& ~
用了其它版本的固件也不好用。# p  x2 m  v8 o' }
& a5 C: }2 ?: v
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:59
( h1 e: j: F9 N# l/ o5 }测量一下USB的D+线的电压,有没有pull-high。
, i. x# c1 |6 W4 S# z7 Q" E1 N* B0 p
如果是驱动的问题,试一试附件的驱动:

( {7 o* V' k- k, y5 r9 n多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:22; |% I) X1 a  q( c9 c3 [
多谢楼主,我这就试一下。

# Q0 r* D: e; u2 N% B1 \D+ 3V
# k# K0 c$ V9 w( \. v/ ^3 d设备管理器提示:未知USB设备(设备描述符请求失败)。0 l8 ?) L" B$ s: ^6 ]+ F/ Z  L
更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑 & F/ s0 T' \$ `7 u. E: {
spmno 发表于 2018-6-13 13:33
  t. \/ ~# \6 K- @D+ 3V  \" o1 H( l2 q0 [+ A( y
设备管理器提示:未知USB设备(设备描述符请求失败)。
6 r: `. w( m+ l$ a更新驱动也失败。 ...
7 @* \& }6 O' }4 ^( ]; @
这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:47
$ l! `) E6 x5 l/ V  P& T这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...

8 l2 P" j/ ?& U+ f好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47: M1 w* J+ \, z$ j5 b
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...

# ^2 Y/ ]2 J7 h" f/ }1 m用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48' U5 x3 p6 g7 |- V
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。/ d, u9 h3 {* f- C

! M9 [! {6 R/ ^/ j; v; T8 S重新 ...

4 D5 U9 O$ b/ z6 S" W好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:537 `- M7 G6 l" e9 B+ |
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...
, C0 X+ {4 z1 u" c
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。, f/ R. b# s9 [( a( [8 `
原程序都是用其他GPIO的。
# o/ W/ z5 W) U+ n8 n  \: T4 N5 C) D
下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50, G1 e+ M9 ]# h" G
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。& b+ R' F/ t7 M7 P, E3 }
原程序都是用其他G ...
# y& ]3 R+ A3 K
嗯,说错了。是CMSIS-DAP-STLINK的代码。. x) W: Z& v% v# \# B$ @2 n
使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

相似分享

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