欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

STM8L自带bootloader使用教程(即使用Boot ROM升级)

程序员文章站 2022-07-04 19:18:10
...

笔者使用的单片机型号是:STM8L151C8T6,有64kFlash

本教程可能使用的文件下载地址:

官方固件及指导手册:https://www.stmcu.com.cn/Index/search?search_keywords=UM0560

百度网盘链接:https://pan.baidu.com/s/1XyBWJIhHsuwWgwGNuHaULA  提取码:9rgk 

CSDN下载链接(提供官方源地址,可免费下载):https://download.csdn.net/download/aaricyang/11199903

 有读者问软件复位可不可以,答案是不行,软件复位地址是0x8000,NRST引脚复位地址是0x6000。所以只能而且必须使用NRST引脚复位。

一、Boot ROM使用流程

1、确认芯片供电稳定(尤其重要,特别是通过NRST引脚复位瞬间);

2、修改Option Byte的“ROP”位为0xAA,BLCHECK1为0x55,[BLCHECK2为0xAA](根据单片机型号可选);

3、硬件复位(给NRST引脚一个下降沿);

4、通过Flash Loader Demo下载烧写文件,即hex文件;

5、硬件复位。

二、 工具准备

 1、ST Visual Programmer(软件 

下载地址:https://www.st.com/zh/development-tools/stvp-stm32.html

作用:修改Option Byte的BLCHECK位

2、Flash loader demonstrator软件

下载地址:

https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/flasher-stm32.html

作用:二进制文件烧写

3、ST Link(硬件设备,需安装驱动)

驱动下载地址:https://www.st.com/en/development-tools/stsw-link009.html

作用:配合STVP,修改Option Byte的BLCHECK位

4、UART--USB转接板(硬件设备,需安装驱动)

驱动下载地址:http://www.wch.cn/download/CH341SER_EXE.html

作用:配合Flash loader demonstrator,下载二进制文件

三、操作步骤

1、修改Option Byte

需了解,ROP位只能通过SWIM修改,且其默认值就是0xAA,正是我们所需要的值。

而BLCHECK位也可以通过代码修改,代码如下,笔者使用的STM8L151C8T6,BLCHECK位的地址是0x480B,读者应根据自己的芯片类型修改。

FLASH_Unlock(FLASH_MemType_Data);		//解锁Flash
FLASH_ProgramOptionByte(0x480B, 0x55);	//使能BootLoader,根据芯片类型修改地址
FLASH_Lock(FLASH_MemType_Data); 		//上锁Flash

(1) 通过ST Link的SWIM口,连接电脑USB和开发板;

(2) 打开STVP,选择芯片型号,在Option Byte页面,修改ROP位和BLCHECK位,如下图所示;

STM8L自带bootloader使用教程(即使用Boot ROM升级)

(3) 点击下图按钮,将修改好的Option Byte下载到单片机中。

STM8L自带bootloader使用教程(即使用Boot ROM升级)

2、下载hex文件

2.1、把开发板通过 USB 线连接到电脑上;

2.2、打开“Flash_Loader_Demonstrator_v2.6.0_Setup”一键下载软件,如下图所示:

STM8L自带bootloader使用教程(即使用Boot ROM升级)
2.2.1、选择 CH340 对应电脑分配的 COM 口号(我电脑是 COM18);
2.2.2、选择合适的波特率:

在一定范围内,波特率越高,下载速度越快;(笔者的测试结果是,波特率超过38400后,45kbytes的hex文件,下载时间稳定在30s左右;波特率超过128000后,通讯失败)

2.2.3、配置通讯协议:

必须要如图设置才可以;

             STM8L自带bootloader使用教程(即使用Boot ROM升级)

2.3、以上参数设置好后,给NRST引脚一个复位信号后 1 秒内,单击 STM8L自带bootloader使用教程(即使用Boot ROM升级)进入以下界面:重要!!

STM8L自带bootloader使用教程(即使用Boot ROM升级)
 

2.4、选择芯片类型

进 入 以 上 界 面 通 过STM8L自带bootloader使用教程(即使用Boot ROM升级),选 择STM8L芯片对应的 FLash 大小,如果是 K4 则选择 STM8L_16K;如果是 K6 则选择 STM8L_32K,笔者用的是C8,所以选STM8L_64K。

 

2.5、直接单击 “Next” 进入下一界面,如下图所示:

STM8L自带bootloader使用教程(即使用Boot ROM升级)
 

2.6、下载程序

通过STM8L自带bootloader使用教程(即使用Boot ROM升级)选择要下载的 HEX 文件,最后单击”Next”开始下载程序,等待下载完成。如下图。

STM8L自带bootloader使用教程(即使用Boot ROM升级)

程序下载完成后,关闭软件,再通过NRST引脚复位一下,程序开始运行。此时Option Byte的BLCHECK位会恢复成默认值0x00。