【自制攻城狮工具】ST-LINK V2_1(亲测可用)-V0.1

3个月前

简介:最近迷上了攻城狮工具的制作,因手头有个潘多拉开发板,板载一个STLINK/V2.1,这玩意支持STM32调试,还带了一个虚拟串口和虚拟U盘下载,所以用立创EDA打造了一个小巧的STLINK/V2.1

开源协议: GPL 3.0

描述

本项目完全使用立创EDA设计,喜欢本项目的朋友,请在评论区上方点个赞,谢谢各位的支持!欢迎大家来收藏本项目。

简介

ST-Link的硬件,官方推出了三大版本:V1、V2和V3。在官方TN1235ST-LINK衍生产品概述中有详细的说明,因篇幅原因就不展开来讲了,下面贴上一张官方手册的介绍。

STLINK 版本介绍.png

  • ST-Link/V2:支持STM32和STM8调试,不带虚拟串口,TB上卖的大多是这种,目前手头还有好几个这个版本的ST-Link。后面会使用这个版本进行烧录。
  • ST-LinkV2-1: 支持STM32调试,带虚拟串口和虚拟U盘下载,目前ST官方的Nucleo系列评估板上面板载的ST-Link就是这个版本。

本项目制作的就是用于STM32程序下载、仿真调试和串口功能为一体的ST-Link V2-1

LCEDA 2D & 3D图片

2D图片

图0 2D TOP面.png图1 2D BOT面.png


3D图片

图2 3DTOP面.png

图3 3DBOT面.png

原理图参考

ST-link V2.1 本项目原理图参考了正点原子的潘多拉开发板上的ST-link V2-1设计,如下图。初次接触ST-link V2.1就是在这块潘多拉开发板上。


注意事项:

潘多拉开发板上的ST-link V2-1 出厂主控使用的STM32F103C8T6,FLASH 容量为64K,但是ST-link V2-1最新的固件已经超过了64K,芯片容量不足 因此本项目主控选择的是STM32F103CBT6(商品编号:C8304),FLASH容量为128KB,是C8T6的大容量版本,可以PIN to PIN 替换。


潘多拉开发板上的 USB_ST_LINK 可以直接搬运过来

潘多拉开发板上的 USB STlink v2.1.png

潘多拉开发板上的 POWER 只需要取一路LDO搬运过来

潘多拉开发板上的 POWER.png

潘多拉开发板上的STlink v2.1 ,这部分也可以搬运过来,将STM32F103C8T6更换为STM32F103CBT6

潘多拉开发板上的STlink v2.1.png

在附件中上传了一张ST官方的ST-Link V2.1的原理图。

在ST官方的ST-Link V2.1图纸中有一个名为COM的指示灯,这是一个红绿双色的LED指示灯,就是下图所示的这个LED。

COM指示灯.png

那么这个指示灯有什么作用呢,在官方的TN1235技术手册中有专门的介绍,截取相关部分如下。

STLINK COM LED.png

译文如下:

自ST-LINK / V2起,所有ST-LINK板均带有一个标有“ COM”的LED(在外壳或PCB上)。 无论连接类型如何,此LED都会显示ST-LINK状态:

  • LED呈红色闪烁:正在与PC进行第一个USB枚举。
  • LED为红色:PC与ST-LINK之间的通信已建立(枚举结束)。
  • LED呈绿色和红色交替闪烁:正在目标和PC之间交换数据。
  • LED为绿色:上一次通信已成功。
  • LED为橙色:与目标的ST-LINK通信失败

本项目参考的潘多拉开发板集成的ST-LINK V2-1 用了一个红色的LED代替了这个红绿双色的COM指示灯,因此本项目也沿用了这一设计,COM指示灯用一个红色LED 替代。


PCB设计

注意事项 1、USB 部分的D-和D+ 数据线必须使用差分走线。

差分走线.png

2、晶振电路部分必须靠近MCU放置。

晶振电路.png


焊接调试

图4.jpg

图5.jpg

图6.jpg

图9.jpg

图10.jpg

图11.jpg

图12.jpg

图14.jpg

图15.jpg


ST-Link V2.1固件烧录&固件更新

获取固件

由于官方没有将ST-Link里面源码公开,同时也没有直接给出ST-Link固件(读保护),但是目前(2020年7月)网上已有流传多个版本的固件。 版本一:STLink V2.J16.S4版本固件:标准V2版本,支持SWD和SWIM接口,这个版本的固件是。已上传附件。 版本二:STLink V2.J28.M18版本固件:是用于ST-LINK/V2-1、ST-LINK/V2-A、ST-LINK/V2-B板(具有STM32调试接口、大容量存储接口、虚拟COM端口)的版本。已上传附件。

本项目制作ST-Link V2-1 必须使用V2.J28.M18这个版本作为烧录的固件版本

烧录固件

第一次烧录固件可使用这两个工具

