STM32 引导加载程序
Posted
技术标签:
【中文标题】STM32 引导加载程序【英文标题】:STM32 boot loader 【发布时间】:2021-04-17 21:43:41 【问题描述】:我正在学习嵌入式系统,并且对一个小项目有想法,我想使用基于 Cortex M0+ 的 MCU STM32G081KBT6。我看到了很多关于这种 MCU 类型的教程,但它们都是基于开发板的,并且使用它们使用 USB 电缆上传代码非常简单。我想为此制作我的定制PCB。所以我的问题是我必须做些什么才能将我的代码上传到这个微控制器?
从数据表中,我认为我必须使用 SWDIO (PA13) 和 SWCLK(PA14) 端口进行引导,但是如果有人可以帮助我,我是否还必须使用一些电阻器,我可以用它使它成为 USB 到电汇吗,或者我必须使用一些外部设备才能做到这一点?或者有一些更简单、更好的解决方案可以将代码从我的笔记本电脑上传到微控制器?
感谢您的回复。
【问题讨论】:
我知道制作这样的电路板是一项挑战,但您正在制作的只是像 ST-Link 或 J-Link 这样的程序员。如果您的目标是建造一个,请采纳以下建议。如果您的目标是能够编写自己的定制板而不是开发板,请购买程序员。除了制作电路板之外,您还必须为其编写驱动程序。在您的计算机上运行的软件获取 HEX 文件并将其发送到硬件。如果您希望能够进行调试,您还有很多工作要做。 【参考方案1】:有两个主要选项:
社署
实现 SWD 编程连接器。基本上,引脚 GND、SWDIO、SWCLK 和最好是 3.3V 都可用。不需要抵抗者。您可以安装一个 4 针接头、一个官方的 10 针 SWD 连接器或仅安装 4 个焊盘(用于使用带有弹簧针的适配器进行连接)。
此选项需要 SWD 调试适配器,例如 ST-Link 或 J-Link。除了上传固件,该选项还支持调试。
USART
使板上的 USART(RX、TX)引脚加上 GND 和 3.3V 可用。此选项需要 USB 转串口适配器。
也可以使用 I2C 或 SPI 代替,但据我所知,没有用于连接到您的电路板的标准解决方案。
USB 不是此特定芯片的选项。不过,许多更昂贵的 STM32 芯片都支持它。
我强烈推荐第一个选项。它比其他选项更通用。而且 ST-Link 适配器并不昂贵。
有关引导加载程序功能和引脚的详细信息:
https://www.st.com/resource/en/application_note/cd00167594-stm32-microcontroller-system-memory-boot-mode-stmicroelectronics.pdf
【讨论】:
在编写 Cortex M 时不使用 SWD 有点像在没有连接显示器的 PC 上编码。如果有人不使用它,他们就做错了,句号。以上是关于STM32 引导加载程序的主要内容,如果未能解决你的问题,请参考以下文章