【经验】使用Silicon Labs Wireless Gecko无线SoC时的蓝牙堆栈配置介绍
本文档主要介绍在使用SILICON LABS无线SoC模块时,如何进行蓝牙堆栈的配置。要在Wireless Gecko上运行蓝牙堆栈和应用程序,必须正确配置MCU及其外围设备。初始化硬件后,还必须使用gecko_init()函数初始化堆栈。
1. 无线Gecko MCU和外设配置
initMcu()
initMCU()函数用于初始化MCU内核。此功能启动振荡器并配置器件的能耗模式。可以将与外科设置无关的外设初始化(例如,定时器初始化)添加到此功能中。必须在main()的开头调用该函数。
initBoard()
initBoard()函数用于初始化电路板功能,例如初始化外部闪存。可以将依赖于电路板设计的外设初始化(例如GPIO init或UART init)添加到此功能中。必须在initMcu()之后调用该函数。
initApp()
initApp()函数用于初始化特定于应用程序的功能,例如在WSTK上启用SPI显示。必须在initBoard()之后调用该函数。
1.1自适应跳频
蓝牙堆栈实现自适应跳频(AFH),符合ETSI EN 300 328标准。使用+10 dBm及以上的发射功率时需要AFH。 AFH还可以通过避免拥塞信道来提高性能。
要在蓝牙堆栈中启用AFH,必须调用以下初始化函数:
void gecko_init_afh();
在主从连接中,两端可以彼此独立地使用AFH。主设备可能是非自适应的,但从设备仍然可能需要是自适应的。该标准允许在阻塞的通道上使用控制传输。出于合规性原因,如果从站检测到阻塞的通道正在使用中,它将仅在该通道上发送单个数据包以防止连接超时。
1.2蓝牙时钟
时钟设置在initMcu_clocks()函数中初始化。 时钟设置包括振荡器(HFXO,LFXO和LFRCO)的初始化,其中包括调谐,时钟初始化(HFCLK,LFCLK,LFA,LFB,LFE)以及振荡器时钟分配等参数。 注意:此功能未启用外设时钟(如GPIO时钟,TIMER时钟)。 初始化外设时必须启用它们。
1.3 DC-DC配置
在具有DC-DC的设备上,配置在initMCU()函数中设置。 SDK中的示例具有DC-DC配置,可与Silicon Labs的蓝牙模块,无线电板和参考设计配合使用,但定制设计可能需要特定的DC-DC设置。 可以在hal-config-board.h中设置这些自定义设置。
1.4 LNA
低噪声放大器(LNA)是一种电子放大器,可放大极低功率信号,而不会显着降低其信号噪声比。 LNA提高了RF灵敏度。
作为前端模块(FEM)的一部分,某些MGM12P模块提供了板载LNA。要在这些模块中使用LNA,需要正确配置和启用FEM。使用前缀BSP_FEM_在hal-config-board.h中配置FEM。
如果电路板支持FEM,则在initBoard()函数内的initFem()中初始化FEM。
1.5定期广播
定期广播使多个侦听设备能够与单个广播设备同步。因此,它是一种多播形式。每个侦听设备在开始接收数据之前需要与广播设备同步。定期广播使用侦听设备上的扫描仪来建立与广播设备的同步。同步后,可以停止扫描仪。
1.6 PTI
PTI(数据包跟踪接口)是Wireless Gecko SoC中的内置模块,用于将传入和传出的无线数据包作为原始数据路由到调试接口。然后可以在Simplicity Studio的网络分析仪中捕获和显示这些数据包。 Network Analyzer具有蓝牙数据包解码器,可用于调试,分析和测量蓝牙网络。
PTI在initApp()函数中的configEnablePti()中初始化。可以使用HAL_PTI_BAUD_RATE定义在hal-config.h中设置波特率,而使用带有BSP_PTI_前缀的定义可以在hal-config-board.h中配置引脚。
从蓝牙2.6.x开始,PTI配置了RAIL提供的功能。
1.7发射功率
蓝牙的发射功率取决于无线电允许的最大功率,软件配置,RF路径增益补偿和自适应跳频(AFH)的使用。
当发射机功率为+10 dBm及以上时,ETSI EN 300 328标准要求使用AFH。
如果适应性要求阻止,则允许的最大功率限制在小于+10 dBm。 ETSI标准要求AFH使用至少15个通道。此要求可防止在以下情况下使用+10 dBm及以上:传统广播,扫描相应连接,以及连接状态下没有足够的通道可用。
1.8白名单
白名单用于过滤设备。目前仅在发现设备时才支持它。连接请求,广播期间来自远程设备的扫描请求以及连接启动不受白名单的限制。白名单大小与最大绑定设备数的配置相匹配。如果使用白名单时更改了绑定设备的最大数量,则需要在新设置生效之前重置设备。配对设备会自动添加到白名单中。或者,可以使用BGAPI命令gecko_cmd_sm_add_to_whitelist()手动添加它们。不支持随机地址解析。使用可解析的随机地址的设备在扫描期间将不可见。由于大多数Android和iOS手机使用可解析的随机地址,因此白名单功能将在设备发现期间有效阻止这些设备。
要在蓝牙堆栈中启用白名单,必须在通用gecko_init函数之后调用以下初始化函数:
void gecko_init_whitelisting();
启用该功能后,可以通过BGAPI命令在运行时启用和禁用该功能
gecko_cmd_le_gap_enable_whitelisting()。
1.9 Wi-Fi共存
Wi-Fi共存(COEX)是一种协议,其中蓝牙和Wi-Fi仲裁哪个协议可以使用无线电进行传输。启用后,它可以提高Wi-Fi和蓝牙的性能。使用带有前缀BSP_COEX_和HAL_COEX_的定义在hal-config-board.h中配置COEX。
要启用COEX,请在gecko_stack_init()之后调用以下函数。
gecko_initCoexHAL(); COEX实现了Wi-Fi IC的GPIO接口。它依赖于EMLIB em_gpio.c和EMDRV gpiointerrupt.c,并且需要将两个文件都包含在项目中。
2. 使用gecko_stack_init()进行蓝牙配置
gecko_stack_init()函数用于配置蓝牙堆栈,包括睡眠模式配置,为连接分配的内存,OTA配置等。 在配置蓝牙堆栈之前,不能使用任何蓝牙堆栈功能。
蓝牙堆栈配置示例:
gecko_stack_init()函数中的配置选项包括:睡眠启用/禁用,蓝牙连接计数,堆大小,睡眠时钟准确度,GATT数据库,OTA配置和PA配置。
一旦调用函数gecko_stack_init(),就必须单独初始化每个使用的堆栈组件。 这种分离允许通过不包括不必要的堆栈组件来优化内存。
以下API可用于分别初始化堆栈组件:
gecko_bgapi_class_dfu_init() | 启用设备固件升级(dfu)API。 |
gecko_bgapi_class_system_init() | 启用本地设备(系统)API。 |
gecko_bgapi_class_le_gap_init() | 启用通用访问配置文件(间隙)API。 |
gecko_bgapi_class_le_connection_init() | 允许管理连接建立,参数设置, 和连接API的断开程序。 |
gecko_bgapi_class_gatt_init() | 能够通过gatt API浏览和管理远程GATT服务器中的属性。 |
gecko_bgapi_class_gatt_server_init() | 允许通过本地GATT数据库gatt_server API浏览和管理属性。 |
gecko_bgapi_class_hardware_init()。 | 支持访问和配置软件定时器。 |
gecko_bgapi_class_flash_init() | 启用可以使用的持久存储命令(flash)API管理闪存中的用户数据。 |
gecko_bgapi_class_test_init() | 启用DTM测试API。 |
gecko_bgapi_class_sm_init() | 启用安全管理器(sm)API。 |
gecko_bgapi_class_util_init()。 | 启用实用功能API,如atoi和itoa |
- |
- +1 赞 0
- 收藏
- 评论 0
本文由小童翻译自Silicon Labs,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】芯科科技EFR32MG21A020F512IM32无线SOC固件烧录方法及步骤
笔者设计了一款Zigbee无线通信模块,采用Silicon Labs(芯科科技)EFR32MG21A020F512IM32无线SOC作为主芯片,包含512KB Flash、64KB RAM和丰富硬件外设,最大发射功率20dBm,支持Zigbee 3.0协议,主要用于智能家居中的网关、智能开关等产品的无线连接。本文介绍EFR32MG21A020F512IM32无线SOC固件烧录方法及步骤。
设计经验 发布时间 : 2020-03-16
【经验】创建ZigBee的无线SOC网关工程操作步骤
Silicon Labs公司的EFR32MG系列是针对智能家居市场应用的多协议无线SOC,单芯片支持蓝牙、ZigBee和Thread等协议,尤其是高性价比的系列2产品MG21、MG22,在ZigBee应用方面受到广大工程师的青睐。对于新手来说,使用SOC模式网关是最简单不过,本文就指导大家创建ZigBee的SOC网关工程操作步骤。
设计经验 发布时间 : 2020-04-09
【经验】无线SoC EFR32BG22 EM4模式的进入与唤醒实现注意事项
Silicon Labs的无线SoC EFR32BG22的EM4模式支持nA级别的待机电流,对于功耗要求极为苛刻的应用非常合适,在这个模式下,只支持特定的GPIO以及reset唤醒。本文主要讲解EM4模式的进入与唤醒实现注意事项。
设计经验 发布时间 : 2021-06-02
【选型】Silicon Labs BG22、xG24、BG27无线SoC比较及信驰达无线模块选型指南
作为安全、智能无线技术领域的前沿品牌,Silicon Labs在最近几年陆续推出了EFR32BG22、EFR32xG24、EFR32BG27等系列无线SoC。RF-star作为物联网行业领先的无线通信模组厂商,基于Silicon Labs的无线SoC推出了RF-BM-BG22x系列串口转蓝牙透传模块、RF-BM-BG24x旗舰系列低功耗蓝牙模块和RF-BM-MG24x旗舰系列并发多协议无线模块。
器件选型 发布时间 : 2023-09-07
SiWx917 Wi-Fi 6蓝牙低功耗无线SoC,助力智能手表功耗和安全性能提升
SiWx917是Silicon Labs推出的一款支持Wi-Fi 6、蓝牙LE 5.4 和低功耗特性的无线SoC(系统级芯片),专为物联网(IoT)和可穿戴设备设计。这款芯片不仅拥有强大的计算能力和先进的无线连接功能,还具有低功耗和小尺寸的优势,为智能手表市场带来了全新的技术突破。
应用方案 发布时间 : 2024-10-23
芯科科技FG25 Sub-GHz无线SoC成功案例推动智慧城市能源转型
SILICON LABS芯科科技正在为改善世界和生活的产品的物联网开发人员创建硬件、软件和解决方案。凭借多样化的无线SoC、所有主要和次要物联网标准和协议方面的专业知识,以及至高的质量和安全标准,公司为正在重塑能源管理、电气化和分销的变革者提供支持。
应用方案 发布时间 : 2024-09-06
【经验】无线SoC EFR32MG21使用ADC后EM2模式功耗较高问题如何解决?
EFR32MG21是Silicon Labs最新一代支持多协议的无线SoC,最近有用户发现EFR32MG21初始化ADC后,进入EM2模式的电流比较高,无法恢复到正常的EM2电流,本文就将分析问题的原因并给出解决方法。
设计经验 发布时间 : 2020-05-31
【经验】多协议无线SoC EFR32MG的ZigBee开发之Token使用教程
EFR32MG系列是Silicon Labs公司针对多协议推出的无线SOC,单芯片可以支持Sub-G、蓝牙、Thread和Zigbee多种协议。Token是用来存储非易失性数据的即掉电后也能保存,本文档指导大家如何在EmberZNet PRO应用程序中自定义Token来存储非易失性数据。
设计经验 发布时间 : 2019-02-13
2.4GHz无线SoC MG21助力开发SONOFF微型Zigbee USB智能适配器支持路由和快充
SILICON LABS近日宣布,其EFR32MG21(MG21)2.4GHz无线SoC获SONOFF公司选用于开发新型“ZBMicro”智能开关。该产品是SONOFF最新的微型Zigbee USB智能适配器,也是智能家居技术领域的开创性产品。从作为USB设备的智能开关到作为Zigbee路由器和支持快速充电的功能,ZBMicro提供了无与伦比的用户体验,提升了现代智能家居的连接性和便利性。
原厂动态 发布时间 : 2024-08-17
【经验】如何使用RAILTEST程序测试无线SoC芯片EFR32MG的蓝牙性能?
使用过Silicon Labs无线SoC芯片EFR32MG的Zigbee功能的工程师多数已经习惯使用Railtest软件对Zigbee性能做测试,而在Railtest软件下也可以对BLE性能做测试。本文将介绍具体的设置步骤与注意事项。
设计经验 发布时间 : 2020-09-26
【经验】无线SoC EFR32系列的timer配置及注意点介绍
Silicon Labs的EFR32系列无线SoC的timer在协议的应用中起非常重要的作用,应用于协议中的任务切换、功耗模式切换、定时发送等,本文主要介绍EFR32的定时器相关的配置及注意要点。
设计经验 发布时间 : 2020-04-14
【经验】EFR32FG23无线SoC使用I2C读写MSA311传感器寄存器的方法
本文以 Silicon Labs 的 EFR32FG23 无线SoC芯片的 rail_soc_simple_trx 工程为例,介绍如何使用EFR32FG23 芯片 I²C外设来读写敏芯微 MSA311三轴加速度传感器寄存器的方法。
设计经验 发布时间 : 2023-06-29
【经验】如何使用Simplicity Commander对无线SoC EFR32系列进行恢复
各位在使用Silicon Labs的无线SoC EFR32系列芯片时,由于各种配置和操作不当可能导致芯片无法识别和烧录,在找到原因之前我们需要对芯片进行恢复,Silicon Labs提供的强大烧录软件 commander 提供了这些功能。那么什么情况下我们需要使用 commander recover 功能,以及如何使用呢?本文将详细介绍。
设计经验 发布时间 : 2020-04-27
芯科科技SiWx917无线SoC提供业界领先的能效,荣获CES 2024创新奖之嵌入式技术奖项
2024年美国国际消费类电子产品展(CES 2024)正在热烈进行中,在开展首日芯科科技即迎来好消息,本次我们以新品SiWx917无线SoC参加CES创新奖的评选,并一举获得今年度CES创新奖之嵌入式技术奖的殊荣。
原厂动态 发布时间 : 2024-01-15
电子商城
品牌:SILICON LABS
品类:Mighty Gecko Multi-Protocol Wireless SoC
价格:¥27.0929
现货: 90,767
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥15.1445
现货: 14,989
品牌:SILICON LABS
品类:Gecko Multi-Protocol Wireless SoC
价格:¥44.9692
现货: 14,980
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
提供是德(Keysight),罗德(R&S)测试测量仪器租赁服务,包括网络分析仪、无线通讯综测仪、信号发生器、频谱分析仪、信号分析仪、电源等仪器租赁服务;租赁费用按月计算,租赁价格按仪器配置而定。
提交需求>
配备KEYSIGHT网络分析仪,可测量无线充电系统发射机/接收机线圈的阻抗,电感L、电阻R、电感C以及品质因数Q,仿真不同充电负载阻抗下的无线充电传输效率。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
登录 | 立即注册
提交评论