手撕一个ST-LINK
一、前言
在调试ST单片机的过程中,ST-LINK是一个很好使用的调试工具。下面根据对网络上的设计方案进行简化,设计制作了一个ST LINK 调试器。用于之后的单片机开发。
二、设计电路板
根据网络给出的电路图,并做适当的简化。配有一个 MINI USB 接口。定义六芯的调试接口。其中包括有一个 SWD 接口 和一个虚拟串口接口。电路中的 单片机程序通过 SWD 下载。由于具有 USB 接口,使用外部的 8MHz 晶体作为单片机的时钟源。手边的 1117 三端稳压芯片比较多。下面使用它它将USB电压降压到3.3V。如果出现低电压,后面会将这个稳压芯片替换成低压差稳压芯片。使用单面铺设电路板,其中包括有三个飞线,后期通过 0欧姆电阻进行跳线。
▲ 图1.2.1 STLINK原理图
▲ 图1.2.2 STLINK原理图PCB
使用一分钟制版方法得到了 ST-LINK 测试电路板。电路板制作的非常完美。电路进行焊接和清洗。其中包含有三个跳线,利用 0欧姆电阻进行飞线。下面进行测试。
三、下载软件
下面使用之前的 STLINK 对测试电路下载程序。下载d单片机固件 为 STLINK V2 版本。下载程序是二进制软件,大小为 128k 字节。下载之后,可以看到电路板上的 LED 开始闪烁。下面对电路板上的软件进行升级。
但是很可惜,自制的STLINK 并没有被计算机识别。USB DP上的上拉电阻,经过测量并没有被上拉到3.3V。下面直接将它修改到 3.3V。正好,原来有一个 0 欧姆飞线,将它直接连载旁边的3.3V的引线上。这样便可以使得 自制 ST LINK 能够被计算机识别。在计算机的设备管理中,能够看到出现了 ST LINK DEBUG 设备。下面进行软件升级。
使用 STM32 Cube Programmer 进行软件升级。重新插拔调试接口。在设备管理中出现了虚拟串口。同时,也出现一个 U盘目录。至此,说明了ST-LINK 软件升级正确了。
四、测试
下面利用刚刚手撕出来的 ST LINK 对之前制作的单片机开发板进行测试,看是否能够完成对单片机的程序下载。太好了。经过升级之后的 ST LINK 能够完成对目标板的程序下载啦。
※
总
结 ※
本 文根据网络资料设计了 STLINK调试器。通过软件升级,可以完成对单片机开发的功能。设计的相关资料链接可以在视频最后二维码对应的网页中找到。
▲ 图2.1 制作的STLINK
ST-link/V2引脚定义 : https://blog.csdn.net/qq_32693119/article/details/88799879
[2]ST_LINK/V2 SWIM和SWD、JTAG下载口说明 : https://blog.csdn.net/multisensor/article/details/47020863
[3]自制ST-Link V2.1教程(SWD调试+虚拟串口+虚拟U盘) : https://blog.csdn.net/weixin_44793491/article/details/123697130
[4]STLinkV2.J28.M18?? : https://download.csdn.net/download/vince025/85131087?utm_medium=distribute.pc_relevant_download.none-task-download-2 default LANDING_RERANK Rate-1-85131087-download-85123070.257%5Ev14%5Epc_dl_relevant_base1_a&depth_1-utm_source=distribute.pc_relevant_download.none-task-download-2 default LANDING_RERANK Rate-1-85131087-download-85123070.257%5Ev14%5Epc_dl_relevant_base1_a&spm=1003.2020.3001.6616.1