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

ST - Link用途改造

[复制链接]
丿灬幸灬 发布时间:2018-12-31 23:02
本帖最后由 丿灬幸灬 于 2018-12-31 23:06 编辑
7 U5 O5 w) w" I  v# p# C5 h: `* `9 q2 }( n0 T
7122831544125350361.jpg 9 s: |: }1 {9 n2 A9 V, p
4 D4 Q' l+ [- D& {9 J' g
ST - Link具有强大的MCU、漂亮的外壳和连接器,可用于许多项目。
" M. R; y6 ]/ R; L' F4 J& `" o" h3 t! O" z# D
描述
% n+ B% o# x) U! G# Q8 ~# Y众所周知的ST - Link克隆是围绕一个STM32 MCU构建的,它们带有USB A接口,还有10个外露引脚。非常适合进行用途改造!  i9 M' k; @, ?6 L" |8 |

5 R# j8 c% E8 m- D  Z6 I7 QSTM23F101CBT6是ARM Cortex - M3核微控制器,具有128KB闪存、16KB SRAM以及大量计时器、总线和GPIOs。
3 w, G5 [- l6 m: y! W
( |1 C) h6 ~! ^由于外部只有10个引脚,所以重新调整用途的选择并不是无止境的,但对于很多项目来说,这可能是一个很好的起点。; X' l& l) G, G7 z* T* u

- G! Q3 o  }- Q8 Y. J释放更多引脚
1 X1 t3 R+ w+ ?3 p/ K7 d# O如果你需要更多的引脚,并且对焊接有信心,小的改动可以带来一些额外的好处。
0 U3 f3 f/ M/ x1 ]
1 V) i$ ?1 `$ f, O* N; c 1.jpg
$ w* g( I% u, g( o. q' v% }, C) ^& X1 B' I! S
如果将电阻R8替换为0Ω电阻或焊料桥,则MCU引脚43 ( PB7 )和MCU引脚46 ( PB9 )均与连接器引脚5 ( SWIM )相连。如果你不需要R8旁边680Ω的上拉电阻R10,这可能也是一个好主意。
; |/ I- m$ `, E6 {7 `: x6 ^7 p$ x/ O- G7 u2 ^
通过这种简单的焊接操作,如果你设法从外部整理I2C总线上拉,你现在可以在引脚42(TX)和43(RX)上使用USART1,甚至在引脚42 ( SCL )和43 ( SCA )上使用I2C1。- R8 [0 ]  l* y3 V" K+ z
+ R7 g5 P' u) @; C
设计" U! ], [, i; X; P, ?
在你重新编程ST - Link之前,它必须被“解锁”。解锁它的方式是使用OpenOCD。
* _2 W) C& f8 q9 F: U7 ~
5 C/ J9 {# O+ ^7 T4 u* {* m3 \你还需要第二个ST - Link或其他SWD下载器和一些跳线。! z' J/ K$ S$ R  S& W. }  O
/ v# Y% A1 g, S, D# {1 H- q
ST - Link在PCB上有编程连接口。你可以打开盖子来接触它们,盖子没有粘在一起,但是你可以发现可以抽开。
: s+ }. d) D* |6 y% O' q3 [4 J3 ?3 Z& E+ ?: A
2.jpg 2 C( e: `9 e7 d0 j1 Q0 ?
2 f9 p, u1 M9 E! D/ S4 G. ?9 t! v
PCB应该看起来像注释图片,有些ST - Link的引脚不同,但是用万用表测量引脚非常容易。& V3 E7 t; H* \
SWDIO连接应该连接到引脚34 (引脚编号从MCU上的点位置的引脚1开始),SWCLK是引脚37。- T& B8 d( E2 I) L  h$ r. @$ R

( Y7 o1 L" l) K# V2 W接地( GND )可以使用引脚10上的GND引脚进行测试,3.3V引脚也是如此。
: s" S2 T* R4 d3 r7 h没有必要找到GND和3.3V引脚来对stlink进行编程,因为您可以使用接口上的VCC和GND来连接,最好还是测量一下,1 |8 @1 o$ f5 S. J9 E6 P
以确保SWDIO和SWCLK连接是正确的。& y2 D0 Z# a5 G- e4 A# N9 o5 \; V
. C3 ]1 T, t7 U2 O7 Z3 W6 u
3.jpg
- h4 m9 G% ?6 ]  C1 m& A
8 D: @& n5 N9 V6 t- Z如果你使用引脚10连接地线或3.3V,你应该能够使用逻辑分析仪来抓取SWDIO和SWCLK信号。1 j' a5 ]8 d1 ~# P

