打印
[STM32WB]

【STM32WB09KE测评】+进阶方向+BLE OTA功能实验

[复制链接]
479|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wws2002|  楼主 | 2024-11-18 17:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wws2002 于 2024-11-18 23:20 编辑

OTA功能是我们项目一个必须的配置,所以BLE的OTA功能研究了好久,开发板提供的资料有限,通过平台招了ST的官方提供了一些资料,终于实验成功了,感谢平台的大力支持,也感谢活动组织者21ic小跑堂的热心帮助。话不多说,上干货!

详细的参考资料如下:
由于OTA功能有两个途径,一个是通过PC端的蓝牙建立连接,PC端有个网页版可以用,具体连接如下:基本上和手机端功能一样,可以适用的Demo是

BLE_HeartRate_ota
BLE_p2pServer_ota
而管理应用程序的ST使用了BLE_ApplicationInstallManager,这些demo程序都可以在开发包STM32Cube_FW_WB0_V1.0.0\Projects\NUCLEO-WB09KE\Applications\BLE目录下找到。
程序是通过BLE_ApplicationInstallManager管理。
管理程序下载的地址是:0x10040000
应用程序下载的地址是:0x10041000
OTA更新的目标程序地址:0x1007F800, 或者用偏移地址: 0x03F800,这些是Demo默认的地址,用户可以根据需要规划修改。
具体的的需要修改MagicKeywordValue要的值,具体在app_ble.c中
/* USER CODE BEGIN PV */
/**
* These are the two tags used to manage a power failure during OTA
* The MagicKeywordAdress shall be mapped @0x140 from start of the binary image
* The MagicKeywordvalue is checked in the ble_ota application
*/
PLACE_IN_SECTION("TAG_OTA_END") const uint32_t MagicKeywordValue = 0x94448A29 ;
PLACE_IN_SECTION("TAG_OTA_START") const uint32_t MagicKeywordAddress = (uint32_t)&MagicKeywordValue;
/* USER CODE END PV */



大概的流程可以参考ST的OTA说明:
STM32WBA 低功耗蓝牙® – 无线固件更新 - STM32MCU (stmicroelectronics.cn)
大致的流程图下所示:

下面一步步开始实验OTA功能。
<span]第一步烧写BLE_ApplicationInstallManager.bin文件到0x10040000地址,这里用的是ST的STM32CubeProgrammer工具,其他工具也类似
<span]
烧写完成。
<span]第二步烧写OTA应用程序BLE_p2pServer_ota.bin到0x10041000
<span]运行程序从串口可以看到运行状态:
<span]第三步,这时候用手机端的APP连接板子,板子上的LED2绿色的快速闪烁。
<span]手机上的可以用ST BLE Sensor APP连接板子开始OTA升级,这个还需要前编一个需要升级的目标程序的bin文件,为了方便演示我用GPIO的LED1闪烁来用作OTA目标应用程序
while (1)
  {
    /* USER CODE END WHILE */


    /* USER CODE BEGIN 3 */
    HAL_GPIO_TogglePin(LD1_GPIO_PORT, LD1_PIN);
    /* Insert delay 100 ms */
    HAL_Delay(100);
    //HAL_GPIO_TogglePin(LD2_GPIO_PORT, LD2_PIN);
    /* Insert delay 100 ms */
    //HAL_Delay(100);


  }
  /* USER CODE END 3 */
}


修改了GPIO_IOToggle,仅仅闪烁LED1,蓝色的灯,并编译成bin文件,然后存到手机上。
<span]用一下步骤进行OTA升级步骤:
<span]同时串口助手可以监控OTA状态:
<span]
程序会自动复位,运行目标程序
<span]

<span]在这里总结一下,ST给出了多个途径可以通过蓝牙BLE升级,有兴趣的可以多尝试一下:
PC端的BLE蓝牙,ST提供了网页版的应用,具体可以参考如下地址:
<span]STM32WBA Web Bluetooth® App Interfaces
有兴趣的可以尝试以下,由于我的手机问题,最新版本的xapk我安装不了,只安装了一个低版本的apk
附上APK


OTA8.png (317.55 KB )

OTA8.png

com_st_dit_stbletoolbox_v1.3.8_apkcombo.net-1731920732631.apk.zip

5.86 MB

APK

使用特权

评论回复
沙发
稳稳の幸福| | 2024-11-18 18:51 | 只看该作者
这个真不错,可以手机升级。

使用特权

评论回复
板凳
wws2002|  楼主 | 2024-11-18 23:23 | 只看该作者
有两个链接失效,不知道为啥,在这里补充上:
PC端网页版蓝牙调试助手:STM32WBA Web Bluetooth® App Interfaces
https://applible.github.io/Web_Bluetooth_App_WBA/
OTA详细说明:
https://wiki.stmicroelectronics.cn/stm32mcu/wiki/Connectivity:STM32WBA_FUOTA

使用特权

评论回复
地板
xinpian101| | 2024-11-28 17:08 | 只看该作者
OTA后如果不使用蓝牙,是不是就自动关闭蓝牙了。

使用特权

评论回复
5
mintspring| | 2024-11-28 17:08 | 只看该作者
写的清楚明了,一看就懂。

使用特权

评论回复
6
wws2002|  楼主 | 2024-11-29 09:10 | 只看该作者
xinpian101 发表于 2024-11-28 17:08
OTA后如果不使用蓝牙,是不是就自动关闭蓝牙了。

这个要看你新程序的配置,有两种模式,在Manager那个管理程序之外可以有AB两个应用程序,可以替换也可以同时存在,具体可以参考ST的wiki文档,我也是在摸索中

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

19

帖子

0

粉丝