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

ST - Link用途改造

[复制链接]
丿灬幸灬 发布时间:2018-12-31 23:02
本帖最后由 丿灬幸灬 于 2018-12-31 23:06 编辑
( k: z) x& k3 c$ i( s6 i' D
$ F4 _" e# |: X. x 7122831544125350361.jpg
9 d% K4 Z6 ^+ T; v
6 \: ^) C6 ]5 K" q+ tST - Link具有强大的MCU、漂亮的外壳和连接器,可用于许多项目。+ a+ N  _$ M: ^% Y! n( R9 O2 @
5 s- |0 L) p  c' J$ I
描述! V6 j4 \/ o! m/ j) |2 u
众所周知的ST - Link克隆是围绕一个STM32 MCU构建的,它们带有USB A接口,还有10个外露引脚。非常适合进行用途改造!
$ G# m2 }' v0 q$ y
( g* I$ f2 v$ [# g& H3 TSTM23F101CBT6是ARM Cortex - M3核微控制器,具有128KB闪存、16KB SRAM以及大量计时器、总线和GPIOs。+ }0 w% b& t: _3 c" Q* f

6 R' q8 z, T, z1 Y由于外部只有10个引脚,所以重新调整用途的选择并不是无止境的,但对于很多项目来说,这可能是一个很好的起点。( o: X) q2 ]3 Y  V- I# [& u

( d  ^% x. [) X* i8 g释放更多引脚
9 U' K; O  g7 {! g0 n0 J- u0 \8 x- i如果你需要更多的引脚,并且对焊接有信心,小的改动可以带来一些额外的好处。
, g2 W* R. T3 s) J0 ^" g+ D( f0 d* s
+ Z* X1 C5 h; W6 o( e5 }# D 1.jpg 3 G, b8 s8 o5 O& G

+ b: L5 j6 b+ |  h+ w$ d6 G3 R如果将电阻R8替换为0Ω电阻或焊料桥,则MCU引脚43 ( PB7 )和MCU引脚46 ( PB9 )均与连接器引脚5 ( SWIM )相连。如果你不需要R8旁边680Ω的上拉电阻R10,这可能也是一个好主意。0 ^* i. W$ D# u% K/ N2 T

+ f: b- V, S% h2 j7 r" B通过这种简单的焊接操作,如果你设法从外部整理I2C总线上拉,你现在可以在引脚42(TX)和43(RX)上使用USART1,甚至在引脚42 ( SCL )和43 ( SCA )上使用I2C1。
$ R* `4 p! e# O' D$ ^7 }: N* @6 e3 P* G% a0 J) z* Z1 c4 O
设计
- M5 O9 n) ]9 s4 J; V9 C+ n在你重新编程ST - Link之前,它必须被“解锁”。解锁它的方式是使用OpenOCD3 }  p* M$ Z& U# ]/ V
4 O' t# \% g0 R7 \3 N' }# [: B
你还需要第二个ST - Link或其他SWD下载器和一些跳线。
9 Y- D1 Y3 e4 ^- U7 E' C1 G8 u# X4 n- H" g) v8 E. E
ST - Link在PCB上有编程连接口。你可以打开盖子来接触它们,盖子没有粘在一起,但是你可以发现可以抽开。" q0 [% ~* M. M

7 O7 |' L! B8 L& T4 J8 D; q6 A3 w 2.jpg
3 }* b  ~1 h! s  h4 Z3 m7 B! y1 o, q2 K3 l. V
PCB应该看起来像注释图片,有些ST - Link的引脚不同,但是用万用表测量引脚非常容易。
, E- J! R! e. B9 H/ n! [SWDIO连接应该连接到引脚34 (引脚编号从MCU上的点位置的引脚1开始),SWCLK是引脚37。
( i9 j8 `7 J: O, q9 t' Y
( N! [& m1 F' c0 v1 v, x. m接地( GND )可以使用引脚10上的GND引脚进行测试,3.3V引脚也是如此。8 `5 X$ b- B3 w
没有必要找到GND和3.3V引脚来对stlink进行编程,因为您可以使用接口上的VCC和GND来连接,最好还是测量一下,
% d: j3 I1 n7 R以确保SWDIO和SWCLK连接是正确的。4 r" c/ A! K2 g1 g  i
/ N, b- O: ~* t8 f
3.jpg $ p7 T% \: c5 a! G: J3 M: m

: u8 o/ @# j1 E如果你使用引脚10连接地线或3.3V,你应该能够使用逻辑分析仪来抓取SWDIO和SWCLK信号。
! t' ?0 [6 f, V; E8 Z& ^1 k* _: Z
& @+ s& u+ L8 m% R解锁
$ ]* X; m0 Q2 v% r2 Q' r
  1. $ openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c "init" -c "halt" \
    3 r' b6 ~! n6 S: J) n
  2.     -c "stm32f1x unlock 0" -c "shutdown"5 O& W* |9 F  [
  3. Open On-Chip Debugger 0.10.0& p$ i+ P+ [- x: G
  4. Licensed under GNU GPL v2+ [5 k- g7 L6 a8 l% Z+ T
  5. For bug reports, read
    1 K- }6 D$ I+ C7 ^7 O- y/ ?
  6.         http://openocd.org/doc/doxygen/bugs.html
    1 [7 o4 [. C5 G
  7. Info : auto-selecting first available session transport "hla_swd". To override use 'transport select '.
    ; e: W% k: M3 v0 q
  8. Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD3 s3 \* s, Z8 k" ?6 p" o# `
  9. adapter speed: 1000 kHz
    % ]1 B: j3 c' P' X  n
  10. adapter_nsrst_delay: 100
    - H7 V. y  V0 {4 Z1 K4 }
  11. none separate
    , A8 c6 j+ E6 O1 t( @
  12. Info : Unable to match requested speed 1000 kHz, using 950 kHz
    - W+ m  m5 B* ^" M
  13. Info : Unable to match requested speed 1000 kHz, using 950 kHz9 R/ C3 g. _; l1 @1 k
  14. Info : clock speed 950 kHz3 k. b/ \2 u+ E: ]* t
  15. Info : STLINK v2 JTAG v28 API v2 SWIM v7 VID 0x0483 PID 0x3748
    # r3 V. x, k  }# n' k; m+ @$ P
  16. Info : using stlink api v2
    1 k* C2 A6 F6 {. |: k2 X; Q
  17. Info : Target voltage: 3.249867& H" @% H8 t# \# b+ U
  18. Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints1 F7 Z' s1 m( i, ~- w
  19. target halted due to debug-request, current mode: Thread 4 W1 `3 J8 K9 Z
  20. xPSR: 0x61000000 pc: 0x08003d5a msp: 0x20004e38* Q" s3 t/ P; i6 U% o8 C
  21. Info : device id = 0x20036410
      G9 ~, h" |; R3 y& }: T" q
  22. Info : flash size = 128kbytes
    0 c5 y  x' O+ k, z0 `
  23. stm32x unlocked.7 Y3 M* [2 o. _. G: u
  24. INFO: a reset or power cycle is required for the new settings to take effect.6 i' j" r- i0 h( x9 j7 T( {
  25. shutdown command invoked
复制代码

; b9 K1 c4 R" X接下来,拔下3.3V电源线来重新启动设备。3 [: I8 \, f) w, A4 ]' }2 @# ?) g
+ L* `( |4 K2 Q2 z
您现在可以擦除flash,并向其中写入自己的固件。2 P5 b) N- ?8 }7 q" F5 k" O

+ |# J! [+ @5 {) Z% E
  1. $ openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c "init" -c "halt" \
    / m) g/ d9 |6 e5 J5 S7 u
  2.     -c "flash write_image erase hello 0x8000000" -c "shutdown"1 V) z8 f9 L' w# s. I  B1 _
  3.   Open On-Chip Debugger 0.10.07 H/ g  m: {, i: C8 i. [6 P: d
  4.   Licensed under GNU GPL v2+ x2 q& \$ [8 V2 k: L/ _0 a
  5.   For bug reports, read* m4 D% c: o0 s0 x0 [
  6.           http://openocd.org/doc/doxygen/bugs.html
    ( D% }1 x6 `$ g+ r4 x2 t2 [6 y& L
  7.   Info : auto-selecting first available session transport "hla_swd". To override use 'transport select '.; r$ p& n' y  n$ T4 l
  8.   Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
    3 s0 }0 u0 F, x! y* ]$ r
  9.   adapter speed: 1000 kHz
    0 H1 E- ]  \  X; K7 }% H
  10.   adapter_nsrst_delay: 100( T, n, B( _. {! e) j% S7 X% n6 q% ^' o
  11.   none separate
    5 |$ L  Z: M5 C% Y3 G# i
  12.   Info : Unable to match requested speed 1000 kHz, using 950 kHz
    1 K* i6 F4 f! |/ t5 S' B
  13.   Info : Unable to match requested speed 1000 kHz, using 950 kHz
    2 w6 {( V7 L; b
  14.   Info : clock speed 950 kHz. ~+ r8 R$ p0 V: p! [
  15.   Info : STLINK v2 JTAG v28 API v2 SWIM v7 VID 0x0483 PID 0x3748- S/ {/ @3 I* B  j- m, s$ X
  16.   Info : using stlink api v29 j% R+ Z2 F0 D; `6 Z# C! T% {
  17.   Info : Target voltage: 3.249867
      T1 {1 C- ?6 l& z, R! k
  18.   Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints% @; d1 `  u2 D/ {6 p) a7 u
  19.   auto erase enabled+ w5 A: u9 G' i$ S# C
  20.   Info : device id = 0x200364103 G1 b# D* L" J
  21.   Info : flash size = 128kbytes
    . X0 i3 U: G' H
  22.   target halted due to breakpoint, current mode: Thread
    $ y5 X8 c) a* i
  23.   xPSR: 0x61000000 pc: 0x2000003a msp: 0x20004e20
      r$ O& h/ _& \
  24.   wrote 21504 bytes from file hello in 1.222309s (17.181 KiB/s)
    / |# w1 A) K2 [
  25.   shutdown command invoked
复制代码
* {! K8 m; _# |5 X4 a' p( C
制作PCB" ?8 v3 M6 E2 _
我从PCB逆向工程开始,并将其记录在KiCad的eeschema中。! L" s2 G1 d9 z( d' g3 A2 V5 B7 A( b+ a

" i) w- C; W4 M4 A; G: c+ J结果是见附件
3 S% i5 F2 g. N. G/ S- {: e
. }4 G( H# I$ f0 C, W. p/ t这是我的电脑绘制的的PCB,你的可能有点不同,但是MCU引脚到输出引脚的映射应该是相同的,否则ST Link固件无法工作。" R3 c- _; d% h8 V$ z% `
+ C( f, `0 K5 _
即使没有增加引脚,也有5个GPIOs可供外部使用。这5个引脚中有2个支持TIM4 _ CH1和TIM4_CH3 )和1个ADC引脚( ADC_IN5 )* j5 Y& n( \# N
$ l2 F* b5 y& g' }/ I
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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版