5 }- O' R1 y" x解锁
, z% y, R3 c: W7 b1 ^9 v
  1. $ openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c "init" -c "halt" \3 p  n5 n7 A! a- Z) l& P
  2.     -c "stm32f1x unlock 0" -c "shutdown"
    & V8 \% J% z, J7 B" e7 X
  3. Open On-Chip Debugger 0.10.0
    4 |( c3 `$ K1 F* ~+ e
  4. Licensed under GNU GPL v2
    7 _5 m8 j" y3 v: [! m5 T
  5. For bug reports, read1 x1 o4 v" J" f/ @
  6.         http://openocd.org/doc/doxygen/bugs.html% Q6 {. T9 y3 t; [
  7. Info : auto-selecting first available session transport "hla_swd". To override use 'transport select '.
    $ B' ?0 ?: F1 ]. m- a( w$ t0 B
  8. Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
    2 }# v2 \8 \; s9 A
  9. adapter speed: 1000 kHz  ?! S+ [8 g$ H7 [# {9 i
  10. adapter_nsrst_delay: 100; I) j3 F3 a9 I7 ]4 k4 s
  11. none separate
    6 Z5 j5 I) E1 w% ]; M2 Y
  12. Info : Unable to match requested speed 1000 kHz, using 950 kHz9 w% n5 w/ w3 e0 T) {% G$ I4 f0 s
  13. Info : Unable to match requested speed 1000 kHz, using 950 kHz$ W9 t. W! T  D/ Z
  14. Info : clock speed 950 kHz
    7 h; M( e" |. `, X
  15. Info : STLINK v2 JTAG v28 API v2 SWIM v7 VID 0x0483 PID 0x3748# ]: f2 Q3 {8 o% I% O" `# Q
  16. Info : using stlink api v2! O8 ~% u$ o* q) ?$ S
  17. Info : Target voltage: 3.249867. p/ h) [7 E. i, l$ |, T
  18. Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints2 w3 P" T# Y. }2 U6 I
  19. target halted due to debug-request, current mode: Thread
    9 ~9 ]4 \0 k3 j  m
  20. xPSR: 0x61000000 pc: 0x08003d5a msp: 0x20004e38% j/ `1 l; }& @' V5 h/ A, [: }& ?2 q
  21. Info : device id = 0x20036410
    - @8 H  P  K9 Z. Z2 G$ i9 N- _
  22. Info : flash size = 128kbytes2 U7 |) {6 u* Z9 y
  23. stm32x unlocked.; X- q6 l4 X. a
  24. INFO: a reset or power cycle is required for the new settings to take effect.
    + K, s% X$ {" \% K
  25. shutdown command invoked
复制代码

. S2 ]$ A8 d# n4 j0 }+ ^3 b, J接下来,拔下3.3V电源线来重新启动设备。/ m# R& f/ n) ]. p4 H; v

- k8 s* o9 O* R& j7 Q* ]. I1 d您现在可以擦除flash,并向其中写入自己的固件。( [* h/ B: z- A  t5 G9 q  H8 [
( K* ?4 p$ b) r1 H* f' n4 _% {
  1. $ openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c "init" -c "halt" \" d; m, u( m0 U$ w, a
  2.     -c "flash write_image erase hello 0x8000000" -c "shutdown"# }6 K" T1 e8 `+ E) u6 D4 [$ A7 y
  3.   Open On-Chip Debugger 0.10.03 X. M" l! j) w% n/ S# v  k
  4.   Licensed under GNU GPL v2" x! I2 f$ V; y% A: V  d
  5.   For bug reports, read
    5 t4 p  Q9 R9 t2 j
  6.           http://openocd.org/doc/doxygen/bugs.html
    : b2 m( V9 P! X% r, }7 |- A
  7.   Info : auto-selecting first available session transport "hla_swd". To override use 'transport select '.3 R" n) E+ N# y$ M/ X; g
  8.   Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
    9 t* j; M2 d3 z2 C
  9.   adapter speed: 1000 kHz1 {( F% R# G0 U
  10.   adapter_nsrst_delay: 100
    , f- o: O, ]- x' q
  11.   none separate+ ~/ d2 z; I6 A. q) T
  12.   Info : Unable to match requested speed 1000 kHz, using 950 kHz
    . L, m0 U2 l5 H& b9 o
  13.   Info : Unable to match requested speed 1000 kHz, using 950 kHz
    . V3 o8 `. d0 j2 O9 g" x
  14.   Info : clock speed 950 kHz# V8 I1 D* l! Z
  15.   Info : STLINK v2 JTAG v28 API v2 SWIM v7 VID 0x0483 PID 0x3748
    : a1 [! i' R% {/ s% V
  16.   Info : using stlink api v2) _- b: _9 ~7 a; h% s0 ]( N* H
  17.   Info : Target voltage: 3.249867
    + j9 W0 v) V5 G, y$ F! {5 c
  18.   Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints% L2 O; C3 M4 X, a5 U
  19.   auto erase enabled
    8 Y  i. i5 M1 v* n
  20.   Info : device id = 0x20036410
    5 K% t4 e5 @7 Q% F
  21.   Info : flash size = 128kbytes6 g) K9 j: e( R2 g) Y2 U
  22.   target halted due to breakpoint, current mode: Thread
    & f( r" J+ o5 ^4 m1 }2 Y
  23.   xPSR: 0x61000000 pc: 0x2000003a msp: 0x20004e20, B3 ], h1 z2 G+ ~6 g
  24.   wrote 21504 bytes from file hello in 1.222309s (17.181 KiB/s). `/ ]3 C: x. A, B
  25.   shutdown command invoked
