历史上的今天
今天是:2025年03月14日(星期五)
2020年03月14日 | 教你自制ST-LinkV2下载器
2020-03-14 来源:eefocus
原由
前几天遇到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制作起来还是蛮简单,想自己尝试一下可以自己做一个!
史海拾趣
|
请高手帮我解决这个疑问: 由于我的笔记本没有并口,然而导师给我的下载线只是并口到JTAG的,所以我就去市场买了根从USB口到并口的转换线,然后连接起来使用,心想就可以下载了。 只是今天我 ...… 查看全部问答> |
|
在通过串口调试工具向modem com3口写AT命令ATDT96169后connect 返回CONNECT后一段时间出现 NO CARRIER 在通过串口调试工具向modem com3口写AT命令ATDT96169后connect 返回CONNECT,接 着下面出现~#}?}#?}!}#} }=}!}$}\'衹\"}&} }*} } }\'}\"}(}\"}%}&7て拀#}%?}%撩~~&nbs ...… 查看全部问答> |
|
这个问题困扰我很久了,面对一大堆的芯片手册,却找不到编写驱动的步骤. 芯片手册里,详细地描述了该芯片支持的特征,端口的描述,工作的信号图,注意事项,结构方块图,物理参数... 却总没找到如何开始写一个驱动的初始化过程,读过程,写过程,状态的获取 ...… 查看全部问答> |
|
手册上说启动ADC校准前,ADC必须处于关电状态超过两个ADC时钟,即ADON = 0。 但是例程上怎么是先使能ADC(ADC_Cmd(ADC1, ENABLE)),然后再校准呢? 而且我改了程序,先校准后使能ADC,程序怎么就不对了呢? 到底应该怎么做… 查看全部问答> |
|
使用TI图形库中的 pnmtoc 将图片转换后c文件太大,keil软件编译通过了 近期,使用TI的LM3S9B92芯片,在用到TI图形库的时候遇到了一个问题,就是使用库提供的tool中的pnmtoc将pnm格式的图片转换为.c文件,把c文件弄到keil上编译,提示文件太大,无法通过编译!应该怎么解决呢! 经过2天的检查和尝试,原来是keil破解的 ...… 查看全部问答> |