1、STM32CubeProg:STM32CubeProgrammer software for all STM32 下载地址 STM32CubeProg的主要功能就是编程(下载),支持Windows、 Linux、 macOS操作系统。

同时,需要安装JRE环境,才能使用它,下载地址

STM32Cube Pro 界面.png

2、STSW-LINK004:STM32 ST-LINK utility下载地址

STM32 ST-LINK Utility的功能比STM32CubeProg要稍微简单一些,其主要功能也是编程(下载)。

en.stm32stlinkutility.jpg

本文选用STM32CubeProg这个编程工具来烧录固件

还需要一个烧录工具进行烧录固件,我这里只有下面这个ST-Link v2 图16

更新固件

固件更新有三种方法 1、下载官方固件升级应用程序 STSW-LINK007:ST-LINK,ST-LINK / V2,ST-LINK / V2-1和STLINK‑V3板的固件升级

在官方RN0093发行手册(已上传至附件)中对已发行的升级包工具的版本有详细说明。

截止2020年7月最新的固件版本号

固件升级包最新的固件版本.png

2、使用STM32CubeProg或者STM32 ST-LINK utility 自带的升级工具升级

STM32CubeProg V2.4.0 内置固件版本

STM32Cube Pro 固件升级版本.png

STM32Cube Pro 固件升级版本介绍.png

3、使用Keil MDK-ARM 内置的升级工具进行升级,当ST-link 的版本低于MDK内置的版本时,会提示进行升级。 Keil MDK-ARM v5.31内置固件升级版本与STM32CubeProg V2.4.0 内置固件升级版本是一样的,都是V2.J35.M26

本文使用STM32CubeProg V2.4.0 内置升级工具进行固件更新

提示 固件烧录及更新过程见附件视频。

验证

验证.png 显示以上信息,确认固件OK

测试

  1. 测试烧录功能,用Keil-MDK,下载程序成功,说明烧录功能正常
  2. 测试Debug功能,用Keil-MDK进行Debug调试,可以调试,说明Debug功能正常
  3. 测试U盘拖拽烧录功能,需要生成bin文件(bin文件生成方法),将bin文件拖到ST-link 模拟的U盘中,成功烧录,说明虚拟U盘功能正常。
  4. 测试串口收发功能:用杜邦线连接ST-LINK V2-1的TX和RX ,打开串口助手,发送数据,接收区收到相同的数据,说明串口收发正常

注意事项

  1. ST-LINK 固件升级工具不知从哪个版本开始,不支持跨版本更新固件。
  2. ST-LINK 最近的几个版本的固件已加入了读保护,SWD口是锁上的,所以不能通过SWD口读写固件。
  3. 如果想改成DAP-LINK 之类的固件,不能通过SWD口烧录固件,但是可以通过ISP的方式擦除STM32的固件信息,然后就可以使用SWD口正常读写。

测试反馈及解决方法

  • 2020年8月7日反馈如下

    之前为了减小ST-LINK V2-1的尺寸以及器件,省去了参考图纸中的一路输出电源的LDO,因此产生了一个BUG ,在V0.1工程版本中输出电源与ST-LINK V2-1共用了一路LDO,这里虽然不影响使。但是长时间为后级目标板供电了,会有点发热。

解决方法如下:

  • 1、后级目标板单独供电,ST-LINKV2-1输出电源不使用;
  • 2、增加一路LDO作为输出电源(在下一个版本中采用这个方案)


温馨提示:有疑问的朋友,可以直接在评论区留言,看到留言后,会及时回复

喜欢的朋友,请在评论区上方点个赞,谢谢!


本视频内容为固件烧录和更新

文档

ST-LINK V2_1

在编辑器中打开

ST-LINK V2_1

在编辑器中打开

BOM

ID Name Designator Footprint Quantity
1 20pF C1,C2 0603 2
2 STM32F103CBT6 U1 LQFP-48_7X7X05P 1
3 USB TYPE-A U2 USB TYPE-A 1
4 2*5P header H1 HDR-TH_10P-P2.54-H-R2-C5-S2.54-W10.0_MTP125-205R1 1
5 LED-0603_R LED2 LED0603_RED 1
6 10K R2,R17,R3,R1 0603 4
7 100R R4,R19 0603 2
8 4.7k R7,R8,R5 0603 3
9 1k R15,R10,R11,R12 0603 4
10 10R R13,R14 0603 2
11 1.5K R16 0603 1
12 100k R6 0603 1
13 36K R18 0603 1
14 8MHz X1 OSC-SMD_L5.0-W3.2 1
15 TP-SWD-2.54-4P TP1 TP-2.54-4P 1
16 RT9013-33GB U3 SOT-23-5_L3.0-W1.7-P0.95-LS2.8-BR 1
17 LED-0603_B LED1 LED0603_BLUE 1
18 1uF C9,C8 0603 2
19 104 C3,C4,C5,C7,C6,C10 0603 6
20 TLC-NSMD100 F1 R1206 1
21 TJ-S1615SW6TGLCRG-A5 LED6 LED-ARRAY-SMD_4P-L1.6-W1.5-TR-RD_TJ-S1615SW6TGLCRB-A5 1
22 10uF/16V C11 CAP-SMD_L3.2-W1.6 1
23 M8050_C266599 Q1 SOT-23(SOT-23-3) 1

