STM32WU55蓝牙开发学习笔记(2)-协议栈更新

STM32WU55蓝牙开发学习笔记(2)

前言

今天就稍微写一下wb55芯片协议栈的烧录吧,刚好手上新焊了一块板子。新买来的芯片都是空片,会内置一个比较老版本的FUS,并且没有协议栈,所以需要自己跟新一下FUS和协议栈才能正常使用无线功能。
stm32wb55的m0的核是专门运行协议栈的,协议栈是官方预置的几个bin文件,用户不能自己修改。可以运行的协议还挺多了,反正我就用BLE的协议栈。
我写的时候官方的固件跟新到v1.13.3(STM32CubeMX里面看),如果后面有出新的也大差不差吧。

准备

我用的是最简单的方法,需要准备准备硬件ST-LINK,和软件STM32CubeProgramming。

STM32WB的协议栈烧写的服务具体可以看官方的AN5185文档。简单的说就是芯片里有个FUS的固件,用来升级协议栈和升级自己。在操作的时候需要先用FUS把自己(FUS)升级到最新版本,再用最新的FUS烧需要的协议栈。

步骤

1. 下载STM32WB固件

↓STM32CubeMX这里可以查看固件的情况
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第1张图片

↓选择需要的下载就行,一般都选择最新版
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第2张图片
↓这里可以查看下载路径
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第3张图片
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第4张图片
↓按下入1所示的路径就可以找到协议栈和FUS文件的位置,如果使用的是STM32WB3x的芯片就在这个文件夹的上一层打开STM32WB3x的文件夹即可。下图2所示的网页文档很重要,后面会用到,可以先打开。
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第5张图片

2. FUS更新

↓使用ST-LINK连接STM32WB芯片,如果可以检测到芯片就点击连接即可。
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第6张图片
↓点击下图按钮进入升级界面
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第7张图片
↓点击Start FUS按钮启动FUS,这里会将M4的内核的程序刷成启动FUS的程序,原来在芯片里的用户程序会被覆盖。
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第8张图片
↓一定要等待成功后再进行后续操作
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第9张图片
↓点击读取FUS就可以看到现在协议栈和FUS的信息。可以看到FUS的版本为v1.1.1.0,可以有些买来的空片内置的是v0.5.3的FUS,后续的更新操作会略有区别。由于新买来的空片是没有协议栈的,所以协议栈的版本是v0.0.0.0 。接下来需要先对FUS进行升级,
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第10张图片
↓在这个位置选择需要烧入的协议栈或FUS,下面框住的两个是升级FUS。如果在上面查到的当前的FUS版本为v0.5.3则选择第二个(stm32wb5x_FUS_fw_for_fus_0_5_3),如果现在的FUS版本为其他版本则选择第一个(stm32wb5x_FUS_fw)。
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第11张图片
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第12张图片
↓然后打开上一节提到的很重要的网页文档。
首先确认最上面的版本号和下载的固件版本号一样。下面的两张表格代表需要烧入的协议栈和FUS所对应的烧入位置,最后一行为对应的版本号。可以看到我们要烧入的FUS版本号为v1.2.0,刚刚搜索出来的版本号为v1.1,不是最新版本,所以需要更新。
在下面的表格中找到刚刚需要烧写的FUS,找对对应芯片对应的烧入位置。我所使用的芯片为STM32WB55CGU6,对应的就是STM32WB5XXG,所以为0x080EC000。这里的位置一定要对应自己的固件版本号和芯片,演示的操作只是做一个演示
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第13张图片
↓在此处输入刚刚搜索到的位置,然后点击UPGrade。务必确认这个烧入的位置,据说位置错误可能会让芯片暴毙,我也没试过。点击更新按钮后等待,会跳出两个弹窗,分别是删除成功和更新成功,务必等更新成功后再进行后续操作。
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第14张图片
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第15张图片
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第16张图片
↓这个时候再读取FUS信息可以看到FUS版本已经变成V1.2.0.0了
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第17张图片

3. 烧协议栈

↓同样是再这个位置选择需要烧入的协议栈 ,一般选择stm32wb5x_BLE_Stack_full_fw,就是完整的BLE协议栈,(stm32wb5x_BLE_Stack_light_fw好像是阉割版BLE协议栈,储存空间比较小的芯片可以选择这个)

STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第18张图片
在刚刚的文档里找到需要烧入的位置,并在软件中输入对应位置。然后再点击Firmware Update按钮,进行更新协议栈。
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第19张图片

↓同样会出现两个弹窗,等成功后再进行后续操作
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第20张图片
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第21张图片
↓这个时候重现启动FUS,读取信息可以看到协议栈的版本可以是v1.13.3.2了
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第22张图片
然后请务必点击这个按钮,开始协议栈!!!!!!!!!!!!
我最开始就是没点这个按钮导致手头上自己的板子怎么搞都搞不好,搞了几天才发现是这个问题,f–k。
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第23张图片
STM32WU55蓝牙开发学习笔记(2)-协议栈更新_第24张图片

到这里协议栈的内容就搞好了。接下来就可以愉快的正常写代码了。协议栈更新还可以使用控制台命令的方式,但那种方式我也没怎么搞明白,各位通信可以参考其他的资料。如果上面的内容有写的不对的欢迎指正。

你可能感兴趣的:(stm32,单片机,学习)