【经验】低功耗蓝牙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实现该功能。
【经验】利用CLI命令创建EFR32MG的Zigbee工程绑定和上报条目
EFR32MG系列是Silicon Labs公司针对多协议推出的无线SOC,单芯片可以支持Sub-G、蓝牙、Thread和Zigbee多种协议。由于其高集成度、高射频性能以及低功耗等特性,被广泛应用于智能家居市场。Zigbee3.0发布后,Zigbee技术在智能家居应用中也越来越火爆。本文指导大家利用CLI命令创建EFR32MG的Zigbee工程绑定和上报条目,操作环境基于Simplicity S
【经验】如何开启低功耗蓝牙SoC芯片EFR32BG系列参考代码soc-empty工程中的调试串口打印输出功能
EFR32BG是Silicon Labs公司的高性能低功耗蓝牙SoC芯片。支持蓝牙5.1协议和蓝牙Mesh协议,支持AOA定位功能,苹果HomeKit,支持多种硬件加密等。发射电流3.5mA@0dbm,接收电流仅有2.6mA。广泛用于智能门锁,蓝牙门禁系统,照明系统,智能家居。开发过程中,经常需要用到uart串口调试,本文详细介绍如何在soc-empty工程中开启调试串口。
选对了针对医疗和可穿戴设备的小型蓝牙芯片,设计毫不费力!
芯科科技一直为医疗设备和可穿戴设备制造商提供小型、专为应用而优化的蓝牙解决方案。以下展示了芯科科技提供的八款小型蓝牙芯片以及快速比较表,可以帮助您为应用程序选择最佳蓝牙解决方案!
2024年Silicon Labs(芯科科技)无线SoC新产品发布会
12月26日Silicon Labs(芯科科技)无线SoC新产品发布会上将重磅推出的SiWx917以及MG2X系列无线SoC。两款产品均集成了先进的无线技术、强大的处理能力和高效的能耗管理,同时还具备了两项关键功能:超低功耗运行以及单芯片Matter over Wi-Fi功能支持。
SiWx917 Wi-Fi 6蓝牙低功耗无线SoC,助力智能手表功耗和安全性能提升
SiWx917是Silicon Labs推出的一款支持Wi-Fi 6、蓝牙LE 5.4 和低功耗特性的无线SoC(系统级芯片),专为物联网(IoT)和可穿戴设备设计。这款芯片不仅拥有强大的计算能力和先进的无线连接功能,还具有低功耗和小尺寸的优势,为智能手表市场带来了全新的技术突破。
基于芯海蓝牙芯片CST92F42的测温终端应用,集成了蓝牙基带和丰富外围设备及IO扩展
芯海芯海蓝牙CST92F42除了测温终端,同步可应用于专有2.4-GHz系统、人机接口设备(键盘、鼠标和遥控器),运动和休闲设备、移动电话配件和消费电子产品等。
芯科SiWx917低功耗WiFi 6+BLE SoC用于IPC网络摄像机,支持低功耗WiFi保活功能
一些电池供电的IPC在实际应用中,往往面临功耗高、网络连接慢以及处理能力有限等挑战。SiWx917 SoC,Silicon Labs超低功耗Wi-Fi 6和蓝牙 BLE 5.4无线SoC芯片,非常适合应用。
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 立即选型
【应用】亚米级、发射电流仅3.5mA@0dBm的蓝牙AOA室内定位系统方案
本方案采用Silicon Labs的低功耗蓝牙SoC芯片EFR32BG22,并搭配EPSON的高精度晶体38.4MHz无源晶体Q22FA1280041500,圣邦微SGMICRO的低噪声LDO SGM2036器件,实现亚米级、可探测方向、电池使用时间长的蓝牙AOA室内定位系统设计。
最新Matter智能家居参考设计打破生态藩篱—尽在深圳物联网展
随着智能家居市场的兴起,消费者对设备间的无缝互联与高效协同提出了更高要求。在这一情形下,Matter标准应运而生。连接标准联盟推出的Matter是一项全新的智能家居互联标准,旨在打破不同品牌、不同协议间的壁垒,实现智能家居设备的统一管理和互操作。自Matter标准发布以来得到了国内外众多厂商的支持,其功能不断增强,认证产品数量快速增长,覆盖品类更加多样化。本文介绍Matter 1.3带来哪些更新。
【IC】信驰达基于ESP32-C3推出低功耗Wi-Fi蓝牙双模模块RF-WM-ESP32B1,工作频率高达160MHz
2023年5月,领先的无线物联网通信模块厂商深圳信驰达科技RF-star推出基于ESP32-C3 SoC的低功耗WiFi/BLE双模通信模块——RF-WM-ESP32B1。采用乐鑫SoC芯片ESP32-C3。
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 103,878
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
可支持TI AM335x/AM5718 和NXP iMX6/iMX8芯片定制核心板和计算单板;支持NXP iMX6核心模组X / F / H系列、TI AM335x核心模组X / N / H系列,与兼容的底板组合定制单板计算机。
最小起订量: 1pcs 提交需求>
可定制弹簧天线频率范围:470MHz、315MHz、433MHz、868MHz、915MHz、490MHz、2.4GHz、GPRS、3G、蓝牙;增益:0~5dBi;电压驻波比V.S.W.R:≤2;天线尺寸不限。
最小起订量: 1000 提交需求>
登录 | 立即注册
提交评论