【经验】手把手教—BLE SoC如何通过串口进行DFU升级?
本文主要描述如何实现和测试BLE SoC EFR32BG的DFU功能。简单的说,就是通过UART口更新升级EFR32BG固件。在测试前需要准备以下软件:
1、安装simplicity studio V4
2、安装 BLE SDK 2.1.1.0.
3、安装MinGW 编译环境
说明:本文中,笔者测试使用的SSv4和MinGW都是安装在D盘,测试时请根据实际安装路径操作。
1)MinGW的安装
MinGW下载链接:
https://sourceforge.net/projects/mingw-w64/files/latest/download?source=recommended
下载好MinGW安装包以后,运行“mingw-w64-install.exe”。安装时对于选项的设置如下图所示,这个是笔者测试时使用的安装选项,可以正确编译和完成DFU测试。
选择好安装路径后,将开始安装。整个过程会先下载一些文件,然后自动完成安装,全程无需再设置或者干预安装。
安装完成以后,可以测试一下MinGW是否正常运行。双击安装目录下的bat文件即可运行MinGW:
D:\Program Files (x86)\mingw-w64-layne\x86_64-6.2.0-win32-seh-rt_v5-rev1
在弹出的命令行界面输入命令:gcc –v(注意空格),会看到最后出来gcc的版本和安装的一样,都是6.2版本。说明MinGW的gcc编译器运行正常,如下图:
2)commander软件准备
1、请确认commander软件是最新的版本,可以在这个路径下找到:
D:\SiliconLabs\SimplicityStudio\v4\developer\adapter_packs\commander
运行commander.exe后可以查看版本信息,如果版本过低,请下载最新的SSv4,并完成更新:
2、确认commander软件是最新版本以后,把这个文件夹拷贝到下面的目录下:
D:\SiliconLabs\SimplicityStudio\v4\developer\stacks\ble\v2.1.1.0\protocol\Bluetooth_2.1\bin
3)DFU 测试开始
1、在SSv4的界面运行BGTool软件。编译wstk_bgapi参考代码,路径为:
D:\SiliconLabs\SimplicityStudio\v4\developer\stacks\ble\v2.1.1.0\app\bluetooth_2.1\examples_bgscript
编译之后,会生成bin文件和3个ebl文件。其中,wstk_bgapi_full.ebl是DFU会使用到的文件。
2、编译完成之后,用Flash Programmer软件把bin文件下载到EFR32BG的目标板上运行。然后,打开BGTool软件,目标板会连接上BGTool,点击开始广播。此时,打开智能手机,能发现设备名称为 Blue gecko的蓝牙设备。
3、复制wstk_bgapi参考代码,并重命名为wstk_bgapi_layne。修改wstk_bgapi_layne文件夹中的gatt.xml文件的蓝牙设备名称和前一份文件不一样即可,主要是验证DFU之后固件是否已被更新。如下图:
修改好gatt.xml文件以后,同样使用BGTool编译这个工程代码,并得到bin文件和3个ebl文件。但是,这时候不要使用Flash Programmer软件下载代码,改用DFU来更新代码。
4、运行MinGW,在命令行中输入:
cd D:\SiliconLabs\SimplicityStudio\v4\developer\stacks\ble\v2.1.1.0\app\bluetooth_2.1\examples_ncp_host\uart_dfu
运行mingw32-make命令,编译项目功能,得到uart-dfu.exe可执行文件,文件存放在D:\SiliconLabs\SimplicityStudio\v4\developer\stacks\ble\v2.1.1.0\app\bluetooth_2.1\examples_ncp_host\uart_dfu\exe
这个编译过程无任何报错,也无需修改uart_dfu文件夹中的任何文件。编译得到uart-dfu.exe文件后,把这个文件分别拷贝到ebl文件所在的文件夹中。如下图:
5、开始DFU升级,切换路径到wstk_bgapi_layne文件,如下:
运行uart-dfu.exe COM16 115200 wstk_bgapi_full.ebl命令,开始DFU升级,当提示finish时,代表升级完成。如下图:
特别说明,COM16要根据电脑实际识别到的串口号来修改。如果wstk_bgapi_full.ebl有重命名,也需要修改成实际使用的名称。例如:uart-dfu.exe COM20 115200 wstk_bgapi_full_layne.ebl。
看到finish出现,表明DFU升级完成。这时候打开BGTool软件,连接上目标板,点击开始广播按钮,用手机搜索蓝牙设备,会找到新的蓝牙设备名称为Layne gecko,说明DFU更新成功。
如下图:
本文小结
更新可以反复测试,多次验证DFU的升级功能。只需要切换路径,重新运行DFU升级命令即可。
升级步骤归纳如下:
1)检查commander软件是否为新版本
2)编译并下载wstk_bgapi工程代码到目标板
3)修改并编译新的工程代码,产生新的*.ebl镜像文件
4)编译uart-dfu代码生成uart-dfu.exe文件
5)运行DFU升级命令:uart-dfu.exe COM16 115200 wstk_bgapi_full.ebl
- |
- +1 赞 0
- 收藏
- 评论 3
本网站所有内容禁止转载,否则追究法律责任!
相关研发服务和供应服务
评论
全部评论(3)
-
用户69711992 Lv3 2021-04-12uart-dfu.exe生成的这个软件怎么打不开
-
Tristan Tsai Lv5. 技术专家 2017-08-04文章看来看去很容易重复,希望能再丰富一些
-
Tristan Tsai Lv5. 技术专家 2017-08-03写的不错的
相关推荐
【经验】如何使用J-Link V8和Silicon Labs EVB上的J-Link调试用户目标板?
本文讲述了用Silicon Labs EFM32系列超低功耗MCU和EFR32系列无线SOC做开发时遇到J-Link调试器无法连接上目标板的解决方法。
设计经验 发布时间 : 2017-10-04
【经验】浅析低功耗蓝牙绑定与配对的区别
在Silicon Labs为EFR32MG和EFR32BG系列提供Bluetooth SDK,配对在连接的时候实现,绑定通过gecko_sm_increase_security命令实现。
设计经验 发布时间 : 2018-02-26
【经验】基于Silicon Labs的Zigbee无线SoC EFR32MG如何实现组播
Silicon Labs的Zigbee无线SoC EFR32MG在Zigbee的应用中占有非常多的份额,主要的优势为集成PA,最高19.5dbm的发射功率,-102.7dbm接收灵敏度,整个链路预算即122.2db,穿墙的效果非常好。全球范围内使用EFR32MG作为Zigbee网关的产品高达80%。
设计经验 发布时间 : 2019-01-22
xG26再告捷!荣获2024全球电子成就奖-RF/无线年度创新产品奖
SILICON LABS(芯科科技)旗舰级BG26蓝牙SoC和MG26多协议SoC在日前获颁2024年全球电子成就奖(WEAA)年度射频/无线/微波创新产品奖!BG26和MG26系列SoC是迄今物联网产业领先企业之最高性能的系列产品,可用于最复杂的物联网应用,如需要较强的处理能力、能效和无线性能的Matter等具备严苛要求之新兴应用,以及包括智能家居、智慧城市和工业用例。
原厂动态 发布时间 : 2024-11-13
【产品】支持远距离通信的低功耗远距离Sub-GHz SoC EFR32FG
Silicon Labs的高性能双频段无线SoC EFR32FG支持Rail、Connect私有协议和动态双协议,支持2.4GHz和Sub-GHz共存的无线机制。单从芯片指标性能上说,该芯片有+20dbm最大发射功率,-126dbm接收灵敏度,链路预算非常优秀。EFR32FG目前已经支持1.2kbps DSSS+FEC长距离模式,现在已经是Lora的强力竞争对手,助力更低成本、高性能的长距离通信产
新产品 发布时间 : 2019-12-02
要在电路板上增加蓝牙功能,都需要什么器件?
如果使用蓝牙SoC EFR32BG1xx系列,芯片电源部分需要电感(使能DC-DC)、退耦电容,射频链路1个电感、一个电容,陶瓷天线或者PCB板载天线。如果用蓝牙模块BGM11x,可预留串口和电源接口。
技术问答 发布时间 : 2017-09-15
多协议无线SoC EFR32MG1P232 Debug接口用做普通GPIO接口如何实现?
依据指导文档,在开发板上做测试,实现代码如下:;{;uint32_t time = 0;;GPIO_PinModeSet(gpioPortF, 2, gpioModePushPull, 0); //PF2;time = halCommonGetInt32uMillisecondTick();;while(elapsedTimeInt32u(time,halCommonGetInt32uMillisecondTick()) < 4000) //延时4S;halResetWatchdog();;GPIO_DbgSWDIOEnable(false);;GPIO_DbgSWDClkEnable(false);;GPIO_DbgSWOEnable(false);;GPIO_PinOutClear(gpioPortF, 2); //PF2输出低电平,用于测试输出是否受控;GPIO_PinOutToggle(gpioPortF,4); //开发板上的LED0亮,确保PF2输出低电平执行;}
技术问答 发布时间 : 2017-10-10
【IC】Silicon Labs的EFR32xG27无线SoC,外形小巧且低功耗,在物联网应用中具有极强的渗透力
EFR32xG27无线Gecko SoC是将76.8MHz的Arm Cortex-M33处理器内核与高性能2.4GHz无线电相结合的单芯片解决方案,外形小巧,同时具有丰富的功能和低功耗的特性,在物联网应用中具有极强的渗透力。
产品 发布时间 : 2024-10-17
【应用】Silicon Labs低功耗Zigbee 无线SoC EFR32MG助力实现3路单火线供电墙壁开关
单火线供电智能墙壁开关,安装方便,仅需一根火线供电,安装中非常的方便。但是单火线开关最需要避免的是鬼火现象的产生。所谓鬼火,就是指在单火线取电过程中,由于主控功耗太高,导致流过灯泡的电流达到了其发光的阈值,而导致的灯泡有微光闪烁的状态出现。基于Silicon Labs的低功耗Zigbee无线SoC,成功应用于3路单火线供电墙壁开光中,由于其超低的功耗,将鬼火出现的几率降低至最小。
应用方案 发布时间 : 2019-04-10
Zigbee采用无线SoC EFR32MG芯片做NCP方案,请问如何给加入网络的设备发送数据?
send发送命令,可以理解为发送缓冲buffer里面的内容。因此,在send之前,需要使用CLI命令组建一条你想发送的命令。这种场景,通常应用在ZCL命令下。首先所有的命令可以在SimplicityStudio安装目录找到详细的解释。C:/SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v1.1/protocol/zigbee_5.10/documentation/120-3023-000_AF_V2_API/group__cli.html比如发送一条on/off命令给一个节点。你可以在任意节点上输入info查看当前节点的网络信息,比如nodeID,PANID,endpotin,cluster信息等等。send [id:2] [src-endpoint:1] [dst-endpoint:1]Send a pre-buffered message from a given endpoint to an endpoint on a device with a given short address.id - INT16U - short id of the device to send the message tosrc-endpoint - INT8U - The endpoint to send the message fromdst-endpoint - INT8U - The endpoint to send the message to 假设从A节点发送on/off命令到B节点。通过info查看A节点的nodeID(0x0001),Endpoint是1。通过info查看B节点的nodeID(0x0002),Endpoint是1。那么可以在A节点的CLI使用如下命令。 ZCL on/off onSend 0x0002 1 1
技术问答 发布时间 : 2017-06-27
Silicon Labs(芯科科技) 蓝牙网络APK应用程序(Android)
描述- Silicon Labs-wirelessgecko-android.apk (安卓手机APP适用下载)
型号- EFR32MG,EFR32BG
2.4G无线协议需私有化,这款SoC芯片你不容错过
Silicon Labs最新推出专门针对2.4GHz私有无线协议需求的SoC产品EFR32FG系列产品,给你的开发带来更简易的体验。
新产品 发布时间 : 2016-08-16
电子商城
现货市场
服务
Ignion可支持多协议、宽频段的物联网天线方案设计,协议:Wi-Fi、Bluetooth、UWB、Lora、Zigbee、2G、3G、4G、5G、CBRS、GNSS、GSM、LTE-M、NB-IoT等,频段范围:400MHz~10600MHz。
最小起订量: 2500 提交需求>
根据用户的蓝牙模块,使用Bluetooth 蓝牙测试装置MT8852B,测试蓝牙1.0至5.1,包括传输速率、功率、频率、调制和接收机灵敏度,生成测试报告。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
登录 | 立即注册
提交评论