silicon labs EFR32BG22蓝牙固件OTA升级流程解析
SILICON LABS EFR32BG22 蓝牙OTA升级支持两种模式:
1)Application OTA DFU,这个也我们常说的备份式升级。在simplicity studio 5中的组件中描述如下
Component that provides over-the-air (OTA) device firmware update (DFU) functionality in user application during runtime. No need to enter a specialized OTA state to update, and no AppLoader utility required. No code is required from user to enable this component.
2)in-place update,是一种非备份式升级,升级过程采用带AppLoader 的bootloader实现, “Bluetooth AppLoader OTA DFU”,应用代码会跳转到AppLoader 中运行蓝牙功能,实现新固件的传输和写入。这个写入是直接覆盖旧的固件。在simplicity studio 5中“Bluetooth AppLoader OTA DFU”参考代码中描述如下:
Standalone Bootloader using the Bluetooth AppLoader OTA DFU. This bootloader allows to update application using in-place update where the old application is directly overwritten with the new one.
以上两种蓝牙OTA升级的流程大致都是一样的。下面详细介绍“Bluetooth AppLoader OTA DFU”升级过程:
1、Windows or APP 蓝牙连接上需要升级的蓝牙设备。
2、向蓝牙设备的Control Characteristic中写入数据0,蓝牙设备会进入bootloader模式。
如果是“Bluetooth AppLoader OTA DFU”模式,设备进入bootloader之后,会以“OTA”的蓝牙名称广播。不过蓝牙的MAC地址还是和之前的一样。
3、Windows or APP通过蓝牙传输 .gbl 文件数据,每次发送 N bytes到蓝牙Data Characteristic中。
新固件的.gbl 文件数据全部传输完成之后,Windows or APP 向Control Characteristic
4、写入数据3,固件传输阶段完成。然后,设备重新启动到Gecko Bootloader中,并将存储的.gbl文件写入应用程序空间,从而升级设备的固件。下图是silicon labs OTA定义的Control Characteristic,和Data Characteristic,有silicon labs固定的UUID。
前面了解了升级的流程。下面介绍“Bluetooth AppLoader OTA DFU”,对应手机APP的参考代码或者window端的参考代码和实际操作结果。
1、 蓝牙设备端,可以编译对应的“Bluetooth AppLoader OTA DFU”和“Bluetooth - SoC Empty”参考代码,编译后把hex或者s37文件烧录到EFR32BG22芯片中。
2、 在工程目录下,双击“create_bl_files.bat”文件,生成升级需要的.gbl 文件,生成后的文件会存放在output_gbl文件夹。如果使用手机APP升级时候,拷贝存放到手机中。如果是window端,可以拷贝存放到任何期望的路径下。
3、 可以修改蓝牙设备名称,编译后重新生成.gbl 文件,这样可以获得两个蓝牙名称不一样的升级固件。测试升级完成后,能看到不一样的蓝牙名称广播出来。
以上准备好了蓝牙设备端的升级文件。接下来可以使用silicon labs 提供的手机APP:EFRConnect测试升级。APP在ios系统可以搜索“EFRConnect”安装,安卓系统可以到下方链接下载源代码,安卓安装包在build文件夹中。
EFRConnect-android :https://github.com/SiliconLabs/EFRConnect-android
世强平台的安卓安装包下载链接:https://www.sekorm.com/doc/3833028.html
Windows 端的参考代码可以在GSDK所在目录下找到。这份代码是最具参考性的,比较简洁OTA升级过程的C语言代码。对于用户实现自己的蓝牙OTA主端设备的功能代码最具参考性。
以GSDK 4.3.2 为例,路径为:\ gecko_sdk_4.3.2\app\bluetooth\example_host\bt_host_ota_dfu
可以在windows环境下用mingw64,Cygwin64编译,并运行和测试。可以使用EFR32BG21,EFR32BG22,MG21,MG22 或者其他silicon labs EFR32 系列2的无线芯片或者评估板。通过串口转USB工具,连接到电脑的USB接口。BG2x系列芯片烧录“Bluetooth - NCP”代码。
以下是测试log,也可以通过log对应到bt_host_ota_dfu代码理解升级过程。
备注:命令格式:
#define USAGE "Usage: %s [serial port] [baud rate] [ota file] [remote address] [(optional) force write without response: 0 / 1] [optional max mtu]\n\n"
my@pc MINGW64 /d/Users/SimplicityStudio/SDKs/gecko_sdk_4.3.2/app/bluetooth/example_host/bt_host_ota_dfu/exe
$ ./bt_host_ota_dfu.exe com3 115200 bt_soc_empty_BG22.gbl 68:0A:E2:28:7F:84 0 247
MTU set to 247
System rebooted
NCP version: v5.1.2-b215
Local public device address: 00:0d:6f:ad:3e:0d
Bytes to send:184608
Scanning...OK
Device address found, connecting.
Connecting...OK
Discovering services...ATT MTU exchanged: 247
OK
Discovering characteristics...
Restarting target.
Connection closed, retrying. (Remote device booting in DFU mode)
Scanning...OK
Device address found, connecting.
Connecting...OK
Discovering services...ATT MTU exchanged: 247
OK
Discovering characteristics...OK
Control handle:10
Data handle:12
OTA protocol version:0x03
Apploader version:5.1.2.215
Bootloader version:0x02020002
Application version:0x00000001
OTA Data characteristic properties:0x0c
DFU mode...OK
OTA DFU - write with response
100% 36.02kbit/s
time: 41.00s
Finishing DFU block...OK
Closing connection...OK
本文参考链接:
https://github.com/SiliconLabs/bluetooth_stack_features/tree/master/firmware_upgrade
- |
- +1 赞 0
- 收藏
- 评论 0
本文由John提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】芯科科技EFR32BG22系列蓝牙SOC修改自定义广播包的思路与具体实例
在蓝牙的实际应用中,往往需要自定义的蓝牙广播包来适应不同的应用环境,本文主要介绍基于SILICON LABS的EFR32BG22蓝牙SOC实现自定义广播数据包的方法。
【经验】STUDIO V5中蓝牙SoC EFR32BG22添加串口LOG打印的方法
在调试Silicon Labs蓝牙SoC EFR32BG22时,一般需要添加LOG打印信息,通过串口的方式来判断代码运行是否正常。由于使用RTT功能在打印信息时无法再次在线调试和代码下载,所以直接采用串口的方式更加便捷。
【经验】Silicon Labs的蓝牙SoC EFR32BG22如何进行在线的OTA升级?
Silicon Labs的蓝牙SOC EFR32BG目前已经能够支持到蓝牙5.2,工艺升级后的EFR32BG22的功耗能够达到接收4.1mA,0dbm发射功耗3.6mA,休眠功耗低至1.4uA,如此低的功耗,能够大幅延长蓝牙设备的电池续航时间。本文介绍蓝牙SoC EFR32BG22如何进行在线的OTA升级。
拆箱Silicon Labs最新的用于能量收集的蓝牙SoC
描述- 本资料主要介绍了硅实验室(Silicon Laboratories)最新推出的蓝牙能量采集SoC——xG22E。资料详细阐述了电池在物联网(IoT)应用中的问题,如环境污染、成本和法规限制,并提出了基于能量采集技术的解决方案。资料重点介绍了xG22E的特点,包括低功耗、快速唤醒、长距离无线通信等,以及其在智能家居、工业和商业领域的应用。此外,资料还提供了xG22E的探索套件和资源,以帮助开发者快速上手。
型号- EFR32XG22E,XG22E
【应用】EFR32BG22蓝牙SoC用做CGM连续血糖仪主控,单芯片集成MCU和蓝牙5.2
CGM连续血糖仪为了用户体验更好,要做到小而轻,续航时间长,可以通过手机蓝牙连接获取血糖测量数据。Silicon Labs的蓝牙SoC EFR32BG22在单芯片中集成了MCU和蓝牙5.2,可以作为CGM的主控芯片并实现蓝牙数据收发,有丰富的外设。
基于芯科科技BG2x SoC的蓝牙信道探测和能量收集参考设计演示 – 尽在芯科科技/深圳物联网展
Silicon Labs(亦称“芯科科技”)在8月28至30日举办的“2024年深圳物联网展(IOTE Shenzhen)”展出现下最火的蓝牙信道探测(Channel Sounding)和能量收集(Energy Harvesting)参考设计,从而推动更多物联网创新应用。芯科科技的现场全面展示其BG2x低功耗蓝牙SoC和模块系列在蓝牙信道探测和能量收集技术方面的最新进展。
【经验】EFR32BG22系列蓝牙SOC电池电压与VDD供电电压检测ADC的方法
EFR32BG22作为低功耗蓝牙SOC方案,经常应用于电池供电的方案中,一般采用内部的ADC作为采集通道,内部的输入源作为输入接口,来测试VDD供电电压。本文将讲解电池电压与VDD供电电压检测ADC的方法。
【经验】EFR32BG系列蓝牙SoC之低功耗测试操作指导
很多的蓝牙设备都是电池供电的,因此对蓝牙SoC功耗水平测试与评估就非常有必要。Silicon Labs公司提供的蓝牙评估板底板,都带有电流功耗测试功能,搭配Simplicity studio v4开发平台的energy profile功耗测试上位机,非常容易测试出EFR32BG系列蓝牙SoC的功耗水平。我们详细介绍功耗测试需要的软件和硬件以及测试操作。本文就将具体进行说明。
低功耗、高性能:探究流行蓝牙SOC的成功秘诀
随着无线技术的飞速发展,蓝牙SOC已成为当今市场上极为流行的无线通信解决方案。蓝牙SOC集成了蓝牙通信功能以及微处理器等其他功能,为现代智能设备提供了高效、稳定的连接体验。
【经验】芯科科技EFR32BG22系列蓝牙SOC低功耗优化的相关配置
本文主要介绍Silicon Labs(芯科科技)EFR32BG22系列蓝牙SOC目前所有的低功耗优化的相关配置,实现目标: VDD=3V,VSCALE0=0.9V,温度25℃,EM2模式下深度休眠为1.4μA。
【应用】Silicon Labs车规级蓝牙SOC EFR32BG22用于汽车数字钥匙,工作频率高达76.8MHz
某客户的数字钥匙上需要用到两款LDO,目前有蓝牙SOC的需求,要求满足车规级,能够兼容手机蓝牙,给客户推荐了芯科的蓝牙SOC EFR32BG22,最高工作频率达到76.8MHz,非常符合客户的实际应该需求。
AIoT与蓝牙SOC:智能生活的无缝连接
未来,随着5G、云计算、边缘计算等技术的不断发展,蓝牙SOC将会在AIoT领域发挥更加重要的作用。它不仅能够实现设备之间的无缝连接和数据交换,还能够为AI算法提供更加丰富的数据源,推动人工智能技术的不断创新和发展。
【经验】蓝牙SoC EFR32BG22增加Button功能并发送Notify数据包的方法
本文以Silicon Labs蓝牙SoC EFR32BG22的Thunderboard模块为例,介绍如何使用Simplicity Studio v5软件在蓝牙soc_empty工程中添加Button功能,并向手机发送Notify数据包的方法。
【经验】低功耗蓝牙SoC芯片EFR32BG系列的UART串口通信参考代码与解析
EFR32BG是Silicon Labs公司的高性能低功耗蓝牙SoC芯片。支持蓝牙5.0、5.1协议和蓝牙Mesh协议,发射电流3.5mA@0dbm,接收电流仅有2.6mA。广泛用于智能门锁,蓝牙门禁系统,照明系统,智能家居;在开发EFR32BG蓝牙SoC的代码过程中,经常需要用到uart通信,本文详细介绍如何找到参考代码以及代码解析。
蓝牙SOC:高度集成的无线通信解决方案
蓝牙SOC(System on a Chip,系统级芯片)技术,作为现代无线通信领域的一项重要技术,正日益受到人们的关注和追捧。SOC,即将多个功能集成到单一芯片上,它大大提升了设备的集成度和性能,同时也降低了功耗和成本。在蓝牙技术中,SOC的应用使得蓝牙设备的制造更为简便,功能更为强大。
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 102,628
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
提供语音芯片、MP3芯片、录音芯片、音频蓝牙芯片等IC定制,语音时长:40秒~3小时(外挂flash),可以外挂TF卡或U盘扩容。
最小起订量: 1pcs 提交需求>
提供蓝牙BLE芯片协议、蓝牙模块、蓝牙成品测试认证服务;测试内容分Host主机层,Controller控制器层,Profile应用层测试。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
登录 | 立即注册
提交评论