【经验】芯科多协议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开发板软件。
设计经验 发布时间 : 2023-03-08
【经验】使用Simplicity Commander生成EFR32FG23芯片升级固件所需gbl文件的方法
当我们使用串口来升级EFR32FG23芯片的固件时,需要用到gbl格式的文件,本文以EFR32FG23的rail_soc_simple_trx工程为例,介绍使用Simplicity Commander工具将EFR32FG23的s37文件生成gbl文件的方法。
设计经验 发布时间 : 2022-09-13
【经验】EFR32MG21系列芯片zigbee射频性能测试
本文介绍使用CMW100测试Silicon Labs EFR32MG21系列芯片zigbee射频性能,从测试硬件、软件准备,测试环境搭建,测试zigbee射频TX和RX射频指标步骤进行详细描述,并描述了测试中的遇到的问题和解决方法。
设计经验 发布时间 : 2020-09-30
芯科科技MG24系列多协议SoC助力Centero工业网络,提升工业无线连接设备性能和安全性
SILICON LABS的合作伙伴Centero运用MG24多协议无线SoC提供了易于集成、兼容的端到端无线IEEE 802.15.4和802.11解决方案,从而满足严格的行业要求。其保证的延迟是安全、关键应用程序所必需的。Centero的解决方案还提供强大的数据存储和使用信息,以及预测性维护(predictive maintenance),从而提高运营效率和工厂安全性。
原厂动态 发布时间 : 2024-05-17
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
基于芯科科技MG24多协议SoC开发板演示Matter over Thread灯控制
因应多样物联网应用的连接需求,无线多协议设计已成为行业的显学,而Silicon Labs凭借多年来在无线网状网络、动态多协议技术支持方面的丰富经验,可以为物联网开发人员提供最可靠、稳定的多协议解决方案。本文使用MG24多协议SoC开发板演示Matter over Thread灯控制。
设计经验 发布时间 : 2024-07-18
【经验】Matter入门指导7:基于GSDK创建OpenThread-RCP工程
本文使用Silicon Labs Matter开发套件中的EFR32MG21 USB STICK作为OT-RCP,主要介绍如何在Simplicity Studio v5软件创建基于GSDK的OpenThread-RCP工程的方法。
设计经验 发布时间 : 2023-05-26
【经验】芯科EFR32系列通过命令行读取芯片NVM3区域内容的方法
在开发芯科EFR32系列芯片有时候出现问题或者需要对比要读取NVM3区域的内容,不知道如何抓取数据,芯科的图形软件里面也没有这个功能,此时就需要通过命令行来进行读取数据,本文就是介绍芯科EFR32系列通过命令行读取芯片NVM3区域内容。
设计经验 发布时间 : 2023-02-03
【IC】芯科科技MG26多协议SoC功能全面提升,迎合Matter over Thread开发代码增长需求
SILICON LABS近期针对Matter开发的扩展需求发布了MG26多协议SoC新品,通过提升了两倍的闪存和RAM容量以及GPIO,同时添加了人工智能和机器学习(AI/ML)硬件加速器来帮助开发人员满足未来更严苛的Matter物联网应用需求,包括增加对新的设备类型和安全功能增强等的支持。
产品 发布时间 : 2024-04-25
【经验】多协议SoC EFR32MG21 Zigbee休眠节点不进入EM2模式的处理方法
用户在使用多协议SoC EFR32MG21/22的Zigbee休眠节点功能时经常会遇到程序正常运行后达不到预期的低功耗效果,工作电流还有2到3个毫安,无法降到几个微安,下面介绍正确处理休眠节点程序的方法。
设计经验 发布时间 : 2022-12-30
【经验】基于芯科科技多协议SOC EFR32MG21的ZigBee设备重复入网、离网功能的实现
在使用芯科科技多协议SOC EFR32MG21做ZigBee设备时,为了测试ZigBee网络的性能,我们有时需要让设备持续的入网、离网,看网络的稳定性,与可靠性。
设计经验 发布时间 : 2022-09-28
芯科科技提供行业领先的集成度较高、功能完善且技术资源丰富的Zigbee多协议解决方案
芯科科技提供行业领先的Zigbee多协议解决方案,是OEM在将Zigbee网络设计到其产品中时的首选供应商。我们针对802.15.4标准所打造的Zigbee开发平台是市面上集成度较高、功能完善且技术资源丰富的理想解决方案,主要的MG2x多协议SoC和模块系列产品基于 Arm® Cortex®处理器内核和 2.4 GHz收发器,结合可靠并可扩展的先进软件,并由行业出色的开发工具提供全方位的设计支持。
产品 发布时间 : 2023-12-29
【经验】Zigbee SDK 7.x以上版本的Z3Gateway程序编译出错的解决方法
在设计Zigbee协调器时需编译多协议SoC EFR32MG21 NCP配合工作的Host端程序,但在芯科EmberZnet7.x以上SDK版本中,默认产生Z3GateWay程序在编译时会出现错误,无法编译成功。
设计经验 发布时间 : 2022-12-29
【经验】使用Commander工具合成EFR32FG23芯片的BootLoader和Application固件的方法
本文主要介绍使用Simplicity Commander工具合成Silicon Lab的EFR32FG23的BootLoader和Application固件的方法,方便一次性就能把这两个固件一起烧录到EFR32FG23芯片。
设计经验 发布时间 : 2022-09-14
芯科科技超低功耗多协议SoC MG24助力INGY和Wirepas提升智能照明控制
SILICON LABS提供超低功耗且具备大容量存储和低延迟无线连接等行业领先性能的MG24多协议SoC,为INGY和Wirepas于智能照明控制系统的合作带来了极大助益,满足了新型照明系统对于尺寸限制、形状要求、高温弹性和高性能无线功能的各项要求。
应用方案 发布时间 : 2023-12-15
电子商城
现货市场
服务
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应用层测试。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
登录 | 立即注册
提交评论