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

ST - Link用途改造

[复制链接]
丿灬幸灬 发布时间:2018-12-31 23:02
本帖最后由 丿灬幸灬 于 2018-12-31 23:06 编辑
. X5 t6 G  y- A6 T* @. }0 V5 {9 ], f( S+ J
7122831544125350361.jpg
$ ^: h5 p) R' y, D. i- X5 g  w4 N% t  |. M8 Z% @; x% a
ST - Link具有强大的MCU、漂亮的外壳和连接器,可用于许多项目。
9 [, G2 W& H. s- ^7 r$ Z$ x% D
( `, G% q5 I0 e3 Z( [0 y描述' J9 L1 d  x- w( W+ J/ ^! h; D  Y
众所周知的ST - Link克隆是围绕一个STM32 MCU构建的,它们带有USB A接口,还有10个外露引脚。非常适合进行用途改造!
4 W  Q5 C: _( L5 R/ y2 }4 o. k, e7 |" O
STM23F101CBT6是ARM Cortex - M3核微控制器,具有128KB闪存、16KB SRAM以及大量计时器、总线和GPIOs。+ J; q+ l3 b% p) V) t5 U$ y

; J5 z9 v2 G0 M7 J由于外部只有10个引脚,所以重新调整用途的选择并不是无止境的,但对于很多项目来说,这可能是一个很好的起点。$ u& r- p9 I. T  {+ Q: s# ?1 }
- c4 I( Y1 D: o7 |5 ]3 Y
释放更多引脚# }. l" g" k6 f8 h
如果你需要更多的引脚,并且对焊接有信心,小的改动可以带来一些额外的好处。
- |$ P. s0 y1 U/ m+ H/ e8 t) z4 z
( [, c+ p7 k* j1 S( ^( _ 1.jpg $ e! z2 [7 o2 `0 s* c# I! d+ p
2 ?5 }. T' S! u6 ?6 ~
如果将电阻R8替换为0Ω电阻或焊料桥,则MCU引脚43 ( PB7 )和MCU引脚46 ( PB9 )均与连接器引脚5 ( SWIM )相连。如果你不需要R8旁边680Ω的上拉电阻R10,这可能也是一个好主意。
) n2 `# }9 X* \8 @9 |. C
, D9 c& S& W  d6 J( M& y8 K# j5 s通过这种简单的焊接操作,如果你设法从外部整理I2C总线上拉,你现在可以在引脚42(TX)和43(RX)上使用USART1,甚至在引脚42 ( SCL )和43 ( SCA )上使用I2C1。
9 A2 @2 b, U/ ~0 Z" f2 ?# u: p) j7 L) s# |3 Z) A; ?
设计
7 C( b  \7 h; [6 p在你重新编程ST - Link之前,它必须被“解锁”。解锁它的方式是使用OpenOCD5 p, i: I# p2 `* \

0 J: J9 p" [0 C* d4 W+ o  Z你还需要第二个ST - Link或其他SWD下载器和一些跳线。! u) {1 h8 F! m

