- 前言
- ST-Link V2.1简介
- Mass Storage
- Virtual COM port
- Debug Port
- MCO
- ST-Link V2.1原理图
- ST-Link Bootloader程序
- ST-Link 固件更新
- 官方ST-Link驱动
- bin文件生成
- 资源下载
前言
新的STM32单片机可以通过常见的 J-Link, ST-Link, 开源的DAP-Link等设备下载程序, 淘宝搜索STM32下载器出来各种各样的玩意:
都是可以用的, 大的贵的可能耐用, 但有官方维护持续更新的才是有灵魂的, ST-Link V2.1是ST官方推出的新的固件, 需要在特定硬件下才能实现, 下面我们就动手撸一个出来.
ST-Link V2.1简介
上图是前几天打的实验板, 做的多的话BOM成本应该不到20元, 主芯片STM32F103CBT6, Micro-USB接口.
先看看ST-Link V2.1带来哪些强大的功能.Three different interfaces supported on USB: mass storage, Virtual COM port and debug port. 也就是单USB口可实现调试, 下载, 通信功能.
Mass Storage
USB连上电脑, 会识别出来一个约28K大小的盘
这是STM32F103CBT6还能用的空间, 里面至少存储了DETAILS.TXT文件, 内容是版本号和固件Build时间.
Version: 0221
Build: Sep 18 2018 11:09:21
不要慌, 我们把 GND, CLK, DIO, RST(复位)四个引脚连接到自己板子的STM32对应的4个引脚(这里以STM32F429IGT6为例), 插上USB后, 电脑显示:
这1MB空间就是STM32F429IGT6的空间.
然后, 把程序BIN文件拖进来(复制粘贴), 程序就自动下载到单片机里面了.
RST连接的时候, 程序下载完成会自动复位运行, 不连接的话, 需要手动复位.
所以, 最少GND, CLK, DIO三根引脚即可下载程序.
Virtual COM port
打开设备管理器, 图中的COM6就是虚拟串口:
我们把ST Link V2.1的串口连接到USB转串口上, 如上节, 用SSCOM在 961200波特率下发102486字节, 没有丢包现象. 稳如老狗.
Debug Port
这个就是通常意义的仿真调试下载口了, 同样是 GND, CLK, DIO三根引脚即可. Keil里面调试选择ST-Link, 使用SW端口即可.
其他功能
其实ST-Link还可以通过MCO引脚输出8M时钟给其他单片机用, ST官方的Nucleo就是这么搞的. 可以省去一颗晶振.
ST-Link V2.1原理图
ST-Link Bootloader程序
见最后资源下载, 需要用其他 J-link, ST-Link, DAP-Link等给STM32F103CBT6烧入Bootloader程序.
J-link可以用J-Flash软件.
ST-Link可以用ST官方的 STM32CubeProgrammer 软件, 或者CoFlash, 或者直接ST-Link V2.1复制Bootloader程序然后粘贴进去自动下载.
DAP-Link工具特别多, CoFlash或者自己撸脚本应该都可以.
这里就不要讨论是先有蛋还是先有鸡了…
ST-Link 固件更新
上面Bootloader下完后, 就可以用USB连电脑, 安装 ST-LINK utility 软件, 安装完后打开, ST-LINK→Firmware update
Divice Connect → STM32+MSD+VCP → Yes
进度条走到头即可.
官方ST-Link驱动
ST-LINK, ST-LINK/V2, ST-LINK/V2-1 USB driver signed for Windows7, Windows8, Windows10
给新电脑没有装过驱动的使用.
Keil的安装目录(ARM\STLink)里面也有STLink的驱动程序和升级程序.
结语
那个Bootloader其实并不知道是谁搞出来… 但硬件是几乎原封不动抄ST官方Nucleo板的, 后面也都是ST官方自己的东西了, 我们都是大自然的搬运工…
+1s:
bin文件的生成, 添加
C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o C:\Users\weife\Desktop\cdc.bin …/…/Output/UDP_Server.axf
到
weife是我的用户名, 改成自己的, 这样每次Keil编译就可以在桌面生成bin文件, 你可以把路径指定到ST-Link V2.1的盘里面, 这样每次编译可以自动下载程序(未尝试).
以STM32CubeMX生成的默认目录为例:
C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o C:\Users\weife\Desktop\blink.bin …/MDK-ARM/DIANDENG/DIANDENG.axf
资源下载
https://download.csdn.net/download/weifengdq/11255177
第一次刷固件用STM32 ST-LINK Utility v4.3.0比较好, 后来的4.4和4.5第一次不好使, 在4.3刷完之后再用:
https://download.csdn.net/download/weifengdq/11423884