stlink制作(OSHW版)

stlink制作安排
视频在我的B站
工程主页在开源硬件平台

0. 项目原由

因为我那个板载stlink的NANO板近期要还给老师了。所以我就没有板子和stlink了,但是对于一个stmer来说,怎么能没stlink呢!?所以我决定买一个stlink。但是买的有的功能不全,有的很贵,而且有的还很大。同时还了之后我也没有板子,所以我决定自己制作一个板载stlink外围电路的最小系统小蓝板,这样刷stlink的固件就可以当stlink使用,不刷stlink的固件的时候,也可以当做最小系统版来使用。但是我自己做一个的话,别人要是想复刻我这个项目就得和我一样从头做一个,有点费事儿。考虑到大家如果要是用stlink的话,大概率是会有那个能买到的最小系统小蓝板。所以我决定让大家利用起来自己的小蓝板,用我的stlink扩展(pin_to_pin兼容市面上的最小系统板)来做一个stlink调试器。
先说在前头:本项目硬件不是很难,主要是c8t6的谜之容量和固件兼容性的问题有太多坑。

1.简介

ST-LinkV2-1: 支持STM32调试,带虚拟串口和虚拟U盘下载,本项目制作的就是用于STM32程序下载、仿真调试和串口功能为一体的ST-Link V2-1(扩展板)。
stlink扩展板+市面上卖的STM32F103C8T6核心板 就能构成完整的stlink V2-1调试器。

2.图片

stlink扩展板双层板3D图,如下。

我的c8t6最小系统四层板3D图,如下。(第一次画,不合理的地方还请见谅)
在这里插入图片描述