# s) W2 p* ?0 z1 z" v% G+ xST - Link在PCB上有编程连接口。你可以打开盖子来接触它们,盖子没有粘在一起,但是你可以发现可以抽开。
; i% k0 h6 n/ O8 U# a2 J7 t7 m9 m1 C2 P# \
2.jpg
! f5 k8 v0 q( O' L) k+ F4 c4 p+ R5 q# M# L0 e) F% \) m
PCB应该看起来像注释图片,有些ST - Link的引脚不同,但是用万用表测量引脚非常容易。
2 z% V6 \8 M$ G2 ~SWDIO连接应该连接到引脚34 (引脚编号从MCU上的点位置的引脚1开始),SWCLK是引脚37。" `; V% m; E; I+ G

- y5 D/ \7 u- V2 R9 J' r( x" Q& X接地( GND )可以使用引脚10上的GND引脚进行测试,3.3V引脚也是如此。, D/ v# Y/ }( E) d
没有必要找到GND和3.3V引脚来对stlink进行编程,因为您可以使用接口上的VCC和GND来连接,最好还是测量一下,$ e: ~3 p) ?+ d8 v2 r5 q
以确保SWDIO和SWCLK连接是正确的。
1 Z, z- h) _) y5 u9 a- k5 w2 U/ T! X& u  T# j8 {: z" i- L
3.jpg
# `6 G' M/ a) ~2 Z& _" d& W* ~2 C# @3 a! X
如果你使用引脚10连接地线或3.3V,你应该能够使用逻辑分析仪来抓取SWDIO和SWCLK信号。
, [, c& E* [8 P  U- w8 o2 h! F1 G
解锁7 x. G6 L+ k! c/ p( _/ A, w9 [
  1. $ openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c "init" -c "halt" \5 j3 i, Z" M* z6 J- v5 e
  2.     -c "stm32f1x unlock 0" -c "shutdown"; J3 K4 \4 f% u: a& ^" ^3 ], ]0 }
  3. Open On-Chip Debugger 0.10.0
    , Q9 U- P0 [" v! G' r4 n
  4. Licensed under GNU GPL v2
    1 q' t% Z9 l1 F5 K& _) V
  5. For bug reports, read2 q# Q, `! a1 v
  6.         http://openocd.org/doc/doxygen/bugs.html
    2 T8 f5 C' N" k5 e
  7. Info : auto-selecting first available session transport "hla_swd". To override use 'transport select '.
    : E' N$ s+ y+ x& H( j* q
  8. Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD: ~7 B. `0 c& r# ?' F( S# n
  9. adapter speed: 1000 kHz
    : W; y: P. x4 I1 H& O% P. Z8 K( T: C( u
  10. adapter_nsrst_delay: 1002 f" l/ l5 A3 H2 C4 S
  11. none separate
    5 _& h# [* X, Y
  12. Info : Unable to match requested speed 1000 kHz, using 950 kHz( d% z- w+ e4 R9 T
  13. Info : Unable to match requested speed 1000 kHz, using 950 kHz
    8 w5 v% ?# I+ ^7 w" Z0 [
  14. Info : clock speed 950 kHz( k7 J" ~- f& E5 p
  15. Info : STLINK v2 JTAG v28 API v2 SWIM v7 VID 0x0483 PID 0x3748
    % }/ @- H  y% C0 D7 `( n
  16. Info : using stlink api v2
    5 x# q" [/ M2 {; T$ g
  17. Info : Target voltage: 3.249867
    " G8 g7 G- N1 Z  _( o
  18. Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints! D' f: M( C& N( O6 J
  19. target halted due to debug-request, current mode: Thread 6 y4 j) J- q) d' r
  20. xPSR: 0x61000000 pc: 0x08003d5a msp: 0x20004e38
    3 G7 H: c$ {: n0 s$ _& e, v+ i/ S
  21. Info : device id = 0x200364103 H0 G) K# z; W/ R7 ^
  22. Info : flash size = 128kbytes
    4 ]. a1 R; r9 A! X& r( s6 U  U2 w6 z
  23. stm32x unlocked.
    $ U3 t3 u3 K% t: \1 O+ J7 R( Q# p! Q
  24. INFO: a reset or power cycle is required for the new settings to take effect.
    ) b8 X) W+ E/ L+ q
  25. shutdown command invoked
复制代码

5 Q, k- M6 T, L. R接下来,拔下3.3V电源线来重新启动设备。
4 e' A6 M% u  n- ~  \( e' y) q& F9 w1 w  T4 n9 R/ Y
您现在可以擦除flash,并向其中写入自己的固件。- `* y1 w' |3 L( H8 e& Y& \  p" ^
$ B" ^) I. r5 X1 R
  1. $ openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c "init" -c "halt" \
    - C6 V1 I- t; H9 O" W/ F6 p
  2.     -c "flash write_image erase hello 0x8000000" -c "shutdown", S2 Z1 z' p3 G- c/ _) E( H
  3.   Open On-Chip Debugger 0.10.0
    5 i% A! {  o& M2 h" q
  4.   Licensed under GNU GPL v29 q' J% h( e& z: R$ y/ S0 C
  5.   For bug reports, read
    $ C, a1 j, i2 j5 M: d" R( l9 x
  6.           http://openocd.org/doc/doxygen/bugs.html
    : {& B. p) }. x# Q; _) m* Z: v
  7.   Info : auto-selecting first available session transport "hla_swd". To override use 'transport select '.* r8 `" D/ @. k$ F5 P$ p. B1 e0 `
  8.   Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
    ) b6 @1 Y: G7 Y- P$ H% c
  9.   adapter speed: 1000 kHz
    3 E3 c) q. H. a" Y1 Q: Z
  10.   adapter_nsrst_delay: 100" O$ _; J, d& I
  11.   none separate2 G1 o& |' S( g/ n
  12.   Info : Unable to match requested speed 1000 kHz, using 950 kHz! y% U- T$ c" v0 C
  13.   Info : Unable to match requested speed 1000 kHz, using 950 kHz8 L" t% p$ j3 E6 M
  14.   Info : clock speed 950 kHz# N! \7 |+ W; G; I3 a0 R8 i9 U
  15.   Info : STLINK v2 JTAG v28 API v2 SWIM v7 VID 0x0483 PID 0x3748
    : s% O, D3 b# K4 h! ]- I& O- R/ q
  16.   Info : using stlink api v2
    8 u  C, n! M# G4 V( ~% \; z8 u7 Z
  17.   Info : Target voltage: 3.249867
    0 R1 o9 d, a0 x/ B4 F# P5 C3 F
  18.   Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints
    3 F) A0 B9 B' b4 u) i0 w8 N" z/ z% x
  19.   auto erase enabled
    + n/ k4 F# X# m8 Q$ I) O9 i5 Q; G
  20.   Info : device id = 0x20036410
    # z; F/ B3 y, r, q. a
  21.   Info : flash size = 128kbytes
    ; Y! L$ E* U7 _* d, w& ^- D! Y- y
  22.   target halted due to breakpoint, current mode: Thread
    $ t  T  H5 C3 m0 M5 b: m
  23.   xPSR: 0x61000000 pc: 0x2000003a msp: 0x20004e20
    3 y& g8 A2 x7 P* [% I2 C) ^
  24.   wrote 21504 bytes from file hello in 1.222309s (17.181 KiB/s)' Q! b  O% y( \9 |7 V* a" M3 C
  25.   shutdown command invoked
复制代码
7 P) Y. x' T- _- V9 K
制作PCB
/ s, k9 [% H8 Z7 B. t5 [: S我从PCB逆向工程开始,并将其记录在KiCad的eeschema中。& H8 o8 ^# v2 N" Z' a: E7 _+ k

1 h+ {" p0 S* e1 v: C6 M9 Y% V) T结果是见附件/ i1 x; f9 l% [4 J) M
; s+ |8 @' ~8 g* ]" S7 {  k. f
这是我的电脑绘制的的PCB,你的可能有点不同,但是MCU引脚到输出引脚的映射应该是相同的,否则ST Link固件无法工作。
8 N+ {7 p0 l& t/ \' F9 r9 Q: T  d3 L! o3 H
即使没有增加引脚,也有5个GPIOs可供外部使用。这5个引脚中有2个支持TIM4 _ CH1和TIM4_CH3 )和1个ADC引脚( ADC_IN5 )0 C  I7 O, i5 I" H1 F
% r5 q, d$ r! p+ ~% r* o3 l0 p( G
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 手机版