首页 » 智能 » STM32系列 MCU 的软件烧写方法_电平_暗记

STM32系列 MCU 的软件烧写方法_电平_暗记

落叶飘零 2024-09-04 00:31:20 0

扫一扫用手机浏览

文章目录 [+]

一. 通过STlink来进行软件的烧写。

对付广大的开拓 这来说,用STlink来进行烧写是最大略和常用的方法。
一样平常来说STLink 可以支持JATG模式和SWD模式。
SWD模式对付硬件来说比较大略。
对付一样平常的操作来说,至少须要4根线,SWCLK,SWDIO,

STM32系列 MCU 的软件烧写方法_电平_暗记 STM32系列 MCU 的软件烧写方法_电平_暗记 智能

GND和TVDD。
在实际的运用中,你要确认你用的STlink是哪一个版本。
由于不同版本的STlink硬件的利用方法是有些不同的。

STM32系列 MCU 的软件烧写方法_电平_暗记 STM32系列 MCU 的软件烧写方法_电平_暗记 智能
(图片来自网络侵删)

下面总结了一下他们之间的差异。

– ST-LINK/V1 (obsolete)

– ST-LINK/V2 –

STLINK-V3SET –

STLINK-V3MINI –

STLINK-V3MODS

ST-link/V2-1实在是ST-LINK/V2的进化版,它增加了存储空间和一个虚拟串口。

ST-LINK/V2-A 支持存储空间,

ST-LINK/V2-B也支持存储空间和虚拟串口。

STLINK-V3是最新并且功能最丰富的一代ST-LINK。
它第一次引入了模块化probe的观点。
同时它还集成了多路USB桥接的功能。
下表是一个较详细的比较例表

不同STLINK比较表

从上表可以看出,用不同的STlink在设计时要把稳它的接口电平电压的范围。
例如如果你要烧写1.8V的STM32,你就不能选择STLINK/V2-A或者B。
而该当选择V2或者V2-1。
当然你也可以选择STLINK/V3,同时选择配套的电平转换板。

如果你深入地去看STLINK的事理图,你可以看出接口电平的不同,紧张在于里面有没有电平转换电路造成的。
对付这个电路,下面的IC会常常被采取。

电平转换电路1

以上电路中的T_VDD连接到烧写目标板的供电电压,这样就可以通过电平转换芯片来实现电平的自动匹配。

很多人常常谈论和辩论SWD接口到底要不要Reset旗子暗记的问题。
其实在绝大多数的情形下,没有RESET的情形下,也是可以实现烧写问题的。
但是(凡事就怕但是),在某些情形下如果没有RESET旗子暗记的号,STlink是没有办法烧写的。
比如说如果芯片内部有firmware,同时firmware对付SWDIO或者SWCLK对应的pin进行了重定义,作为了其他的功能引脚。
所以为了保险起见,建议还是把RESET加上。
在ST官方的STLINK中,RESET旗子暗记总是存在的。

当然,对付RESET旗子暗记来说,也有一个电平转换的问题,那么为什么不能把RESET旗子暗记一起接在TXS0108上面实现电平转换呢?这里面涉及到了TXS0108的事情事理了。
此芯片是一个自动双向电平转换芯片,为了实现自动判别旗子暗记的方向,里面用到了一个叫one-shot的电路。
但是对付reset这种固定电平的旗子暗记来说,这个芯片就不是很得当了。
一样平常采纳以下的电路。

电平转换电路2

在用STlink硬件连接的情形下,可以直接用STlink-utility这个软件来烧写。
最新版本的下载地址为link.

你可以直接用UI界面去进行读写,当然也可以在command line的情形下通过命令的办法进行读写。
ST-LINK_CLI.exe在STlinkutility 的安装目录下面,运行这个exe可以看到很多参数的意义和用法,大家可以自己去研究。
如果有问题可以不才面提出来,大家一起磋商。

当然在用STLink硬件连接的情形下,还可以用OpenOCD来进行烧写。
OpenOCD的用法可以参考http://openocd.org/得到更多信息。
须要把稳的是用OpenOCD来进行烧写时用把稳hla_vid_pid 的配置,对付STLINK/V2,hla_vid_pid= 0x0483

0x3748。
但是对付STLINK/V2-1,这个值该当为hla_vid_pid= 0x0483 0x374B。

二,可以通过STM32的内置的bootlooder来读写firmware

对付STM32xx系列MCU来说,在启动的时候会通过BOOT0脚,BOOT1脚(有的IC无此pin,有BOOT1 option1 bit)来设置BOOT的模式。
一样平常分为以下三种

从flash 启动

从系统内存里启动

从内置的RAM里启动

Bootloader就位于系统内存里, 有了它就可以通过USB,UART,SPI, IIC and CAN等接口烧写软件。
它是在ST的产线上被写入ROM里的。
它紧张的功能便是通过上面所示的接口中的一个来下载运用程序到内部FLASH里。

下面以用USB interface为例,用Dfuse软件来烧写flash。
Dfuse软件可以从链接处下载https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-stm32080.html。

在做烧写操作时,首先要设置BOOT0 和BOOT1的初始状态,然后给IC供电,让IC进入bootloader。
打开Dfuse软件,可以看到芯片已经进入DFU mode,可以进行烧写。

Dfuse

DFU模式下,firmware须要符合DFU的格式,一样平常文件因此.dfu为后缀。
以是有时候要用一个小工具进行firmware的转换。
这便是DFU file Manager。
这个软件会在你安装Dfuse的时候同时安装的。

DFU file manager

可以看到你可以在各种格式和DFU格式的firmware之间进行相互转换。

用DFU模式最大的好处在于你不须要任何额外的硬件就可以进行软件的烧写事情。

标签:

相关文章

C语言IO操作,详细剖析与应用方法

C语言作为一门历史悠久、应用广泛的编程语言,在计算机科学领域扮演着举足轻重的角色。在C语言编程过程中,输入输出(I/O)操作是不可...

智能 2025-01-06 阅读0 评论0