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

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

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
2018-06-30重要更新,附件换成了源代码。
" s& b0 l) U0 p6 }3 R9 P2018-08-17更新,增加了JTAG模式,新板代号STLINK_V2B,虽然JTAG模式少有人使用。
. w; [! E2 B  r) J1 _3 V2 o2019-05-18更新,网友3NVN移植成功DAPLink,又多了ARM-MBED功能,拖拽下载。

+ [- c7 W2 G7 k2 b2019-12-24重要更新,速度提升,功能不变。5 [+ M- }4 |9 ^( u

* e4 m: q+ j1 f+ U) ?2 {
附件源代码的github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO3 r, {, S  V, t) |% y, h

4 O) g( k; s. f' E* L-----------------------------------------------" C& [  A& \) f
为什么要改CMSIS-DAP / DAPLink,也许只是好奇。4 B9 V; N* M2 X) q

: |- @- c9 y/ G# Z% p( x7 n2018-06-13更新,实现了Cortex的软件复位功能,即不连接RESET线也可以使软件下载以后自动运行。
. {& H. J/ l3 C0 [& d& g; Y/ CTB上面ST-LINK V2仿真器,彩色金属外壳那种,包邮还不到15元。我买的才12元。
% f$ R9 ~. x* v3 Z( v$ R+ D如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:" ^, v& F7 ?! @# k" o
SWO ------------- PA10。. l( s0 w4 B7 b$ @, U: p& _
CDC -------------- PA2_TX / PA3_RX(USART2)。
3 P, ^& q+ Z, t: h1 F1 P7 Q/ A--------------------------------------------------------------------------------------------------
5 B4 K1 X2 r) [6 R! \- l
- u5 l5 t) ?; A9 y! ^2 x, |8 O9 @上网一查才知道,原来STLINK-V2,有许多不同的克隆版本,外观几乎一样,里面可能有很大的不同。9 l4 p/ ~7 x/ G* o/ a& k6 h3 u
下面是其中两种:% j3 [! L+ `% b8 c/ |! F
00.jpg
. U& V# J4 i6 `  O3 c5 j
- G) z* Q) i+ g6 q. D7 S5 g8 f2 C/ ~# r: t$ ?* n2 f
而我花12元买到的比较新的,最坑爹的是U..QFN..封装的IC,太难焊接了,比较欣慰的是这个板子用料足!!(有ESD保护芯片,还是两片)7 o  u  ]8 `/ c
01.jpg * Z$ N6 s! ~; |: y* l
: l/ u9 W# T. h8 w7 |. [
下面把改装的情况,用图片说明。, Y8 \' H. w  \( k. K0 n! ^! w
02.jpg - y- r1 W- R/ E* V; K2 u5 C

* l2 |2 j/ o/ ~  G% Q  w 03.jpg
- K- j( n& X9 K8 i( ]3 i* r
7 ?" f4 L  }* s% o* o+ S Schematic(part) STLINK_V2A_V2B.jpg
, X# Q0 B7 U. S( v# x* R% Z% t% [6 U: g- p
我的这种板子,或者类似的,在我的原码包里面,给个新的代号叫做STLINK_V2A,STLINK_V2B,以便区别各种各样的V2,V2-1.......
: b! C" T- m: U3 x# A" o3 `5 y/ k! L2 X! E+ y/ E3 _
严重注意,以上图片中的PCB板子,3V3和+5V的两条线是独立在PCB的两面的,很容易分开使用,特别是改装STLINK_V2B的带有JTAG模式的。
$ h- C# A3 x) F0 |* ]3 O6 f4 T有的STLINK-V2的PCB,3V3和+5V的两条线是PCB内部过孔连在一起的,不容易独立分开,遇到这样的板子,就要想想办法。) V# ]: \1 D9 y' y

& [: p- z5 ?. `, n' G1 a8 Z0 g. e- ^% h4 I7 g9 t( \8 \4 D
- O0 V' z& P+ N( T# a$ ]8 S

- a' d; W) ?# y& o! 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 编辑 % |. D4 ~( _6 x5 K' T+ T
spmno 发表于 2018-6-16 15:30
' L" c9 i) i$ }: R3 t$ G4 j6 J/ ?用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。

/ R( j, u' ~0 f今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。0 x8 V( v  U! w" f5 q

2 t9 P8 G- D" q: H重新下载程序时,需要将【BOOT0】跳线短路到【1】,断电后,再插回【0】位。; s! p3 |: U# g1 ?' A

) H& B) C2 I3 ] Pin_configs_1.jpg ; C$ c5 i; E0 {  V$ H1 Z
1 n& k$ b  ?8 ^
参见一楼附件,可以试一试。9 N% l8 Y' w3 {7 Q7 C
radio2radio 回答时间:2018-6-13 11:59:57
spmno 发表于 2018-6-13 11:50
- [) w0 I8 O/ N8 F  ~1 B+ k刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
! U2 U) I- v6 e# I( n操作系统是WIN10。  h) @" k) A$ F- Y; i/ q, c
用了其它版本的固件也不好用 ...

+ X. n2 m" W2 V4 G  l! |: N测量一下USB的D+线的电压,有没有pull-high。, u7 c6 o! s/ ^7 F

: h. J' y2 s. F% }2 ?9 R3 y1 I如果是驱动的问题,试一试附件的驱动:* ]# |1 v9 g, M7 D8 E: s; P

$ j, @0 m; b1 v0 V$ q* `$ }- U( X! y* a

Windows-USB-Driver.rar

下载

796 Bytes, 下载次数: 296

radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:41* ?  h1 D4 v* T4 X. k
好像不起作用,感觉不完全是软件问题,会不会和固件也有关系

' `, z/ l% |! `4 ]' V/ I0 s/ u也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。
; y2 H/ L  E( m- Q
& p. p3 F7 g9 v3 R# c% X坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。1 z$ Y6 l3 l8 E% C7 m7 O
- B' }4 {1 Y- P% B
我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。' M$ p% X: _% s! O
& T  F( b: k8 ~* e( u& @8 [
建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。: k) p: u, o# u, \
再就是,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 编辑
5 v( Y7 n' L* n  O1 R' K7 {. H/ I% P( }8 I
刷到STLINK2.0版本,提示无法识别的设备,可能是什么原因?
/ N( G( |- a; B& _& o2 W6 v操作系统是WIN10。' z7 V5 W) r' i: X- i
用了其它版本的固件也不好用。
  E$ E% T+ f9 r
1 D8 v, @# g- j) y' ^$ Y7 ~: E
spmno 回答时间:2018-6-13 13:22:28
radio2radio 发表于 2018-6-13 11:59
2 p% j  s# Y, e) b% {0 D测量一下USB的D+线的电压,有没有pull-high。' q2 D0 E% ?$ B. e4 X

) v- }1 X6 c% w4 x- z  T5 N' o如果是驱动的问题,试一试附件的驱动:
' E' L! g$ r  L
多谢楼主,我这就试一下。
spmno 回答时间:2018-6-13 13:33:02
spmno 发表于 2018-6-13 13:22% q4 k$ s2 |" r' q4 }
多谢楼主,我这就试一下。
4 D; ]  t- h' e
D+ 3V
+ x% [: ]( p/ F+ x设备管理器提示:未知USB设备(设备描述符请求失败)。# z$ M2 M1 d! M! i3 X4 w
更新驱动也失败。
radio2radio 回答时间:2018-6-13 13:47:11
本帖最后由 radio2radio 于 2018-6-30 11:09 编辑 6 n5 M0 {' j! h9 t
spmno 发表于 2018-6-13 13:33* \" W5 F6 M8 f+ }, ]
D+ 3V$ F0 {/ ?6 {7 F8 e( |0 i
设备管理器提示:未知USB设备(设备描述符请求失败)。1 v- F( ~$ X* t) g- Y; ]
更新驱动也失败。 ...

4 H- S) W7 G) j这样,建议不要试了,不如找一块BLUEPILL小板试一试,更好玩。 我昨天又搞定了软启动。
spmno 回答时间:2018-6-13 13:50:34
radio2radio 发表于 2018-6-13 13:47
: @2 H0 j' w: x" N; k这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
5 r/ |$ ~: j( D0 G
好的。我试试这个,哈哈。多谢楼主。
spmno 回答时间:2018-6-16 15:30:34
radio2radio 发表于 2018-6-13 13:47
- T" Y* [6 {8 {1 d这样,建议不要试了,不如找一块BLUEPILL小板,试一试附件的程序更好玩。 我昨天又搞定了软启动。 ...
& f5 v( |; }; e9 ?/ d. b
用blue pill试过了,确实好用。怀疑可能是硬件什么地方没搞好。
spmno 回答时间:2018-6-19 10:53:08
radio2radio 发表于 2018-6-16 22:48. G# n8 j% V$ V; d5 w
今天又有改进,复用了原板的SWD/SWC接口线,这样看起来更像“真家伙”。 特别是只用4条线的时候。
0 s; X1 m& P: H! i' ?8 H( c2 z6 e4 V6 F
重新 ...
; k1 I+ W/ s& n- {5 T$ p
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能通过ISP了吧。
radio2radio 回答时间:2018-6-19 11:50:00
spmno 发表于 2018-6-19 10:53# G3 l3 O# }% G' y1 T
好的,收到。我看CMSIS的原程序好像也是用SW线。就是这样的话,SW线就变成普通的IO口了吧,之后下载只能 ...
6 ?4 ?8 u7 g2 i% Y& c3 S& T
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。
$ g3 ]  N4 a0 t; b. r: D原程序都是用其他GPIO的。
- g' K- j0 [) a  W2 O! _- O
; A9 I: O5 C5 G下载时,使用BOOT0和BOOT1线,使MCU不进入用户程序,SWD口就可以用了,不一定要使用串口或DFU下载。
spmno 回答时间:2018-6-19 13:48:30
radio2radio 发表于 2018-6-19 11:50! O: Y" z; x5 r
不是的,如果不用这个BLUEPILL板来做CMSIS-DAP,就不需要使用SW口。 GPIO线太多选择。1 s1 o9 h! t) F4 i" _7 P
原程序都是用其他G ...
$ E2 B- W. t, v1 {- E
嗯,说错了。是CMSIS-DAP-STLINK的代码。( H& p+ \$ f& c$ c
使用BOOT线的技艺,学习了。看了数据手册把这个这功能忘了,多谢楼主。
电子星辰 回答时间:2018-6-19 14:08:09
有意思

所属标签

相似分享

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