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

ST - Link用途改造

[复制链接]
丿灬幸灬 发布时间:2018-12-31 23:02
本帖最后由 丿灬幸灬 于 2018-12-31 23:06 编辑
3 ^* H  [* j/ S: x  E9 \7 U% J$ g3 }9 S  L9 s
7122831544125350361.jpg $ a, U% ?9 e% t9 ?: R/ R/ F
+ k+ g3 s  t. |
ST - Link具有强大的MCU、漂亮的外壳和连接器,可用于许多项目。: N2 J4 \# p9 {: ]8 s2 Z4 ]6 j
- U0 B4 Z6 Q& H( B; U. z
描述
3 z6 @- H  E3 Q( g众所周知的ST - Link克隆是围绕一个STM32 MCU构建的,它们带有USB A接口,还有10个外露引脚。非常适合进行用途改造!0 Y% s& j& A2 F" x* s4 n1 K
. w+ u' Y- k, P5 ~
STM23F101CBT6是ARM Cortex - M3核微控制器,具有128KB闪存、16KB SRAM以及大量计时器、总线和GPIOs。
$ @" c& k" P: ~: i/ t  H! w7 o/ m
9 _& f# t( {% a4 Z; q2 I由于外部只有10个引脚,所以重新调整用途的选择并不是无止境的,但对于很多项目来说,这可能是一个很好的起点。
- Y) C/ R; K$ `7 I
& s3 N) r5 e% G5 p( S/ y+ y# z释放更多引脚7 h  Y4 C4 T/ _* t9 L
如果你需要更多的引脚,并且对焊接有信心,小的改动可以带来一些额外的好处。
: B) \+ @; Y: L0 \0 @1 D0 f; d6 [3 @1 K0 }* J& Q' ?
1.jpg . v; b6 c3 f1 e- Y9 e  R& S1 Z+ U

  r7 K& N  ]( r如果将电阻R8替换为0Ω电阻或焊料桥,则MCU引脚43 ( PB7 )和MCU引脚46 ( PB9 )均与连接器引脚5 ( SWIM )相连。如果你不需要R8旁边680Ω的上拉电阻R10,这可能也是一个好主意。8 b- A. P# U& V# u# N! d6 ~

; u4 r. v5 n% o; }( |6 r通过这种简单的焊接操作,如果你设法从外部整理I2C总线上拉,你现在可以在引脚42(TX)和43(RX)上使用USART1,甚至在引脚42 ( SCL )和43 ( SCA )上使用I2C1。0 v+ ]2 N4 [4 E. v+ _% l& p* K

2 V9 w5 y& |5 D3 `. g9 C设计( h; K; [9 b; [, q8 V, Q
在你重新编程ST - Link之前,它必须被“解锁”。解锁它的方式是使用OpenOCD。
7 p4 w% V" @! s$ [
; `3 {& O! I4 @2 Y6 s你还需要第二个ST - Link或其他SWD下载器和一些跳线。
% _7 E# H8 Y/ t% Y" N
3 q# o. J4 L: W3 z) l( G! dST - Link在PCB上有编程连接口。你可以打开盖子来接触它们,盖子没有粘在一起,但是你可以发现可以抽开。
1 G( x' g+ s# s8 @  E; p8 R6 }3 f; Y4 e% w0 e* p# K; u2 G
2.jpg # U: `- X, v3 g: [" A& E
! h. |/ G" |9 J2 w! }+ }
PCB应该看起来像注释图片,有些ST - Link的引脚不同,但是用万用表测量引脚非常容易。
4 m+ b6 o9 g" s" e/ F. _9 ESWDIO连接应该连接到引脚34 (引脚编号从MCU上的点位置的引脚1开始),SWCLK是引脚37。* S6 `2 K2 w( o. x, U. j9 V

# I; h$ P: R; G8 `9 u! C0 E' |接地( GND )可以使用引脚10上的GND引脚进行测试,3.3V引脚也是如此。% y8 b3 h" f) K0 z
没有必要找到GND和3.3V引脚来对stlink进行编程,因为您可以使用接口上的VCC和GND来连接,最好还是测量一下,
, |5 R# P9 V$ l# e以确保SWDIO和SWCLK连接是正确的。
: G+ L+ }% l' h0 o0 [3 C& R: X0 B; n1 ~/ M$ ?
3.jpg
" k8 U8 y! w. t+ d! o6 y0 [- p7 n0 b6 X" U( E  U
如果你使用引脚10连接地线或3.3V,你应该能够使用逻辑分析仪来抓取SWDIO和SWCLK信号。: r# w4 r3 s) \: Q8 a. |
  C; E' J9 M# M+ I6 N! h4 \2 j( z
解锁
/ a1 y8 G6 \1 F* _" [( h
  1. $ openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c "init" -c "halt" \
    ) Z0 z9 f& R  i. t* S* a- U4 n
  2.     -c "stm32f1x unlock 0" -c "shutdown"
    5 O: S" @! @$ {! v. U2 F
  3. Open On-Chip Debugger 0.10.0
    + Z# c8 r; U4 P" }7 Z9 X5 K$ ^
  4. Licensed under GNU GPL v2. j. s4 q9 U- g- w$ }- n! Y, q
  5. For bug reports, read
    - e7 C$ d0 q0 D0 Z1 N
  6.         http://openocd.org/doc/doxygen/bugs.html  }1 \0 u/ s0 `) L
  7. Info : auto-selecting first available session transport "hla_swd". To override use 'transport select '.
    / W5 v  X# x: x, v- J8 f1 Y
  8. Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD" B# b, X% H+ o# U
  9. adapter speed: 1000 kHz
    & `; c( S" E% G" x3 }- J) j
  10. adapter_nsrst_delay: 1007 `+ r. R, N- R2 S
  11. none separate- \& n2 G" K# r& e
  12. Info : Unable to match requested speed 1000 kHz, using 950 kHz
    6 J0 d# s- o- z# g' n$ }
  13. Info : Unable to match requested speed 1000 kHz, using 950 kHz
    : @1 \' U3 [0 ~6 k0 w
  14. Info : clock speed 950 kHz* J3 M' J6 h- h5 Y
  15. Info : STLINK v2 JTAG v28 API v2 SWIM v7 VID 0x0483 PID 0x37482 V1 ]' C6 X& c0 A* V- w& [
  16. Info : using stlink api v2$ ?) g; \7 g! v' x
  17. Info : Target voltage: 3.249867. |0 ?* A5 T, N, |
  18. Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints+ |3 R! a+ W! \4 N. b
  19. target halted due to debug-request, current mode: Thread
    5 q5 @2 ?7 x+ s4 L# f0 l, T
  20. xPSR: 0x61000000 pc: 0x08003d5a msp: 0x20004e38
    9 J( W" T9 V) ^
  21. Info : device id = 0x200364104 X: Y4 h5 I8 M7 }) s! [
  22. Info : flash size = 128kbytes
      d& W/ e  @# I
  23. stm32x unlocked.; |1 I/ g- u, O4 V
  24. INFO: a reset or power cycle is required for the new settings to take effect./ O0 N2 \2 g  C# a; K- b
  25. shutdown command invoked
复制代码
/ L' q: }) |: @. @& m
接下来,拔下3.3V电源线来重新启动设备。
2 t$ P- Z. i% q
9 p/ z8 _) k( p- i* ~3 s8 z您现在可以擦除flash,并向其中写入自己的固件。
: N8 E5 C: }# F" g" A
4 }- i7 ~* {4 U
  1. $ openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c "init" -c "halt" \
    ' o& e4 z9 c) T- I
  2.     -c "flash write_image erase hello 0x8000000" -c "shutdown"
    ) E& [/ W' x" V
  3.   Open On-Chip Debugger 0.10.0
    0 l2 @. t+ x& s* H9 V
  4.   Licensed under GNU GPL v2
    7 @/ q1 i+ @$ D
  5.   For bug reports, read
    3 A1 [3 w& N" q9 O! s  z; v
  6.           http://openocd.org/doc/doxygen/bugs.html
    . M( r6 y1 j, D  Z' t
  7.   Info : auto-selecting first available session transport "hla_swd". To override use 'transport select '.. \, _, x: ^. H* X
  8.   Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
    ( z4 R; H: g, A
  9.   adapter speed: 1000 kHz
    ! E. @; H! a  I/ X
  10.   adapter_nsrst_delay: 100& R1 I7 N8 a- c$ n
  11.   none separate! i; s- O  u; j# Y# B
  12.   Info : Unable to match requested speed 1000 kHz, using 950 kHz9 y( C& j! ^# S
  13.   Info : Unable to match requested speed 1000 kHz, using 950 kHz& ]: \/ m7 J  g6 N
  14.   Info : clock speed 950 kHz, N& t3 C: [; f. t$ y
  15.   Info : STLINK v2 JTAG v28 API v2 SWIM v7 VID 0x0483 PID 0x37480 w2 N" ^7 v% o! [- F' g5 N
  16.   Info : using stlink api v2
    6 |3 c* |4 {: g" o8 d. O6 h" J
  17.   Info : Target voltage: 3.249867
    $ V7 f8 W$ X5 z/ M1 _
  18.   Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints% N  E* B4 W: a8 J; c1 D
  19.   auto erase enabled
    5 {- C4 F& X, V$ E1 c  j: m7 s
  20.   Info : device id = 0x20036410+ g; h/ l% E! w( t8 N/ b) l
  21.   Info : flash size = 128kbytes
    " H- L) ~/ `5 L* t
  22.   target halted due to breakpoint, current mode: Thread & r8 ^/ y  y' R( x1 L
  23.   xPSR: 0x61000000 pc: 0x2000003a msp: 0x20004e20, ]* ]$ H7 C9 s1 ^9 v
  24.   wrote 21504 bytes from file hello in 1.222309s (17.181 KiB/s)7 E6 A' u; a: @. w1 w
  25.   shutdown command invoked
复制代码
9 l2 J+ L  a" o" Q; h, p
制作PCB
' P# ~$ \% c% y# o2 x我从PCB逆向工程开始,并将其记录在KiCad的eeschema中。
7 }; S  @1 g; L7 [) Z7 `5 @/ g: }" W6 a4 Y
结果是见附件3 L+ K+ o" y# k

* v* ?8 _6 }$ ^5 q# C' z这是我的电脑绘制的的PCB,你的可能有点不同,但是MCU引脚到输出引脚的映射应该是相同的,否则ST Link固件无法工作。+ T8 S: K* {2 ~. O& D) ~% t% G/ t

; O" D7 T! }& ^; Q即使没有增加引脚,也有5个GPIOs可供外部使用。这5个引脚中有2个支持TIM4 _ CH1和TIM4_CH3 )和1个ADC引脚( ADC_IN5 )
0 R* }: b$ l6 u# j5 l! f5 x, s
8 X# S1 M% [" N2 A* V& _ 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 手机版