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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。3 Q+ S3 l" ?6 Z. C0 @. L- ~
2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。, h3 p3 g" i8 F$ n
2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。

3 b5 h( _6 ~5 i" y  y( ]! g; u2019-12-24重要更新,速度提升,功能不变。
) P$ A) S7 O0 c1 G# `8 z8 X- ~+ {0 L6 g  g! E& K
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO) b- p+ ~& @  u" D) ?

7 q7 u* A9 a1 N4 ]3 d7 W" N-----------------------------------------------
5 z4 i+ G4 N3 X# J为什么要改CMSIS-DAP / DAPLink,也许只是好奇。
+ E4 ]0 r9 y& r+ k& u- k5 P& t7 h0 ?! X
2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。
: L$ T* b5 b) ^TB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。- l- N6 v0 v$ s
如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:- h% ^0 H# s7 t+ _* b1 U
SWO ------------- PA10。0 q: [) o' p- f. O6 s; x
CDC -------------- PA2_TX / PA3_RX(USART2)。
6 C" p: O; C1 k7 k+ H! F--------------------------------------------------------------------------------------------------3 E& g7 B5 o, d6 t& _) f) _! K# V, g

8 o4 I0 M# e0 s8 u0 a- G上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。
2 @, T0 J  e! O. o下面是其中两种:% {0 }! V8 h9 j4 [) k1 ~
00.jpg 9 e* b" ~' }0 Q9 x% m: C2 d% A
0 K) B. O, a4 o) }
1 @, Y8 x1 n& J( l  \3 \
而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)
7 ^) m# A6 I( J( g 01.jpg & m. ?5 [1 f% V( v0 p" k& `

6 s; Q5 i  H/ N3 G. X, ~- q下面把改装的情况,用图片说明。/ M' ^$ \6 \% {4 ?4 q+ o
02.jpg
3 M5 f! B, L1 x0 g# E
* _7 j/ X: P7 y 03.jpg $ j' E2 ?+ R/ O' |' q! j

( c7 A' Y! n! Z& z Schematic(part) STLINK_V2A_V2B.jpg . \' G$ C" ?2 z, G1 \0 a* _
  t, Y/ u& M0 p5 N% c$ S% M  j
我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......4 R& K* J+ o) }3 ?
' U, v: F' S! t$ ^. V
严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。3 c/ \: U, G  V
有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。
( Y( n) U' d, V. D5 y" p& B2 t7 c  y7 Q. h4 @" }+ e
+ l# N  g* g. r0 l
! n4 j) M. ]& u1 B
4 _# E# G5 \0 q8 g  R6 i4 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 编辑 0 I; [& G$ n; L/ z' B0 S# G% P. Q
spmno 发表于 2018-6-16 15:30# S4 F. t" x. m' D
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。

" O  H4 K4 O& M" L  f9 N' F今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。7 l1 a6 z* J7 c3 R* M& c; Y( y
7 H3 \/ D. H0 R
重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。0 U7 G$ t+ W+ b; L. O# s
7 k% d8 `  c, A
Pin_configs_1.jpg 0 x; @% S. H# o7 E6 n

. P: i. C7 A5 r) P参见一楼附件,可以试一试。
" e, q& E) j* s. Y) e$ e. f
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50
. k& n$ t( y' L* q% G0 p刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
! K  h7 p4 h  \) G7 I+ F! U操作系统是WIN10。8 y6 J* W/ C; r7 b! \6 L$ H; b
用了其它版本的固件也不好用 ...

: P+ y* Z5 D; P; H' U# j. n  [测量一下USB的D+线的电压,有没有pull-high。
1 Q( Q7 W1 b+ ]
( |0 t7 I- T4 H2 ^- E7 n* r3 ~如果是驱动的问题,试一试附件的驱动:
0 m) p3 h" y: M/ G, X8 D; I
) F5 W) i/ ^  F! Z" k8 M$ S

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 296

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:41( V4 ~' Y, U7 k# R
好像不起作用,感觉不完全是软件问题,会不会和固件也有关系

7 ?3 [8 Q' q, N' _4 E! u5 @& d' N. A也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。
( \( W" E2 o$ H: c$ |
! J# s+ I0 `: Q2 t/ m坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。
9 ~0 d, Z5 u9 I% z5 H. d' R: r0 P, Z4 W0 ~( Q: t
我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。7 G) ?( N) M& g% ^8 l* ]/ A- p
0 \8 u% u8 u0 v7 [
建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。" _2 h9 U' m: f  h+ M* q
再就是,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 编辑 4 Q6 x0 Q; `+ L
4 `& e) H( f5 _! m5 @
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?( I$ E" N+ F7 p2 E1 F2 l- |$ x5 v
操作系统是WIN10。5 R' r7 e. c# G8 j. a& _3 b9 }: @
用了其它版本的固件也不好用。
! j% a2 W0 y+ T4 Q
! u4 Q" e, n" ~( K8 q4 w) w/ b
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:59' k2 I# a/ f+ k9 ?& r, x
测量一下USB的D+线的电压,有没有pull-high。1 y- Y) [6 Z  y& H6 B

9 G) R) I1 Q5 \/ I$ s3 F如果是驱动的问题,试一试附件的驱动:
; b- \4 s# ~; c2 [. c/ p
多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:22; {1 X, a/ L5 e6 H& W" x
多谢楼主,我这就试一下。

4 l( b8 L$ c5 \+ Q7 D  q3 b1 V7 LD+ 3V8 B) q2 A( T7 U' W% M
设备管理器提示:未知USB设备(设备描述符请求失败)。
& t) x5 j0 {7 Z3 |9 n, f4 W更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑
" W; t7 Y( T- u- B
spmno 发表于 2018-6-13 13:33
' S/ \1 e& S" _9 ~D+ 3V) W, Z; E8 Z  P, q0 K0 m* M1 i
设备管理器提示:未知USB设备(设备描述符请求失败)。  V/ o3 _$ N! n) L
更新驱动也失败。 ...
, B  G$ r8 I- W. F5 v5 F9 H
这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:47" w  R+ ?  d8 O/ r* o
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
9 L) b7 [0 i. F+ C# p4 W
好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47# G: [4 d, V, `5 `4 \; B% {
这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...

* K2 _4 t; d, a% f2 \1 h" e+ {用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48
& b- k* o1 U  Z8 K今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
' ^8 |, C- n) Q" s$ W, E5 z
& D$ O- t$ y0 a) Q& u) d1 s重新 ...
5 S5 ~* I3 b: f( k
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53' B$ |0 g: ^6 M' I$ `# p
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...
4 l. E1 z9 @6 I) N/ g9 k+ @( f' B
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。
5 h& S7 A; M' G) h原程序都是用其他GPIO的。
% m6 t( h6 y$ ~
3 f. l8 }6 A- X0 A下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50
0 _% v: T: O" b不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。6 c/ L! ^& ^+ T! c
原程序都是用其他G ...
- S+ m* Q, {( N! W8 b
嗯,说错了。是CMSIS-DAP-STLINK的代码。/ ~! J8 ~8 x( o
使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

相似分享

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