stlink扩展板双层板实物图,如下。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HwjBbDY5-1665144515224)(//image.lceda.cn/pullimage/KH2gt1FtXMdzOCI8sIDOEH1lLgwGkctFbL51zueU.jpeg)]

3.原理图参考

本项目原理图参考了正点原子的NANOF1开发板上的ST-link V2-1设计,如下图。
在这里插入图片描述

3.1 ST-LINK V2.1电路

NANOF1开发板上的STlink v2.1 ,这里我用stm32f103c8t6最小系统板上的芯片,部分外围电路在stlink扩展板上。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7IiiaDy7-1665144515224)(//image.lceda.cn/pullimage/GeDRYZZscYKDIgqLjeuGX7aHUXjG6iGQZTXsQSrr.png)]

3.2 USB接口电路

NANOF1开发板上的 USB_ST_LINK 可以直接cv过来,本设计中扩展版使用的是排母 ,接在stm32f103c8t6最小系统板上。
在这里插入图片描述

3.3 下载电路

刷固件的接口在最小系统板上,stlinkV2.1接口在扩展板上。
在这里插入图片描述

3.4 COM指示灯

此LED会显示ST-LINK状态:
LED呈闪烁:正在目标和PC之间交换数据。
LED为常亮:PC与ST-LINK之间的通信已建立。
在这里插入图片描述

3.5 LDO电源电路

参考这个芯片的手册。(NANOF1上用的1117,为什么我不用1117,因为我的最小系统板有点小,1117这大家伙太占地方)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mrscsv5L-1665144515225)(//image.lceda.cn/pullimage/qhx0kH6rIbzUmJvoXupwyrBgCJEnGkz4GMy9zbSR.png)]

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

4.1 固件获取

由于ST官方没有将ST-Link源码公开,也没有直接给出ST-Link固件(因为有读保护),但是网传有多个版本的固件。这里我只找了V2J28版本的固件(见附件),但是这个固件对于64k flash 的c8t6用不了(后面我有解决办法,而且已经成功),128k的c8t6和cbt6可以无脑冲V2J28版本(实测完全ok)或者更高版本。如何查看c8t6的flash大小,见我的B站
我成功提取了V2J27版本(见附件),变砖的64k的c8t6使用这个版本就可以了(hex和bin两种格式都有,无论使用串口工具flymcu还是用Utility又或者STM32CubeProgrammer,都可以刷,终于摆脱flymcu的谜之下载逻辑了,哈哈)
注意:128k的c8t6或者cbt6刷了V2J27,一般直接就能用;64k的c8t6刷了V2J27,有小概率不能用,这时只需用ST-LinkUpgrade_V2.J27.M15重新升级一下,然后拔插USB,重启烧录软件就行了。(实测成功)

4.2 烧录软件选择

这3个都可以,请随意选择方便的。

  1. flymcu(见附件):主要功能是编程烧录,只能用串口,配合CH340的usb转TTL下载(51小伙伴表示熟悉的配方)。
    在这里插入图片描述

  2. Utility(附件也有):STM32 ST-LINK Utility的主要功能也是编程下载,得用stlink下载,也就是说你得有一个能用的stlink,去隔壁小伙伴那借一下。
    在这里插入图片描述

  3. STM32CubeProgrammer(太大了,附件没有,要用的话直接去官网下):主要功能也是编程下载,支持Windows、 Linux、 macOS操作系统。同时,需要安装JRE环境才能使用它。这个工具我只用过stlink下载,貌似这个工具还能用串口和USB。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oynwToXP-1665144515226)(//image.lceda.cn/pullimage/234ZIUwIiglURNrlfKQ9m8NgZst3P9TwoNmWNo02.png)]

我采用的Utility和STM32CubeProgrammer,因为有时候得打开STM32CubeProgrammer才能识别自己做的stlink。

4.3 固件更新

注意:64k的c8t6,一定不要升级,很大可能会变砖,变砖的要重新刷我的V2J27。

  1. 用ST-LinkUpgrade_V2.J27.M15(见附件)升级,这个升级器只能升级到V2J27,非64k flash的不推荐使用。
  2. 下载官方固件升级应用程序STSW-LINK007:ST-LINK,ST-LINK / V2,ST-LINK / V2-1和STLINK‑V3板的固件升级。
  3. 使用STM32CubeProgrammer或者STM32 ST-LINK utility 自带的升级工具升级。
  4. 使用Keil MDK-ARM 内置的升级工具进行升级,当ST-link 的版本低于MDK内置的版本时,会提示进行升级。

固件烧录及更新过程视频见我的B站

U盘拖拽下载视频和stlink串口收发视频 见附件。

5 验证

在这里插入图片描述

在这里插入图片描述

一般显示ST-Debug而且插上电脑会自动弹出UNDEFINED文件夹,就说明ok了。

6 测试

  1. 测试烧录功能,用Keil-MDK,下载程序成功,说明烧录功能正常.(视频太大,在我的B站)
  2. 测试Debug功能,用Keil-MDK进行Debug调试,可以调试,说明Debug功能正常.(视频在我的B站)
  3. 测试U盘拖拽烧录功能,需要生成bin文件(bin文件生成方法),将bin文件拖到ST-link 模拟的U盘中,成功烧录,说明虚拟U盘功能正常。(视频见附件)
  4. 测试串口收发功能:用杜邦线连接ST-LINK V2-1的TX和RX ,打开串口助手,发送数据,接收区收到相同的数据,说明串口收发正常(视频见附件);或者让其它开发板的usart口给虚拟串口发个数据来验证.(视频在我的B站)

7 注意事项

  1. ST-LINK 最近的几个版本加入了读保护,SWD口是锁上的,不能通过SWD口读写固件。
  2. 如果想改成DAP-LINK 之类的固件,不能通过SWD口烧录固件,但是可以通过ISP的方式擦除STM32的固件信息,然后就可以使用SWD口正常读写。(本条参考攻城狮的)

8 错误记录

错误记录文档在我的CSDN
视频在我的B站


最后:有问题的小伙伴,可以在评论区留言,看到留言后会及时回复。如果我的这个项目对你有帮助,请在评论区上方点个赞,谢谢!
e10986af)


最后:有问题的小伙伴,可以在评论区留言,看到留言后会及时回复。如果我的这个项目对你有帮助,请在评论区上方点个赞,谢谢!

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值