复制代码

; X* U  Z: [+ w( W) F7 E制作PCB
- N" H/ @! z- v9 f2 S# ^我从PCB逆向工程开始,并将其记录在KiCad的eeschema中。2 {/ D. q! M" b* v0 B+ Y

' c: N( w! F8 K5 e. _9 X1 R结果是见附件
2 ~4 S2 c( n# v7 a/ L' c: u  p9 J! z8 X' X7 W5 Q
这是我的电脑绘制的的PCB,你的可能有点不同,但是MCU引脚到输出引脚的映射应该是相同的,否则ST Link固件无法工作。
4 Q* }% j( ^( M+ s$ K; x) K
* L) Y/ ]5 w  b, e3 R即使没有增加引脚,也有5个GPIOs可供外部使用。这5个引脚中有2个支持TIM4 _ CH1和TIM4_CH3 )和1个ADC引脚( ADC_IN5 )
! y/ w2 `* ]4 W: J: ^8 Y
7 g5 i4 I- r* v6 `% o; J8 { QQ截图20181231230539.jpg

4.rar

下载

35.63 KB, 下载次数: 17

评分

参与人数 1 ST金币 +4 收起 理由
wofei1314 + 4

查看全部评分

赞 收藏 4 评论6 发布时间:2018-12-31 23:02

举报

6个回答
epochal 回答时间:2019-1-1 07:44:00
谢谢分享!
zwei99999999 回答时间:2019-1-1 11:52:40
老牛洋车 回答时间:2019-1-1 21:25:14
这个帖子的文风有点类似英语啊。
西点钟灵毓秀 回答时间:2019-1-1 23:35:06
改造成啥样才是个头
sylar.z 回答时间:2019-1-2 09:00:56
   
tobot 回答时间:2019-1-2 09:18:54
目标是把一个st-link改造成双头的?
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版