【经验】EFR32BG系列蓝牙SoC之低功耗测试操作指导
EFR32BG是SILICON LABS公司的高性能低功耗蓝牙SoC芯片。支持蓝牙5.0、5.1协议和蓝牙Mesh协议,最大发射功率可达+20dbm,接收灵敏度可达-98.9dbm@1Mbps。EFR32BG22系列具备更优秀的功耗表现,发射电流3.5mA@0dbm,接收电流仅有2.6mA。广泛用于智能门锁,蓝牙门禁系统,照明系统,智能家居,以及各种需要与智能手机连接的设备中。
由于很多的蓝牙设备都是电池供电的,因此对蓝牙SoC功耗水平测试与评估就非常有必要。Silicon Labs公司提供的蓝牙评估板底板,都带有电流功耗测试功能,搭配Simplicity studio v4开发平台的energy profile功耗测试上位机,非常容易测试出EFR32BG的功耗水平。接下来,我们详细介绍功耗测试需要的软件和硬件以及测试操作。
1、功耗测试软件准备。通常我们建议使用Simplicity studio v4中的SOC-iBeacon参考代码测试,在这个参考代码的描述里面有说明:This example demonstrates the power consumption at 0 dBm TX power。
这份代码里面默认设置了发射功率为0dBm,只发送蓝牙Beacon广播信号。默认的广播间隔是100ms,SOC-iBeacon参考代码按照如下图片生成。本文采用的是EFR32BG13评估板,蓝牙SDK版本是2.13.0。值得一提的是,Silicon Labs在今年年初推出了EFR32BG22系列的低功耗蓝牙SoC,功耗较以往产品更低,具备更优秀的功耗表现,发射电流3.5mA@0dbm,接收电流仅有2.6mA。如果需要超低功耗的应用,可以选择EFR32BG22系列。
生成好代码后,在“isc”文件点击“Generate”按钮,生成完整的代码,然后点击编译,烧录代码到EFR32BG的评估板就可以开始测试了。由于默认的广播间隔是100ms,本次测试,我们修改一个广播间隔为1秒钟的代码测试平均功耗。代码修改如下:
在main.c文件中的void bcnSetupAdvBeaconing(void)函数,找到gecko_cmd_le_gap_set_advertise_timing(0, 160, 160, 0, 0);函数,这个函数设置了广播间隔。
/* Set advertising parameters. 100ms advertisement interval.
* The first two parameters are minimum and maximum advertising interval,
* both in units of (milliseconds * 1.6). */
//gecko_cmd_le_gap_set_advertise_timing(0, 160, 160, 0, 0);//这里默认设置160是100ms
gecko_cmd_le_gap_set_advertise_timing(0, 1600, 1600, 0, 0);//我们修改为1600是1秒
功耗测试结果如下,SOC-iBeacon代码,0dBm发射,1秒广播间隔,平均功耗约为21.4uA。
2、采用同样的测试方式,我们采用SoC-empty参考代码,生成代码后修改发射功率和广播间隔为1秒钟,在app.c文件中void appMain(gecko_configuration_t *pconfig)函数,找到如下位置。修改广播间隔参数为1600,并添加 gecko_cmd_system_set_tx_power(0);代码设置发射功率为0dBm。
/* Set advertising parameters. 100ms advertisement interval.
* The first parameter is advertising set handle
* The next two parameters are minimum and maximum advertising interval, both in
* units of (milliseconds * 1.6).
* The last two parameters are duration and maxevents left as default. */
gecko_cmd_le_gap_set_advertise_timing(0, 1600, 1600, 0, 0);
/* Set 0 dBm Transmit Power */
gecko_cmd_system_set_tx_power(0);
功耗测试结果如下:SOC-empty代码,0dBm发射,1秒广播间隔,平均功耗约为24.58uA。
3、对比soc-empty和soc-iBeacon功耗测试情况,soc-empty功耗会稍微大一点点,主要在配置上有些地方不一样。对两份代码情况,有如下代码会影响功耗情况,如果广播的字节数越多也会影响功耗。如果把这些差异的地方都修改成一样,功耗也会趋近一样了:
1)Soc-empty代码使用的广播是可连接广播:
/* Start general advertising and enable connections. */
gecko_cmd_le_gap_start_advertising(0, le_gap_general_discoverable, le_gap_connectable_scannable);
soc-iBeacon代码使用的是不可连接广播:
/* Start advertising in user mode and enable connections */
gecko_cmd_le_gap_start_advertising(0, le_gap_user_data, le_gap_non_connectable);
2)Soc-empty代码开启了UART和VCOM使能,在hal-config.h文件可以找到设置:
#ifndef HAL_VCOM_ENABLE
#define HAL_VCOM_ENABLE (1)
#endif
soc-iBeacon代码没有开启UART和VCOM使能,在hal-config.h文件可以找到设置:
#ifndef HAL_VCOM_ENABLE
#define HAL_VCOM_ENABLE (0)
#endif
3)Soc-empty代码PA使用了默认设置,// Default value: HAL_PA_SELECTION_2P4_HP;
soc-iBeacon代码PA设置为 .pa.pa_mode = RAIL_TX_POWER_MODE_2P4_LP,在main.c文件中可以找到配置位置:注意设置成Low Power PA模式,最大的发射功率不会超过0dBm。
uint8_t bluetooth_stack_heap[DEFAULT_BLUETOOTH_HEAP(MAX_CONNECTIONS)];
/* Gecko configuration parameters (see gecko_configuration.h) */
static const gecko_configuration_t config = {
.config_flags = 0,
#if defined(FEATURE_LFXO)
.sleep.flags = SLEEP_FLAGS_DEEP_SLEEP_ENABLE,
#else
.sleep.flags = 0,
#endif // LFXO
.bluetooth.max_connections = MAX_CONNECTIONS,
.bluetooth.heap = bluetooth_stack_heap,
.bluetooth.sleep_clock_accuracy = 100, // ppm
.bluetooth.heap_size = sizeof(bluetooth_stack_heap),
.gattdb = &bg_gattdb_data,
.pa.config_enable = 1, // Set this to be a valid PA config
.pa.pa_mode = RAIL_TX_POWER_MODE_2P4_LP,
4、发射电流测试,采用SoC-empty参考代码,可以在app.c文件中的case gecko_evt_system_boot_id下方添加如下代码,进入持续发射状态,就可以测试发射电流了。例如我们设置了0dBm发射功率,packet_type = 254为单载波,其他3个参数根据测试需求设定。更多gecko_cmd_test_dtm_tx参数说明,详见蓝牙SDK的API文档。另外一种测试方法就是使用NCP参考代码,搭配BGTOOL可视化上位机测试发射和接收的电流。关于NCP模式的代码和测试操作,参考:EFR32无线通信模块AN107——蓝牙BLE(蓝牙性能测试之NCP模式)
/* Set 0 dBm Transmit Power */
gecko_cmd_system_set_tx_power(0);
gecko_cmd_test_dtm_tx(254,37,1,1);//(uint8 packet_type, uint8 length, uint8 channel,uint8 phy);
5、接收电流测试,依然使用SoC-Empty参考代码。可以在app.c文件中的case gecko_evt_system_boot_id下方添加如下代码,进入持续接收状态,就可以测试接收电流了。需要测试的信道和速率,可以根据需要设定,详见蓝牙SDK的API描述文档。
gecko_cmd_test_dtm_rx(37, 1);//uint8 channel = 37, uint8 phy = 1Mbps);
注意,仅需这一行代码就会自动进入接收状态,如果前面有添加过TX发射相关的代码,记得需要去除。
6、如果需要停止测试发射电流和接收电流,可以调用gecko_cmd_test_dtm_end(); 命令停止测试。
7、在测试功耗的过程中,如果遇到功耗曲线如下图所示,比较奇怪的电流曲线,也没有周期性的广播间隔电流波形,有可能是USB数据线有问题,建议换一根品质良好的USB数据线。
- |
- +1 赞 0
- 收藏
- 评论 4
本文由紫云提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】芯科科技EFR32BG22系列蓝牙SOC修改自定义广播包的思路与具体实例
在蓝牙的实际应用中,往往需要自定义的蓝牙广播包来适应不同的应用环境,本文主要介绍基于SILICON LABS的EFR32BG22蓝牙SOC实现自定义广播数据包的方法。
设计经验 发布时间 : 2023-03-16
【经验】STUDIO V5中蓝牙SoC EFR32BG22添加串口LOG打印的方法
在调试Silicon Labs蓝牙SoC EFR32BG22时,一般需要添加LOG打印信息,通过串口的方式来判断代码运行是否正常。由于使用RTT功能在打印信息时无法再次在线调试和代码下载,所以直接采用串口的方式更加便捷。
设计经验 发布时间 : 2021-06-30
【经验】Silicon Labs的蓝牙SoC EFR32BG22如何进行在线的OTA升级?
Silicon Labs的蓝牙SOC EFR32BG目前已经能够支持到蓝牙5.2,工艺升级后的EFR32BG22的功耗能够达到接收4.1mA,0dbm发射功耗3.6mA,休眠功耗低至1.4uA,如此低的功耗,能够大幅延长蓝牙设备的电池续航时间。本文介绍蓝牙SoC EFR32BG22如何进行在线的OTA升级。
设计经验 发布时间 : 2020-06-07
xG26再告捷!荣获2024全球电子成就奖-RF/无线年度创新产品奖
SILICON LABS(芯科科技)旗舰级BG26蓝牙SoC和MG26多协议SoC在日前获颁2024年全球电子成就奖(WEAA)年度射频/无线/微波创新产品奖!BG26和MG26系列SoC是迄今物联网产业领先企业之最高性能的系列产品,可用于最复杂的物联网应用,如需要较强的处理能力、能效和无线性能的Matter等具备严苛要求之新兴应用,以及包括智能家居、智慧城市和工业用例。
原厂动态 发布时间 : 2024-11-13
芯科科技针对蓝牙Mesh 1.1标准版本发布技术更新,增强安全性和系统可靠性,引入许多通信增强功能
芯科科技宣布针对最新的蓝牙Mesh 1.1标准版本发布技术更新,包括改进了安装和更新过程,增强安全性和系统可靠性,并引入许多通信增强功能。这些功能提升将在许多商业和工业应用中发挥作用,例如商业照明系统,有助于降低进入连接网络照明控制(NLC)系统的门槛。
原厂动态 发布时间 : 2024-01-18
Silicon Labs基于BG2x系列蓝牙SoC和软件工具的蓝牙6.0信道探测的创新应用案例
蓝牙技术联盟近期发布新的蓝牙6.0标准,并推出信道探测技术,可用于从智能门锁和门禁系统到资产追踪和管理的各个领域,释放了物联网的真正潜力,并通过实现智能和情境感知系统的最高精度距离测量,创建无缝的互联网络。本文将概略说明信道探测的基础概念和新兴的应用案例,最后还将介绍如何通过Silicon Labs(芯科科技)的BG2x系列蓝牙SoC和软件工具来快速实现此一新功能。
应用方案 发布时间 : 2024-10-22
【经验】EFR32BG22系列蓝牙SOC电池电压与VDD供电电压检测ADC的方法
EFR32BG22作为低功耗蓝牙SOC方案,经常应用于电池供电的方案中,一般采用内部的ADC作为采集通道,内部的输入源作为输入接口,来测试VDD供电电压。本文将讲解电池电压与VDD供电电压检测ADC的方法。
设计经验 发布时间 : 2020-11-28
【经验】芯科科技EFR32BG22系列蓝牙SOC低功耗优化的相关配置
本文主要介绍Silicon Labs(芯科科技)EFR32BG22系列蓝牙SOC目前所有的低功耗优化的相关配置,实现目标: VDD=3V,VSCALE0=0.9V,温度25℃,EM2模式下深度休眠为1.4μA。
设计经验 发布时间 : 2021-09-27
Silicon Labs的SiWx917低功耗无线SoC,其低功耗WiFi保活的功能,显著降低智能门锁的能耗
SiWx917是Silicon Labs推出的一款支持Wi-Fi 6和蓝牙LE双模连接的低功耗无线SoC。它集成了先进的无线技术、强大的处理能力和高效的能耗管理,非常适合智能门锁对稳定性、低功耗和数据安全有着严格要求的设备。特别是SiWx917的低功耗WiFi保活的功能,在低功耗睡眠模式下,依然可以保持WiFi网络处于连接状态。
应用方案 发布时间 : 2024-10-18
【经验】蓝牙SoC EFR32BG22增加Button功能并发送Notify数据包的方法
本文以Silicon Labs蓝牙SoC EFR32BG22的Thunderboard模块为例,介绍如何使用Simplicity Studio v5软件在蓝牙soc_empty工程中添加Button功能,并向手机发送Notify数据包的方法。
设计经验 发布时间 : 2021-03-14
【应用】Silicon Labs车规级蓝牙SOC EFR32BG22用于汽车数字钥匙,工作频率高达76.8MHz
某客户的数字钥匙上需要用到两款LDO,目前有蓝牙SOC的需求,要求满足车规级,能够兼容手机蓝牙,给客户推荐了芯科的蓝牙SOC EFR32BG22,最高工作频率达到76.8MHz,非常符合客户的实际应该需求。
应用方案 发布时间 : 2022-11-10
智能设备设计概念并开发小型医疗、可穿戴和娱乐设备
随着科技的发展,电子产品的体积越来越小,并被赋予更多智能功能,与网络连接也成为基本功能,像是小型蓝牙医疗保健设备与可穿戴设备、智能娱乐设备和增强现实(AR)和虚拟现实(VR)解决方案等产品,已经逐步改变人类的生活样貌。本文将为您介绍设计这类电子产品的设计概念,以及由Silicon Labs(芯科科技)所推出相关解决方案的产品特性。
应用方案 发布时间 : 2024-10-08
silicon labs EFR32BG22蓝牙固件OTA升级流程解析
介绍EFR32BG22蓝牙程序在非备份方式OTA时的详细操作流程,应用代码会跳转到AppLoader 中运行蓝牙功能,实现新固件的传输和写入。
设计经验 发布时间 : 2023-11-08
【经验】蓝牙SoC EFR32BG22的高精度ADC配置步骤与注意事项
Silicon Labs的EFR32BG22系列蓝牙SoC内部集成高精度ADC功能,采用内部1.21V作为Vref,ADC真实有效位数可达13.5bit,使用外部1.25V基准源作为Vref,精度可达14.3bit。本文介绍ADC配置相关步骤以及注意项目。
设计经验 发布时间 : 2020-11-04
基于芯科科技BG2x SoC的蓝牙信道探测和能量收集参考设计演示 – 尽在芯科科技/深圳物联网展
Silicon Labs(亦称“芯科科技”)在8月28至30日举办的“2024年深圳物联网展(IOTE Shenzhen)”展出现下最火的蓝牙信道探测(Channel Sounding)和能量收集(Energy Harvesting)参考设计,从而推动更多物联网创新应用。芯科科技的现场全面展示其BG2x低功耗蓝牙SoC和模块系列在蓝牙信道探测和能量收集技术方面的最新进展。
原厂动态 发布时间 : 2024-09-03
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 103,858
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
根据用户的蓝牙模块,使用Bluetooth 蓝牙测试装置MT8852B,测试蓝牙1.0至5.1,包括传输速率、功率、频率、调制和接收机灵敏度,生成测试报告。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
提供语音芯片、MP3芯片、录音芯片、音频蓝牙芯片等IC定制,语音时长:40秒~3小时(外挂flash),可以外挂TF卡或U盘扩容。
最小起订量: 1pcs 提交需求>
查看全部2条回复
查看全部2条回复