【经验】芯科多协议SoC EFR32MG21使用外部高频晶体时CTUNE值的存储与调用过程
我们在使用SILICON LABS多协议SoC EFR32MG21芯片开发无线产品时,需要校准外部高频晶体的CTUNE值以保证射频的频偏最小,那么CTUNE值校准后要保存在哪里才能生效,本文我们就通过程序看一下。
CTUNE值的保存与所使用的协议栈也是有一定的关系的,要看我们使用的是蓝牙协议栈?还是ZigBee的协议栈。
在蓝牙协议栈与ZigBee的协议栈中都有关于CTUNE的宏定义,蓝牙协议栈中是如下定义:
/** Crystal tuning value override */
#define SL_BT_NVM_KEY_CTUNE 0x32
ZigBee协议栈中的定义如下:
#define USERDATA_TOKENS 0x1000
#define MFG_CTUNE_LOCATION (USERDATA_TOKENS | 0x100) //
同时,在芯片有DEVINFO区也有CTUNE的校准值:
另外,在无线程序的conifg文件中也有关于CTUNE定义:
#define SL_DEVICE_INIT_HFXO_CTUNE 129
这里我们会注意到蓝牙协议栈的CTUNE数据的存储区是在NVM区,这个是在芯片的main flash区的最后5个扇区。而ZigBee协议栈中定义的CTUNE数据的存储区是在user data区。这两个值用户可以在程序的运行过程中进行修改。在项目的config文件中是一个CTUNE值的宏定义,这个是在程序编译时预设的值。在DEVINFO中是芯片出厂时预设的CTUNE校准值。那么在程序的运行过程中使用的是哪一个呢?
我们看一下sl_device_init_hfxo_s2.c程序中对高频晶体的初始化部分代码:
// Fetch CTUNE value from USERDATA page as a manufacturing token
#define MFG_CTUNE_ADDR 0x0FE00100UL
#define MFG_CTUNE_VAL (*((uint16_t *) (MFG_CTUNE_ADDR)))
sl_status_t sl_device_init_hfxo(void)
{int CTUNE = -1;
#if defined(_DEVINFO_MODXOCAL_HFXOCTUNEXIANA_MASK)
// Use HFXO tuning value from DEVINFO if available (PCB modules)
if ((DEVINFO->MODULEINFO & _DEVINFO_MODULEINFO_HFXOCALVAL_MASK) == 0) {
ctune = DEVINFO->MODXOCAL & _DEVINFO_MODXOCAL_HFXOCTUNEXIANA_MASK;
}
#endif
// Use HFXO tuning value from MFG token in UD page if not already set
if ((ctune == -1) && (MFG_CTUNE_VAL != 0xFFFF)) {
ctune = MFG_CTUNE_VAL;
}
// Use HFXO tuning value from configuration header as fallback
if (ctune == -1) {
ctune = SL_DEVICE_INIT_HFXO_CTUNE;
}…
从这段代码中可以看到CTUNE的值通过三个途径获得:
1、通过定义DEVINFO_MODULEINFO_HFXOCALVAL_MASK从DEVINFO区域获取CTUNE值,这个获取的是芯片出厂时的校准值。但由于我们实际使用的晶体的参数的不同,使用出厂预设值不一定会达到最好的效果,所以通常不会使用这个预设值。
2、如果user data区的MFG_CTUNE_ADDR地址上的数据不是0xFFFF,则会使用这个地址上的数据赋值给CTUNE。这个位置的数据客户可以通过MSC部分代码或ZigBee的TOKEN去修改,修改后再次初始化就会生效。
3、通过程序中的宏定义:SL_DEVICE_INIT_HFXO_CTUNE获得CTUNE的值。
通过以上的分析可以看到在默认的程序中并没有使用到蓝牙协议栈中的SL_BT_NVM_KEY_CTUNE这个校准数据,如果要使用这个数据需要在HFXO的初始化中加入读取键值并赋值给CTUNE的代码。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由John提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】SiliconLabs EFR32BG22芯片如何实现BLE连接并进行数据收发
不少首次接触BLE的开发者不太清楚如何实现BLE数据的交互,本文以Silicon Labs的EFR32BG22芯片平台为例,指导如何通过建立BLE连接并进行数据交互。硬件:SLTB010A开发板软件。
【经验】使用Simplicity Commander生成EFR32FG23芯片升级固件所需gbl文件的方法
当我们使用串口来升级EFR32FG23芯片的固件时,需要用到gbl格式的文件,本文以EFR32FG23的rail_soc_simple_trx工程为例,介绍使用Simplicity Commander工具将EFR32FG23的s37文件生成gbl文件的方法。
【经验】EFR32MG21系列芯片zigbee射频性能测试
本文介绍使用CMW100测试Silicon Labs EFR32MG21系列芯片zigbee射频性能,从测试硬件、软件准备,测试环境搭建,测试zigbee射频TX和RX射频指标步骤进行详细描述,并描述了测试中的遇到的问题和解决方法。
SILICON LABS ZIGBEE 无线 Gecko SoC选型表
EFR32MG无线 Gecko SoC 是在 IoT 设备上实现节能多协议连网的理想之选。芯片解决方案结合了 76.8MHz ARM和高性能 2.4GHz 无线电,旨在为 IoT连接应用提供行业领先的节无线 SoC。
产品型号
|
品类
|
Protocol Stack
|
Frequency Band @ Max TX Power(GHz@dBm)
|
Flash(kB)
|
RAM(kB)
|
GPIO(个数)
|
Operating Temperature(℃)
|
Storage Temperature(℃)
|
Pin Count
|
AVDD Supply Voltage(V)
|
EFR32MG12P433F1024GL125-C
|
Gecko Multi-Protocol Wireless SoC
|
Bluetooth LE Zigbee Thread Proprietary, Wi-SUN
|
2.4GHz @ 19dBm, Sub-GHz @ 20dBm
|
1024kB
|
256kB
|
65
|
-40℃~85℃
|
-50℃~150℃
|
BGA125
|
1.8V~3.8V
|
选型表 - SILICON LABS 立即选型
芯科科技工业物联网蓝牙SoC芯片BG24提供-105.7dBm高灵敏度接收与多协议支持,为复杂环境带来高效通信解决方案
在工业物联网的应用中,稳定的无线通信是连接设备和优化流程的核心。然而,复杂的工业环境通常伴随着信号干扰强、通信距离远等挑战,对无线芯片的性能提出了更高的要求。Silicon Labs推出的BG24蓝牙SoC芯片,以卓越的性能和灵活的多协议支持,为工业物联网提供了一套高效稳定的通信解决方案。BG24芯片具备-105.7 dBm的高接收灵敏度,能够在信号微弱或干扰强的工业场景中保持可靠的通信能力。这使
【视频】Silicon labs MG2X系列多协议SoC多核单芯片解决方案:超低功耗、高性能、强大安全性物联网开发最佳解决方案
SILICON LABS - SOC,多协议SOC,EFR32MG26B520F3200IM48-A,EFR32MG24A010F1536IM40-B,EFR32MG24A010F1024IM40-B,EFR32MG26B610F3200IM48-B,EFR32MG24A010F768IM40-B,EFR32MG24A020F1024IM40-B,EFR32MG26B510F3200IM48-A,智能开关,智能家居,智能面板,智能照明
【经验】EFR32MG21多协议无线SoC的SWO PA03如何复用为普通GPIO口呢?
EFR32MG21 系列是 Silicon Labs 推出的高性价比的多协议无线SoC,用户在进行产品开发时会遇到 GPIO 不够用的情况,此时我们可以通过复用 JTAG 管脚中的 SWO log 输出脚,作为普通 GPIO 使用。本文介绍把 PA03 配置成普通按键的方法。
【经验】Matter入门指导7:基于GSDK创建OpenThread-RCP工程
本文使用Silicon Labs Matter开发套件中的EFR32MG21 USB STICK作为OT-RCP,主要介绍如何在Simplicity Studio v5软件创建基于GSDK的OpenThread-RCP工程的方法。
基于芯科科技MG24多协议SoC开发板演示Matter over Thread灯控制
因应多样物联网应用的连接需求,无线多协议设计已成为行业的显学,而Silicon Labs凭借多年来在无线网状网络、动态多协议技术支持方面的丰富经验,可以为物联网开发人员提供最可靠、稳定的多协议解决方案。本文使用MG24多协议SoC开发板演示Matter over Thread灯控制。
【经验】芯科EFR32系列通过命令行读取芯片NVM3区域内容的方法
在开发芯科EFR32系列芯片有时候出现问题或者需要对比要读取NVM3区域的内容,不知道如何抓取数据,芯科的图形软件里面也没有这个功能,此时就需要通过命令行来进行读取数据,本文就是介绍芯科EFR32系列通过命令行读取芯片NVM3区域内容。
【经验】芯科多协议无线SoC EFR32MG21在使用PA端口时的注意事项
最近有用户在使用PA口时发现会出现一些异常,而且主要集中在PA01/PA02/PA03/PA04几个低端口,它们在使用时会出现一些异常的波形或无法控制。本文世强来介绍芯科多协议无线SoC EFR32MG21在使用PA端口时的注意事项。
芯科科技MG24系列多协议SoC助力Centero工业网络,提升工业无线连接设备性能和安全性
SILICON LABS的合作伙伴Centero运用MG24多协议无线SoC提供了易于集成、兼容的端到端无线IEEE 802.15.4和802.11解决方案,从而满足严格的行业要求。其保证的延迟是安全、关键应用程序所必需的。Centero的解决方案还提供强大的数据存储和使用信息,以及预测性维护(predictive maintenance),从而提高运营效率和工厂安全性。
【经验】多协议SoC EFR32MG21 Zigbee休眠节点不进入EM2模式的处理方法
用户在使用多协议SoC EFR32MG21/22的Zigbee休眠节点功能时经常会遇到程序正常运行后达不到预期的低功耗效果,工作电流还有2到3个毫安,无法降到几个微安,下面介绍正确处理休眠节点程序的方法。
【经验】多协议无线SoC Series2 EFR32MG21 如何产生PWM
Silicon Labs 的EFR32MG21是高性能多协议无线SOC Series2,采用ARM Cortex-M33 内核,可在80 MHz 主频运行,能够供卓越的运算处理能力,同时其专用安全内核支持快速加密、安全启动加载以及调试访问控制。PWM在电子产品中应用极为广泛,不管是电机控制还是呼吸灯,使用PWM会很方便的对其进行控制,本位将以EFR32MG21的TIMER0为例介绍如何生成PWM波
【IC】芯科科技MG26多协议SoC功能全面提升,迎合Matter over Thread开发代码增长需求
SILICON LABS近期针对Matter开发的扩展需求发布了MG26多协议SoC新品,通过提升了两倍的闪存和RAM容量以及GPIO,同时添加了人工智能和机器学习(AI/ML)硬件加速器来帮助开发人员满足未来更严苛的Matter物联网应用需求,包括增加对新的设备类型和安全功能增强等的支持。
电子商城
现货市场
服务
Ignion可支持多协议、宽频段的物联网天线方案设计,协议:Wi-Fi、Bluetooth、UWB、Lora、Zigbee、2G、3G、4G、5G、CBRS、GNSS、GSM、LTE-M、NB-IoT等,频段范围:400MHz~10600MHz。
最小起订量: 2500 提交需求>
提供蓝牙BLE芯片协议、蓝牙模块、蓝牙成品测试认证服务;测试内容分Host主机层,Controller控制器层,Profile应用层测试。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
登录 | 立即注册
提交评论