【经验】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实现自定义广播数据包的方法。
【经验】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的主控芯片并实现蓝牙数据收发,有丰富的外设。
Silicon Labs基于BG2x系列蓝牙SoC和软件工具的蓝牙6.0信道探测的创新应用案例
蓝牙技术联盟近期发布新的蓝牙6.0标准,并推出信道探测技术,可用于从智能门锁和门禁系统到资产追踪和管理的各个领域,释放了物联网的真正潜力,并通过实现智能和情境感知系统的最高精度距离测量,创建无缝的互联网络。本文将概略说明信道探测的基础概念和新兴的应用案例,最后还将介绍如何通过Silicon Labs(芯科科技)的BG2x系列蓝牙SoC和软件工具来快速实现此一新功能。
【经验】EFR32BG22系列蓝牙SOC电池电压与VDD供电电压检测ADC的方法
EFR32BG22作为低功耗蓝牙SOC方案,经常应用于电池供电的方案中,一般采用内部的ADC作为采集通道,内部的输入源作为输入接口,来测试VDD供电电压。本文将讲解电池电压与VDD供电电压检测ADC的方法。
【经验】芯科科技EFR32BG22系列蓝牙SOC低功耗优化的相关配置
本文主要介绍Silicon Labs(芯科科技)EFR32BG22系列蓝牙SOC目前所有的低功耗优化的相关配置,实现目标: VDD=3V,VSCALE0=0.9V,温度25℃,EM2模式下深度休眠为1.4μA。
Silicon Labs的SiWx917低功耗无线SoC,其低功耗WiFi保活的功能,显著降低智能门锁的能耗
SiWx917是Silicon Labs推出的一款支持Wi-Fi 6和蓝牙LE双模连接的低功耗无线SoC。它集成了先进的无线技术、强大的处理能力和高效的能耗管理,非常适合智能门锁对稳定性、低功耗和数据安全有着严格要求的设备。特别是SiWx917的低功耗WiFi保活的功能,在低功耗睡眠模式下,依然可以保持WiFi网络处于连接状态。
silicon labs EFR32BG22蓝牙固件OTA升级流程解析
介绍EFR32BG22蓝牙程序在非备份方式OTA时的详细操作流程,应用代码会跳转到AppLoader 中运行蓝牙功能,实现新固件的传输和写入。
【应用】Silicon Labs车规级蓝牙SOC EFR32BG22用于汽车数字钥匙,工作频率高达76.8MHz
某客户的数字钥匙上需要用到两款LDO,目前有蓝牙SOC的需求,要求满足车规级,能够兼容手机蓝牙,给客户推荐了芯科的蓝牙SOC EFR32BG22,最高工作频率达到76.8MHz,非常符合客户的实际应该需求。
基于芯科科技BG2x SoC的蓝牙信道探测和能量收集参考设计演示 – 尽在芯科科技/深圳物联网展
Silicon Labs(亦称“芯科科技”)在8月28至30日举办的“2024年深圳物联网展(IOTE Shenzhen)”展出现下最火的蓝牙信道探测(Channel Sounding)和能量收集(Energy Harvesting)参考设计,从而推动更多物联网创新应用。芯科科技的现场全面展示其BG2x低功耗蓝牙SoC和模块系列在蓝牙信道探测和能量收集技术方面的最新进展。
【经验】蓝牙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天梯榜。蓝牙SOC天梯榜是一个根据蓝牙芯片的性能、功耗、集成度、兼容性等多个维度进行综合评价的排名榜单。
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 101,879
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
提供语音芯片、MP3芯片、录音芯片、音频蓝牙芯片等IC定制,语音时长:40秒~3小时(外挂flash),可以外挂TF卡或U盘扩容。
最小起订量: 1pcs 提交需求>
提供蓝牙BLE芯片协议、蓝牙模块、蓝牙成品测试认证服务;测试内容分Host主机层,Controller控制器层,Profile应用层测试。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
查看全部2条回复
查看全部2条回复