展开

工程成员

登录注册之后才可以进行评论操作
工程所有者当前已关闭评论
征集令发布者当前已关闭评论
全部评论 24

briefNull

@hk005

2020-10-20 10:49:15
回复

a809428173

重新焊接了芯片,就好了,应该是我芯片焊接的有问题,谢谢楼主,感谢分享

2020-09-27 23:04:32
回复

a809428173

360截图1757111478128135.png注意到这里显示0.03V,但是我电表量有3.25V

2020-09-27 22:31:31
回复

a809428173

你好,我用你的图打了样,贴了片,正常写了固件,也把固件更新到最新,设备管理器和keil里面的提醒都是正常的,但是下载失败,不知道为什么,重复做了两块都一样的结果360截图17150126362374.png360截图1843070570100112.png

2020-09-27 22:23:53
回复

攻城狮晨哲

@jxltom  官方标准电路,就不要去纠结的,能用就行。就是做个工具,没必要这么纠结

2020-09-05 21:26:10
回复

jxltom

@攻城狮晨哲  看了, 没看明白呢

2020-09-05 18:38:29
回复

jdsuchen

打样做了一个,很好用,感谢分享

2020-09-01 10:08:59
回复

攻城狮晨哲

@jxltom  关于PB3为什么要上拉这个问题 ,可以去看看附件中ST官方的图纸

2020-08-30 23:45:38
回复

jxltom

为什么pb3要上拉呢?

2020-08-30 16:01:23
回复

shanlong

@jeraw  换个flash大点的片子

2020-08-28 16:30:20
回复

jeraw

@攻城狮晨哲  行,我来买一片再试一下

2020-08-26 08:45:57
回复

johnaliux

可以说是讲得非常详细了,stlink各个细节都注意到了,点个赞

2020-08-25 11:37:30
回复

攻城狮晨哲

@jeraw  这个项目要用STM32F103CBT6这个料,STM32F103C8T6的FLASH太小了,新的固件放不下

2020-08-21 14:52:05
回复

jeraw

@shanlong  我也是这个情况,你怎么解决的?自己做的硬件

2020-08-21 09:02:25
回复

shanlong

@攻城狮晨哲  已搞定,自己的片子内存小,不能更新固件。后来换了主控就可以了

2020-08-14 16:27:13
回复

攻城狮晨哲

@小茅  好的,后面更新描述,不过我这个版本的图纸目前不支持STM8的固件烧录,只有STM32的SWD调试接口,所以没有写这个

2020-08-13 12:49:57
回复

小茅

STLink V2.1并不是只支持STM32,而是可以在刷固件的时候可以选择支持STM32或者支持STM8。STM32和STM8的Nucleo都用的是STLink V2.1,只是固件不同。另外这个版本的图纸可以直接刷DAPLink,可以也加到描述中。

2020-08-13 09:40:25
回复

攻城狮晨哲

@Craftor  很抱歉,这个问题目前我目前还没遇上,你可以吧调试器固件更新到最新的版本试试。

2020-08-11 22:42:58
回复

Craftor

有个问题不知道您有没有遇到过,自制的调试器,调试F1系列没有任何问题,F407却怎么都连接不上,总是提示找不到单片机。

2020-08-11 22:32:12
回复
认证图标

OSHWHub

距活动截止还有5天,请抓紧时间多多集赞哦~

2020-08-11 14:06:52
回复

攻城狮晨哲

@shanlong  你是自己做的硬件,刷ST-LINKV2-1固件;还是已有的硬件,刷ST-LINKV2-1的固件。

2020-08-10 22:26:34
回复

shanlong

大神,按照你的方法,烧录程序连接设备提示: ST LINK in the DFU mode plesse restart it  解决不了 什么原因?

2020-08-10 22:19:54
回复

攻城狮晨哲

@hk005  DAP-Link 我没用过,后面再做一个玩玩,这个项目的描述还没完善,今晚更新描述。

2020-07-24 18:41:55
回复

hk005

来看看大神的做品,我做的技小新的DAP不成功,KILE识别不了,电脑上能认别出来。看看接的引脚对的上不,对的上就刷个这个固件看看.

2020-07-24 09:33:35
回复

服务时间

周一至周五 9:00~18:00
  • 0755 - 2382 4495
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 立创EDA微信号

    easyeda

  • QQ交流群

    664186054

  • 立创EDA公众号

    lceda-cn