【经验】低功耗蓝牙SoC芯片EFR32BG系列的UART串口通信参考代码与解析


EFR32BG是SILICON LABS公司的高性能低功耗蓝牙SoC芯片。支持蓝牙5.0、5.1协议和蓝牙Mesh协议,最大发射功率可达+20dbm,接收灵敏度可达-98.9dbm@1Mbps。发射电流3.5mA@0dbm,接收电流仅有2.6mA。广泛用于智能门锁,蓝牙门禁系统,照明系统,智能家居,以及各种需要与智能手机连接的设备中。
在开发EFR32BG蓝牙SoC的代码过程中,经常需要用到uart通信,本文详细介绍如何找到参考代码以及代码解析。本文演示操作使用了EFR32BG21蓝牙SoC芯片的评估板,其他型号的蓝牙评估板或者蓝牙芯片型号对应的操作类似。本文使用的蓝牙SDK版本是2.13.0。
如果使用2.4.2版本或以前的蓝牙SDK,因为之前的一些版本SDK支持可视化的外设配置工具,可以参考文档:【经验】如何实现低功耗智能蓝牙SOC芯片EFR32BG UART通信接口配置与数据收发?
接下来,我们详细介绍如何找到EFR32BG蓝牙SoC的uart参考代码,其实很简单,在Simplicity Studio v4开发平台中,生成一份和芯片或者评估板对用的soc-empty工程代码,里面就包含了uart通信的代码。但是里面默认了一些uart配置参数,可能不是我们期望的,本文也会详细介绍如何去修改uart通信的引脚配置和参数等。
在soc-empty参考代码中,app.c文件中有uart串口的初始化:
/* Initialize debug prints. Note: debug prints are off by default. See DEBUG_LEVEL in app.h */
initLog();
在soc-empty_BG21_UART_test\hardware\kit\common\drivers目录下,可以看到retargetserial.c文件。uart的初始化配置就在这个函数中了, void RETARGET_SerialInit(void),如果我们需要修改uart通信的参数,就可以在这里修改。
1、在void RETARGET_SerialInit(void)函数中,如下函数,是配置了一个GPIO口,用于使能评估板底板上的USB转uart功能的开关,只有在评估板上需要使用;在我们的产品中通常就用不到了,因此可以屏蔽这句代码。
/* Enable DK RS232/UART switch */
//RETARGET_PERIPHERAL_ENABLE();
2、修改uart波特率,默认的uart参数是115200,8N1。配置的代码在void RETARGET_SerialInit(void)函数中如下语句:
USART_TypeDef *usart = RETARGET_UART;
USART_InitAsync_TypeDef init = USART_INITASYNC_DEFAULT;
具体的USART_INITASYNC_DEFAULT定义在em_uart.h文件中,但是我们通常不建议直接修改em_usart.h库文件,如下:
/* Default USART Async struct for Series 1 and Series 2 devices */
#define USART_INITASYNC_DEFAULT \
{ \
usartEnable, /* Enable RX/TX when initialization is complete. */ \
0, /* Use current configured reference clock for configuring baud rate. */ \
115200, /* 115200 bits/s. */ \
usartOVS16, /* 16x oversampling. */ \
usartDatabits8, /* 8 data bits. */ \
usartNoParity, /* No parity. */ \
usartStopbits1, /* 1 stop bit. */ \
false, /* Do not disable majority vote. */ \
false, /* Not USART PRS input mode. */ \
0, /* PRS channel 0. */ \
false, /* Auto CS functionality enable/disable switch */ \
0, /* Auto CS Hold cycles */ \
0, /* Auto CS Setup cycles */ \
usartHwFlowControlNone /* No HW flow control */ \
}
#endif
可以按照下方的方式修改uart波特率为9600,同时需要在文件开头中包含em_usart.h头文件,例如:
特别提醒:使用EFR32BG21的评估板底板上集成的USB转串口功能连接电脑的串口助手工具测试时,波特率配置除115200之外的其他波特率会通信不正确,从评估板侧边的扩展口,外接一个uart转USB工具,9600、57600、19200等等波特率通信都是正常了。这个问题是评估板底板的问题,EFR32BG21芯片本身uart通信是没有问题的。
#include "em_usart.h"
。。。
USART_TypeDef *usart = RETARGET_UART;
USART_InitAsync_TypeDef init = USART_INITASYNC_DEFAULT;
init.baudrate= 9600;
3、修改UART口以及TX,RX对应的引脚。在工程中可以找到hal-config-board.h文件中,我们就可以根据实际电路图来修改对应的UART引脚了。注意如果以EVB板生产的soc-empty参考代码,hal-config-board.h文件目录在soc-empty_BG21_UART_test\hardware\kit\EFR32MG21_BRD4181A\config;如果是以芯片型号生成的soc-empty参考代码,hal-config-board.h文件目录在soc-empty代码工程的根目录下。以本文EFR32BG21 EVB生成的代码为例,使用uart引脚分配如下,如果不用硬件流控,可以不配置CTS和RTS,如果需要使用UART0,UART1,UART2,以及对应RX 、TX引脚,就直接修改宏定义即可:
// $[SERIAL]
#define BSP_SERIAL_APP_PORT (HAL_SERIAL_PORT_USART0)
#define BSP_SERIAL_APP_TX_PIN (5U)
#define BSP_SERIAL_APP_TX_PORT (gpioPortA)
#define BSP_SERIAL_APP_RX_PIN (6U)
#define BSP_SERIAL_APP_RX_PORT (gpioPortA)
#define BSP_SERIAL_APP_CTS_PIN (4U)
#define BSP_SERIAL_APP_CTS_PORT (gpioPortA)
#define BSP_SERIAL_APP_RTS_PIN (1U)
#define BSP_SERIAL_APP_RTS_PORT (gpioPortC)
具体哪些引脚可以作为UART引脚,详见对应芯片的数据手册,例如EFR32BG21的数据手册6.4 Digital Peripheral Connectivity。UART0可以分配的引脚是PA、PB、PC;UART1可以分配的引脚是PA和PB,UART2可以分配的引脚是PC。特别注意不是每个uart都可以使用所有的引脚,请查看数据手册引脚描述章节。
- |
- +1 赞 0
- 收藏
- 评论 1
本文由紫云提供,版权归安博在线平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:安博在线平台”。
相关推荐
【经验】如何实现低功耗智能蓝牙SOC芯片EFR32BG UART通信接口配置与数据收发?
EFR32BG是Silicon Labs公司的一款高性能低功耗蓝牙SOC芯片。广泛用于智能门锁,蓝牙门禁系统,照明系统,智能家居,以及各种需要与智能手机连接的设备中。这样一款应用广泛,高性能低功耗的BLE智能蓝牙SOC,在设计产品代码时,大都会使用UART通信,本文详细介绍如何配置UART引脚和初始化,以及代码的实现。
【经验】如何开启低功耗蓝牙SoC芯片EFR32BG系列参考代码soc-empty工程中的调试串口打印输出功能
EFR32BG是Silicon Labs公司的高性能低功耗蓝牙SoC芯片。支持蓝牙5.1协议和蓝牙Mesh协议,支持AOA定位功能,苹果HomeKit,支持多种硬件加密等。发射电流3.5mA@0dbm,接收电流仅有2.6mA。广泛用于智能门锁,蓝牙门禁系统,照明系统,智能家居。开发过程中,经常需要用到uart串口调试,本文详细介绍如何在soc-empty工程中开启调试串口。
【经验】SSV5平台上如何创建超低功耗蓝牙SoC芯片EFR32BG22的工程和功耗测试?
Silicon Labs的超低功耗蓝牙SoC芯片EFR32BG22系列,具备行业领先的低功耗水平,非常适合电池供电的设备。本文详细介绍在Simplicity Studio V5开发平台上,如何创建工程和功耗测试。
芯科科技智能家居蓝牙SoC芯片BG24提供+19.5dBm高射频功率与1.3μA超低功耗,助力实现远距离连接与超长续航
Silicon Labs BG24蓝牙SoC芯片专为智能家居设备设计,以+19.5 dBm的高射频功率覆盖更广区域,同时1.3 μA的深度睡眠功耗大幅延长设备续航时间。支持蓝牙5.3和蓝牙Mesh协议,BG24提升了智能门锁、传感器和网关等设备的通信稳定性与兼容性,是智能家居互联的理想选择。
【应用】超低功耗M33内核的SoC EFR32BG22用于蓝牙体温计,可将纽扣电池寿命延长至十年
蓝牙体温计因为能够方便地与智能手机连接,并且因为体积小巧,已经在家庭体温测量中广泛使用。常见的蓝牙体温计大多采用CR2032规格的纽扣电池供电容量较小,因此需要选择极低功耗的蓝牙芯片方案,Silicon Labs的EFR32BG22(BG22)SoC低功耗蓝牙非常适合此类产品。
EFR32BG24L无线SoC系列数据
EFR32BG24L无线SoC系列是适用于蓝牙低功耗和蓝牙网状网络的无线连接,具有高性能2.4GHz射频、低功耗、AI/ML硬件加速器和Secure Vault等关键特性。该系列SoC采用Cortex®-M33内核,最高运行频率78MHz,提供768kB闪存和96kB RAM,适用于智能家居、照明、便携式医疗设备和AI/ML等应用领域。
SILICON LABS - 无线系统芯片 (SOC),EFR32BG24L,AI/ML,智能家居,照明,便携式医疗设备
【视频】SiWx917新一代超低功耗Wi-Fi 6+蓝牙BLE 5.4无线SoC芯片,实现超乎想象性能和体验的双重突破
SILICON LABS - WI-FI 6+蓝牙BLE 5.4无线SOC芯片,WI-FI 6 SOC,SIWG917M110LGT,SIWG917M100MGT,SIWG917M111MGT,SIWG917M141XGT,SIWN917M100LGT,SIWG917M121XGT,SIWG917M111XGT,SIWT917M100XGT,资产追踪,暖通空调,智慧楼宇,宠物追踪器,智慧城市,智能门锁,HVAC,智能家居,运动手表,智慧医院,IPC,运动相机,智能电表,低功耗定位
HS6621Cx 蓝牙低功耗兼容和专有2.4GHz SoC芯片
本资料介绍了HS6621Cx蓝牙低功耗和2.4GHz专有SoC芯片。该芯片符合全功能蓝牙5.1标准,具备高接收灵敏度和可编程发射功率,支持多种数据速率和广播扩展功能。它采用ARM Cortex-M4F内核,具有丰富的接口和外设,适用于运动健康、智能家居、物联网等领域。
ONMICRO - BLUETOOTH LOW ENERGY COMPLIANT AND 2.4GHZ PROPRIETARY SYSTEM-ON-CHIP,符合蓝牙低功耗标准和2.4GHZ专有片上系统,蓝牙低功耗兼容和专有2.4GHZ SOC芯片,HS6621CX,HS6621CG,HS6621CQ,HS6621CM,HA6621CM,MESH组网,智能手表,手环,语音遥控器,无线透传,无线键鼠,智能锁,智能楼宇照明,智能开关,运动健康智能设备,智能家居,智能控制,物联网,天猫精灵
EFR32BG24蓝牙6.0 channel sounding 帮助智能门锁距离感知精度提升到0.3米,更准确更安全
Silicon Labs 的 EFR32BG24 低功耗蓝牙 6.0 SoC 搭载的信道探测(Channel Sounding)技术,以及优秀的测距算法将距离感知精度提升至0.3 米,为智能门锁构建了更可靠的安全性。
Silicon labs 蓝牙SOC选型表
Cortex-M4/M33内核,支持蓝牙5,待机功耗1.2μA;实测网络节点100+,工作温度高达125℃,提供芯片和模块。其最新的1.4μA超低功耗蓝牙SoC EFR32BG22具有主频高达76.8MHz Cortex-M33内核,16位ADC,支持蓝牙5.2与AoX定位和蓝牙Mesh协议。
产品型号
|
品类
|
MCU Core
|
Core Frequency (MHz)
|
Flash
|
RAM
|
Secure Vault
|
Bluetooth
|
Bluetooth 5
|
Bluetooth Mesh
|
Cryptography
|
Output Power Range (dBm)
|
GPIO
|
I²C
|
SPI
|
I²S
|
Receive Sensitivity
|
ADC
|
Comparators
|
Temperature Range (ºC)
|
Package Type
|
Package Size(mm)
|
EFR32BG24B110F1536IM48-B
|
Bluetooth®Wireless SoC
|
ARM Cortex-M33
|
78
|
1536
|
256
|
High
|
5.3
|
Bluetooth 5
|
Bluetooth Mesh
|
AES-128;AES-256;ECC;SHA-1;SHA-2
|
-20 to 10
|
28
|
2
|
3
|
1
|
-97.6DBM(1Mbit/s GFSK)
|
12-bit,SAR,1Msps
|
2
|
-40 to 125
|
QFN48
|
6x6
|
芯科科技BG24蓝牙SoC芯片内置AI/ML硬件加速器提供低功耗边缘计算能力,助力智能设备实现实时数据处理与决策
Silicon Labs BG24蓝牙SoC芯片通过内置AI/ML硬件加速器,赋予物联网设备卓越的边缘计算能力,使其能够在设备本地进行高效的实时数据处理与决策。结合低功耗设计和蓝牙5.3支持,BG24芯片在智能家居、工业监控和智能照明等领域表现出色,为未来智能设备的开发提供了强大的技术支撑。其低延迟和高效性能为用户带来更智能、更快速的应用体验,同时减少了对云计算资源的依赖,降低了整体运营成本。
最新Matter智能家居参考设计打破生态藩篱—尽在深圳物联网展
随着智能家居市场的兴起,消费者对设备间的无缝互联与高效协同提出了更高要求。在这一情形下,Matter标准应运而生。连接标准联盟推出的Matter是一项全新的智能家居互联标准,旨在打破不同品牌、不同协议间的壁垒,实现智能家居设备的统一管理和互操作。自Matter标准发布以来得到了国内外众多厂商的支持,其功能不断增强,认证产品数量快速增长,覆盖品类更加多样化。本文介绍Matter 1.3带来哪些更新。
【应用】高集成度低功耗的蓝牙SOC芯片CST92F30应用于智能门锁,功耗更低且系统稳定性更高
芯海科技的高集成度低功耗蓝牙SOC芯片CST92F30基于低功耗蓝牙5.0协议栈,其片内置32位Cortex-M0 CPU、512KB Flash、138KB SRAM,最多可支持34个GPIO,12位ADC,最多支持16*18的键盘扫描,上述特性特别适用于智能门锁方案设计。
芯科新推出无线SoC EFR32BG和EFR32MG24系列构建单芯片边缘AI解决方案,持续探索无线SoC+嵌入式AI
芯科科技新推出的EFR32BG和EFR32MG24产品旨在无线SoC上构建单芯片边缘AI解决方案,它是一种集成化的解决方案,实现更高的性能和更低的功耗,支持Matter、Zigbee、OpenThread、低功耗蓝牙。
思为无线发布低功耗、小体积、远距离蓝牙5.2数传模块BLE5201,发射功率最高6dBm
思为无线BLE5201蓝牙5.2数传模块具备超低发射和接收电流(发射功率为0dBm时3.6mA;接收2.6mA)和高性能、低功耗M33内核,可将纽扣电池的寿命延长至十年。目标应用包括蓝牙Mesh低功耗节点、智能门锁、个人医疗保健和健身设备。
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 86,074
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务

世强深圳实验室提供Robei EDA软件免费使用服务,与VCS、NC-Verilog、Modelsim等EDA工具无缝衔接,将IC设计高度抽象化,并精简到三个基本元素:模块、引脚、连接线,自动生成代码。点击预约,支持到场/视频直播使用,资深专家全程指导。
实验室地址: 深圳 提交需求>

拥有IC烧录机20余款,100余台设备,可以烧录各种封装的IC;可烧录MCU、FLASH、EMMC、NAND FLASH、EPROM等各类型芯片,支持WIFI/BT模组PCBA烧录、测试。
最小起订量: 1 提交需求>
登录 | 立即注册
提交评论