画图
原由
前几天遇到ST-link下载问题,我自制的STM32F107板子发现非得接上NRST引脚才能正常下载,这就很郁闷了。但是手头上的Mini版本的又没留RST引脚出来,于是干脆决心自己自制一个ST-Link。话不多说,下面就开始讲解怎样制作ST-Link.
资料来源
我最终确定的原理图是来源于2个Demo板子的原理图,一个是STM32F429I-DISCO,另一个是STM8S-DISCO。这2套探索板的资料官网可以找到。其中一个确定SWD下载功能,另一个确定SWIM下载功能。一般ST官网发布的DISCO探索套件都带有ST-Link下载部分,另外NUCLEO套件也有,各位可以去官网上面荡一个看看原理图。
确定SWD功能
关于SWD和JTAG的区别,各位去网上搜一搜,我就不在解释,直接看官方给的原理图。从官网的原理图上我们要去掉一些没必要的电路。比如:电源部分可以换成成本更低点的稳压二极管。图中框1便是SWD下载口,框2是给ST-Link自己的C8T6芯片的下载口(也是用的SWD),这个下载口需要预留出来,不然,你打完板后,没法下载固件,那前面的工作全都白费了。其它像什么STM32F4_USART1_RX/TX、MCO这些功能可以去掉,用不到。另外AIN_1引脚功能是用来确定目标设备的电压的,可以留出来。这个与JTAG的TVCC引脚功能相同。
确定SWIM功能
上面大概说了下SWD原理图,下面再说说SWIM。我从官网上荡的原理图是黑白的,不过也能看。图中框1便是SWIM下载口。框2是ST-Link给自己使用JTAG的下载方式。在确定SWD功能时,我们已经预留了芯片SWD的下载方式,这个就不需要了LED灯、USB接口也去掉,使用上图的原理图。
最终原理图
将2个原理图重组好后就是最终要做的ST-Link了。这是我最终确定的原理图,仅供参考。图中框1是SWD标准SWD下载模式接口。框2是给STM8下载使用的SWIM接口。框3是ST-LInk固件下载接口。框4是电源供电选择接口。框5是COM指示灯。框6是USB连接电路。图中的T_JTDO、T_JTDI引脚没有用到可以省掉。
PCB
焊接定型
从整个原理图到画板我只用了一天时间,然后做板花了5天时间,哎!真是慢啊!拿到板子后,我立马焊完一块,样子还挺不错的吧
下载固件
首先我们焊接完的板子是不能用的,需要往里面下载固件。前提是你手头有一块好的ST-LinkV2下载器,不然就白搞了。
使用STM32 ST-LINK Utility 软件下载固件(这个软件官网可以下载)。先连接后下载,要是软件识别不了你的芯片,那你得仔细检查下你的板子啦!
连接成功后,然后开始下载固件。图中框1打开固件STLinkV2.J16.S4.bin文件(这个最新固件官网可以下载的到),点击框2下载,弹出下载窗口,点击框3开始下载
下载完后,将自制的ST-Link插上电脑,然后,更新固件。点击框1,弹出窗口然后点击框2连接自制的ST-Link,识别出来后,点击框3开始更新固件。如果没有识别出来,可能是你同时插上了2个ST-Link,或者是你的板子有问题,得耐心排查。到这里,就算完成啦!接下来你可以体验你自制的ST-Link任意下载程序啦!这个电路我测试的是keil,IAR都支持,STM8也能下载。
总结
总之这个ST-linkV2制作起来还是蛮简单,想自己尝试一下可以自己做一个!