_SILICON_LABS_32B_SERIES_2 (EFR32MG21)系列芯片可以设置电容值的地方有3处。

这里只说高速晶振的,低速晶振类似

#define USERDATA_TOKENS 0x1000

第1处( A ):
#define MFG_XO_TUNE_LOCATION (USERDATA_TOKENS | 0x070) // 2 bytes

第2处( B ):
#define MFG_CTUNE_LOCATION (USERDATA_TOKENS | 0x100) // 2 bytes

第3处( C ):.hwconf文件

生效顺序:A > B > C
所以如果同时设置了A、B、C三处,生效的是A。

代码逻辑:

#if defined(BSP_CLK_HFXO_CTUNE) && (BSP_CLK_HFXO_CTUNE >= 0)#if defined(_SILICON_LABS_32B_SERIES_2)hfxoInit.ctuneXiAna = BSP_CLK_HFXO_CTUNE;hfxoInit.ctuneXoAna = BSP_CLK_HFXO_CTUNE;#elsehfxoInit.ctuneSteadyState = BSP_CLK_HFXO_CTUNE;#endif // series 2#endif // BSP_CLK_HFXO_CTUNE#if defined(_SILICON_LABS_32B_SERIES_2)uint8_t customSteadyCtuneXi;uint8_t customSteadyCtuneXo;uint16_t customSteadyCtuneToken;// check factory calibrated ctune valueif (halInternalGetModuleCtuneXiXo(&customSteadyCtuneXi, &customSteadyCtuneXo)) {hfxoInit.ctuneXiAna = customSteadyCtuneXi;hfxoInit.ctuneXoAna = customSteadyCtuneXo;}// otherwise check for ctune in mfg tokenelse if (halInternalGetCtuneToken(&customSteadyCtuneToken, &customSteadyCtuneToken)) {hfxoInit.ctuneXiAna = (uint8_t)customSteadyCtuneToken;hfxoInit.ctuneXoAna = (uint8_t)customSteadyCtuneToken;}#elseuint16_t customSteadyCtuneModule;uint16_t customSteadyCtuneToken;// check factory calibrated ctune valueif (halInternalGetModuleCtune(&customSteadyCtuneModule)) {hfxoInit.ctuneSteadyState = customSteadyCtuneModule;}// otherwise check for ctune in mfg tokenelse if (halInternalGetCtuneToken(&customSteadyCtuneToken, &customSteadyCtuneToken)) {hfxoInit.ctuneSteadyState = customSteadyCtuneToken;} else {// satisfy MISRA 15.7}#endif // series 2CMU_HFXOInit(&hfxoInit);

EFR32 晶振电容设置相关推荐

  1. STM32F103VBT6 使用16M晶振和8M晶振 RCC设置有何不同?

    STM32F103VBT6 使用16M晶振和8M晶振 RCC设置有何不同? 原来使用8M的晶振,设置如下,通讯发送数据正常 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, ...

  2. stm32启用内部晶振(stm32设置外部晶振)

    STM32中的晶振电路有什么作用 stm32  有两个可接入的外部晶振,自己内部也有低俗的晶振.举个例子,手册也有说明低速主要给RTC使用了,高速是给一些外设及内核提供时钟元,内部的主要是给看门狗用或 ...

  3. 让Atmega8A-PU 支持外部晶振的熔丝设置

    这段时间搞了个arduino玩,感觉买的板子不过瘾,照着网上的教程折腾Arduino最小系统,过程非常曲折,现将部分内容总结记录下来,以备日后查阅. 参考文章:Arduino 1.0--让最小系统更简 ...

  4. STM32的晶振,时钟稳定性要重视

    最近看了不少网上网友的应用案例,在STM32晶振问题上不少都栽了跟头.我自己也碰见过一次.就是电容值搞错了. ourdev有网友说:他的设备隔几天系统就出问题,系统时钟变慢. ------------ ...

  5. Multisim 晶振设置频率详解

    我们在用Multisim的时候,提供给我们用的晶振只有固定的几种频率,是不能随意修改的.像在单片机中要用12Mhz的晶振的时候怎么办呢.先双击晶振,打开编辑. Multisim里面的真实晶体没有12M ...

  6. 晶振噪声及杂散_晶振如何匹配电容看了就知道

    描述 一.什么是晶振 了解晶振之前,我们先来看一下我们最为熟悉的51单片机,我们都知道51单片机最小系统包括供电电源.复位电路以及晶振系统. 这是CPU能跑起来的最基本条件.由此我们可以看到晶振在电路 ...

  7. 晶体(crystal、无源晶振)两端电容取值计算

    数字电路中往往会需要一个时钟源,常用的比如晶体振荡器(oscillator.有源晶振).晶体(crystal.无源晶振)等,一般晶体用的更多些.对于晶体来说,一般电路设计时会在晶体两端各接一个电容到地 ...

  8. 晶振两端的谐振电容有特殊要求吗_干货 | 晶振电路设计诀窍

    在单片机中晶振是普遍存在的.晶振为什么如此必要,原因在于单片机能否正常工作的必要条件之一就是时钟电路.晶振好比单片机的心脏,如果没有心脏起跳,单片机无法工作.当然,电子电路设计并非速度越快越好,实际上 ...

  9. 晶振两端的谐振电容有特殊要求吗_“吃瓜群众”也能秒懂的晶振电路原理

    原标题:"吃瓜群众"也能秒懂的晶振电路原理 晶振,全称是石英晶体振荡器,是一种高精度和高稳定度的振荡器.通过一定的外接电路来,可以生成频率和峰值稳定的正弦波. 而单片机在运行的时候 ...

  10. 为什么 战舰stm32f103开发板32.768k晶振没有接电容

    主要是方便起振,ST的RTC晶振特难振,不焊接这两个电容,起振率高一点  转自: http://www.openedv.com/forum.php?mod=viewthread&tid=737 ...

最新文章

  1. ACdream1032(树形DP)
  2. codeforces Gargari and Permutations(DAG+BFS)
  3. VMware vSphere 虚拟化简介
  4. Spring如何解决循环依赖问题
  5. ESP8266在线视频网址
  6. Kubernetes学习总结(14)—— Kubernetes 实用命令总结
  7. stylelint 规则
  8. @service注解_SpringBoot最最最常用的注解梳理
  9. Linux学习笔记018---Centos7 下安装JDK1.8
  10. 老程序员也搞不定的 4 个巨坑!
  11. qt调用import sys库_QTCreator调用动态库实例
  12. 35岁不是职场的终点,而是人生的起点
  13. python监控钉钉群消息_使用python对mysql主从进行监控,并调用钉钉发送报警信息...
  14. 神经网络的BP算法推导详解
  15. linux安装vim不成功,centos安装vim失败解决
  16. abaqus中python怎么建立参考点_怎么在abaqus中选定中心为参考点
  17. 数据挖掘实战 —— 泰坦尼克号
  18. java 电子签章 开源_java操作pdf制作电子签章 - CSDN博客
  19. 实现DevOps的三步工作法
  20. python 文件读取

热门文章

  1. ISAPI概述(转)
  2. JavaWeb毕业生就业管理系统项目实战教程
  3. 博客Typecho插件,Typecho采集发布插件大全
  4. [C++] Kmeans算法实现
  5. 进程同步问题(二)——信号量机制
  6. c 语言读取字符串长度,C++获取字符串长度的几个函数方式
  7. NOI2021颓废记
  8. Hi3519使用·记录
  9. 计算机组装系统安装系统,刚组装电脑怎么装系统?
  10. minimax算法_使用Minimax算法玩策略游戏