【经验】低功耗蓝牙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
本文由紫云提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】Silicon Labs低功耗蓝牙SoC EFR32BG22如何通过GPIO唤醒UART通信
SiliconLabs的低功耗蓝牙SoC EFR32BG22系列芯片以极低的功耗和相对低廉的价格,达到了性价比的极致。目前大家开发EFR32BG22,大部分都会使其工作在休眠状态,一般会先用一个GPIO唤醒EFR32BG22,通过一定的条件使EFR32BG22停止休眠,再去串口通信,通信完成后,再进入休眠这样的流程。本文介绍下如何使用Silicon Labs的Bluetooth SDK实现该功能。
【经验】如何开启低功耗蓝牙SoC芯片EFR32BG系列参考代码soc-empty工程中的调试串口打印输出功能
EFR32BG是Silicon Labs公司的高性能低功耗蓝牙SoC芯片。支持蓝牙5.1协议和蓝牙Mesh协议,支持AOA定位功能,苹果HomeKit,支持多种硬件加密等。发射电流3.5mA@0dbm,接收电流仅有2.6mA。广泛用于智能门锁,蓝牙门禁系统,照明系统,智能家居。开发过程中,经常需要用到uart串口调试,本文详细介绍如何在soc-empty工程中开启调试串口。
【经验】如何实现低功耗智能蓝牙SOC芯片EFR32BG UART通信接口配置与数据收发?
EFR32BG是Silicon Labs公司的一款高性能低功耗蓝牙SOC芯片。广泛用于智能门锁,蓝牙门禁系统,照明系统,智能家居,以及各种需要与智能手机连接的设备中。这样一款应用广泛,高性能低功耗的BLE智能蓝牙SOC,在设计产品代码时,大都会使用UART通信,本文详细介绍如何配置UART引脚和初始化,以及代码的实现。
HS6621Cx 蓝牙低功耗兼容和专有2.4GHz SoC芯片
描述- 本资料介绍了HS6621Cx蓝牙低功耗和2.4GHz专有SoC芯片。该芯片符合全功能蓝牙5.1标准,具备高接收灵敏度和可编程发射功率,支持多种数据速率和广播扩展功能。它采用ARM Cortex-M4F内核,具有丰富的接口和外设,适用于运动健康、智能家居、物联网等领域。
型号- HS6621CX,HS6621CG,HS6621CQ,HS6621CM,HA6621CM
【视频】SiWx917新一代超低功耗Wi-Fi 6+蓝牙BLE 5.4无线SoC芯片,实现超乎想象性能和体验的双重突破
型号- SIWG917M110LGT,SIWG917M100MGT,SIWG917M111MGT,SIWG917M141XGT,SIWN917M100LGT,SIWG917M121XGT,SIWG917M111XGT,SIWT917M100XGT
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
|
选型表 - SILICON LABS 立即选型
研讨会2024年Silicon Labs(芯科科技)无线SoC新产品研讨会
12月26日Silicon Labs(芯科科技)无线SoC新产品研讨会上将重磅推出的SiWx917以及MG2X系列无线SoC。两款产品均集成了先进的无线技术、强大的处理能力和高效的能耗管理,同时还具备了两项关键功能:超低功耗运行以及单芯片Matter over Wi-Fi功能支持。
最新Matter智能家居参考设计打破生态藩篱—尽在深圳物联网展
随着智能家居市场的兴起,消费者对设备间的无缝互联与高效协同提出了更高要求。在这一情形下,Matter标准应运而生。连接标准联盟推出的Matter是一项全新的智能家居互联标准,旨在打破不同品牌、不同协议间的壁垒,实现智能家居设备的统一管理和互操作。自Matter标准发布以来得到了国内外众多厂商的支持,其功能不断增强,认证产品数量快速增长,覆盖品类更加多样化。本文介绍Matter 1.3带来哪些更新。
EFR32BG24无线SoC系列数据手册
描述- 该资料介绍了EFR32BG24无线SoC系列芯片,适用于蓝牙低能耗和蓝牙网状网络连接。该系列芯片具备高性能2.4GHz射频、低功耗、AI/ML硬件加速器和安全保险库等功能,旨在为物联网设备制造商提供智能、稳健且节能的产品。其主要特点包括:32位ARM Cortex-M33核心最高运行频率78MHz,高达1536KB的闪存和256KB的RAM,高性价比设计,支持多种外围设备接口和应用协议。
型号- EFR32BG24B110F1536IM48-B,EFR32BG24B210F1024IM48-B,EFR32BG24A020F1024IM40-B,EFR32XG24,EFR32BG24A010F1024IM48-B,EFR32BG24A020F1024IM48-B,EFR32BG24 FAMILY,EFR32BG24B220F1024IM48-B,EFR32BG24B020F1536IM48-BR,EFR32,EFR32BG24,EFR32BG24A010F1024IM40-B
【应用】亚米级、发射电流仅3.5mA@0dBm的蓝牙AOA室内定位系统方案
本方案采用Silicon Labs的低功耗蓝牙SoC芯片EFR32BG22,并搭配EPSON的高精度晶体38.4MHz无源晶体Q22FA1280041500,圣邦微SGMICRO的低噪声LDO SGM2036器件,实现亚米级、可探测方向、电池使用时间长的蓝牙AOA室内定位系统设计。
思为无线发布低功耗、小体积、远距离蓝牙5.2数传模块BLE5201,发射功率最高6dBm
思为无线BLE5201蓝牙5.2数传模块具备超低发射和接收电流(发射功率为0dBm时3.6mA;接收2.6mA)和高性能、低功耗M33内核,可将纽扣电池的寿命延长至十年。目标应用包括蓝牙Mesh低功耗节点、智能门锁、个人医疗保健和健身设备。
【应用】高集成度低功耗的蓝牙SOC芯片CST92F30应用于智能门锁,功耗更低且系统稳定性更高
芯海科技的高集成度低功耗蓝牙SOC芯片CST92F30基于低功耗蓝牙5.0协议栈,其片内置32位Cortex-M0 CPU、512KB Flash、138KB SRAM,最多可支持34个GPIO,12位ADC,最多支持16*18的键盘扫描,上述特性特别适用于智能门锁方案设计。
【应用】超低功耗2.4GHz WIFI+蓝牙二合一SoC芯片用于智能照明网关,射频电路集成度高满足小体积需求
WIFI、ZigBee等无线智能灯因为智能家居的普及而得到了很好的发展,多模网关因此应运而生,本文主要介绍旺凌科技的超低功耗2.4GHz WIFI+蓝牙二合一SoC芯片OPL1200在智能照明网关上的应用。
EFR32BG21 BLE无线SoC系列数据手册
描述- 该资料介绍了EFR32BG21蓝牙无线系统级芯片(SoC)的特性和应用。EFR32BG21适用于低功耗物联网设备,具备高性能的ARM Cortex-M33内核、2.4GHz无线电收发器、硬件安全引擎等功能,支持多种外围设备和接口,广泛应用于照明、智能家居、网关和数字助理等领域。
型号- EFR32BG21B010F1024IM32-B,EFR32BG21B020F1024IM32-D,EFR32BG21A020F768IM32-B,EFR32BG21A020F768IM32-D,EFR32BG21B010F512IM32-B,EFR32BG21A010F512IM32-B,EFR32BG21B020F768IM32-D,EFR32BG21B010F512IM32-D,EFR32BG21B020F768IM32-B,EFR32BG21A010F512IM32-D,EFR32BG21B020F512IM32-D,EFR32BG21B020F512IM32-B,EFR32BG21A020F1024IM32-B,EFR32BG21A020F512IM32-B,EFR32BG21,EFR32BG21A010F1024IM32-D,EFR32BG21A020F512IM32-D,EFR32BG21A010F1024IM32-B,EFR32BG21A020F1024IM32-D,EFR32BG21A010F768IM32-D,EFR32BG21B010F768IM32-B,EFR32BG21A010F768IM32-B,EFR32BG21B010F768IM32-D,EFR32BG21B020F1024IM32-B,EFR32BG21B010F1024IM32-D
EFR32BG22C112无线Gecko Soc数据表
描述- EFR32BG22C112 无线 Gecko SoC 是一款专为物联网设备设计的低功耗蓝牙 5.2 连网解决方案。该芯片集成了 38.4 MHz Cortex-M33 内核和高性能 2.4 GHz 无线电,具备低功耗、高可靠性和安全性等特点,适用于资产标签、消费电子、医疗器械、体育健身、智能家居和建筑自动化等领域。
型号- EFR32BG22C112F352GM32-C,EFR32BG22C112
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 101,879
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
根据用户的蓝牙模块,使用Bluetooth 蓝牙测试装置MT8852B,测试蓝牙1.0至5.1,包括传输速率、功率、频率、调制和接收机灵敏度,生成测试报告。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
Ignion可支持多协议、宽频段的物联网天线方案设计,协议:Wi-Fi、Bluetooth、UWB、Lora、Zigbee、2G、3G、4G、5G、CBRS、GNSS、GSM、LTE-M、NB-IoT等,频段范围:400MHz~10600MHz。
最小起订量: 2500 提交需求>
登录 | 立即注册
提交评论