0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

低端微控制器单元中RC振荡器的校准机制

科技观察员 来源:allaboutcircuits 作者:爱德华多·科尔佩 2022-04-26 16:17 次阅读

本文介绍了低端微控制器单元中可用的内部RC振荡器校准机制。介绍了自动校准的基本校准程序和注意事项。

MCU中的内部振荡器微调

由于它们的缺点,MCU中的内部振荡器具有微调其频率的机制,与乐器不同。这通常是通过一个微型电容替代盒调整振荡器的RC电路中的电容来完成的。

电容替换盒包含一系列开关和电容器,可在一定精度范围内产生任何电容。例如,考虑以下电容器网络,这些电容器可以并联组合以产生从0nF到255nF的任何整数电容。

pYYBAGJnqouAe4PDAABWuYfViCk344.jpg

开关有条件地包括2次方的电容器。例如,仅闭合右侧的三个开关会产生7nF。是的,它是二进制的!

现在,由于RC振荡器通过对电容器进行充电和放电来工作,因此这些开关需要是模拟的。出于这个原因,这些微型电容替代盒使用一种特殊类型的开关,称为传输门或模拟开关。这些很像继电器的半导体替代品。它们控制数字信号并切换模拟信号。有很多商用传输门IC,如CD4016、CD4066和CD4053。

有关传输门的更多信息,请阅读RobertKeim的文章TheCMOSTransmissionGate。

程序员的角度来看,内部振荡器的频率调整归结为修改内存映射寄存器的值。该寄存器中的位控制电容替换模块中的开关。

poYBAGJnqoyALXKGAAAcDjTF04Q083.jpg

内部时钟源微调寄存器,广泛用于s08系列。

对于S08系列的某些成员,该寄存器称为ICSTRM(内部时钟源微调)。这是一个8位寄存器,二进制复位值为10000000。这8位控制电容替换模块,进而影响振荡器的周期:此寄存器的值越高,电容和周期越高。当然,这对频率有相互影响。

简单的校准程序

这是您可以在MCU上执行的一个很好的修整程序:

运行一个生成1kHz方波的应用程序。

迭代直到无法改进:

测量生成信号的周期。

将Trim寄存器修改为1ms。

重新编译并运行。

迭代的原因是,由于微调模块中电容器值的不确定性(例如一组高度略有不同的楼梯),您将为微调寄存器估计的更改将因某些未知因素而关闭。迭代处理了这种不规则性。

自动化这个过程

您可能希望为您的应用程序自动执行此过程,以便您的程序在上电时校准振荡器,作为引导序列的一部分。

为此,您将需要一个可靠的时钟参考来与您的MCU生成的固定频率信号进行比较。尽管这似乎毫无意义,因为您首先要避免使用外部时钟信号,但该外部信号不必满足您的时钟要求;它必须是准确和稳定的。

自动微调过程的另一个重要细节是算法:上述过程适用于拥有示波器和漂亮计算器的工程师。然而,许多校准函数使用逐次逼近法。这与逐次逼近型ADC使用的算法相同,其本质是二分搜索算法。毫不奇怪,对于一个N位修整寄存器,这需要N次迭代。

要了解ADC中的逐次逼近,您可能需要阅读ElliottSmith撰写的文章了解逐次逼近寄存器ADC。

设备程序员

除了对ROM存储器和微控制器进行编程之外,还有一些设备编程器提供有用的附加功能。有些甚至在您的微控制器上执行此微调程序,以便您方便地对一批设备进行编程,微调每个单元上的内部振荡器。

如果您想知道在您即将切断设备电源时将正确的修整值写入RAM寄存器有什么好处,那么您就大功告成了!

MCU制造商通常在非易失性存储器中提供一个特殊位置来存储设备的微调值。这不会自动工作:您的代码仍然必须在启动时从该位置获取值并将值写入修整寄存器。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6809

    浏览量

    147636
  • 振荡器
    +关注

    关注

    28

    文章

    3518

    浏览量

    137638
  • rc振荡器
    +关注

    关注

    3

    文章

    43

    浏览量

    9452
收藏 人收藏

    评论

    相关推荐

    微控制器中的内部RC振荡器

      一些微控制器单元通常带有一个内部 RC 振荡器,运行时可以不用外部陶瓷或石英晶体振荡器。但是,你需要微调此
    发表于 08-03 16:11 1248次阅读
    <b class='flag-5'>微控制器</b>中的内部<b class='flag-5'>RC</b><b class='flag-5'>振荡器</b>

    详解RC振荡器

    组成串、并联选频网络,R6 和R11 是串联负反馈电阻,C7 是输出电压反馈电容,R3、R4 和R7、R8 分别是放大管VT1、VT2 的偏置电阻。图6-28 典型RC桥式振荡器提示在实际应用,R6
    发表于 06-04 21:18

    低成本微控制器单元中经常使用的内部RC振荡器的优点和需求

    MCU的内部结构本文将会介绍许多低成本微控制器单元(MCU)中经常使用的内部RC振荡器的优点和需求,包括为获得最佳精度而进行的校准过程。低成
    发表于 11-04 08:38

    如何校准内部RC振荡器HSI和MSI

    本应用笔记适用于STM32L1xx产品线,介绍了如何校准内部RC振荡器HSI和MSI
    发表于 12-02 06:22

    STM32F030如何设置微控制器以使用外部振荡器

    我试图了解如何设置微控制器(在本例为 STM32F030)以使用外部振荡器。我正在使用闪烁的 LED 来测试代码是否正在运行。为了设置 HSE,我做了以下操作:RCC下高速时钟选用晶振/陶瓷谐振
    发表于 01-31 08:49

    用于ST微控制器振荡器设计指南

    振荡器的基本知识,并提供了一些指南以获得良好的振荡器设计。它还展示了如何确定不同的外部组件,并为振荡器的良好PCB提供指南。本文件最后包含了一个简单的指南,用于选择合适的晶体和外部它列出了STM32的一些推荐晶体(HSE和LSE
    发表于 10-10 06:39

    微控制器时钟―选择晶振谐振槽路、RC振荡器还是硅振荡器

    摘要:晶振、陶瓷谐振槽路、RC (电阻、电容)振荡器以及硅振荡器是适用于微控制器(µC)的四种时钟源。针对具体应用优化时钟源设计依赖于以下因素:成本、精度和环境参数。
    发表于 04-23 14:25 942次阅读
    <b class='flag-5'>微控制器</b>时钟―选择晶振谐振槽路、<b class='flag-5'>RC</b><b class='flag-5'>振荡器</b>还是硅<b class='flag-5'>振荡器</b>?

    常用的振荡器类型有哪些,微控制器应用中如何选择

    微控制器的时钟源可以分为两类:基于机械谐振器件的时钟源,如晶振、陶瓷谐振槽路;基于相移电路的时钟源,如:RC (电阻、电容)振荡器。硅振荡器通常是完全集成的
    的头像 发表于 04-19 18:41 9087次阅读
    常用的<b class='flag-5'>振荡器</b>类型有哪些,<b class='flag-5'>微控制器</b>应用中如何选择

    ipconfig不是内部或外部_使用MCU(微控制器单元)内部振荡器的优点和缺点

    MCU的内部结构本文将会介绍许多低成本微控制器单元(MCU)中经常使用的内部RC振荡器的优点和需求,包括为获得最佳精度而进行的校准过程。低成
    发表于 10-28 20:21 8次下载
    ipconfig不是内部或外部_使用MCU(<b class='flag-5'>微控制器</b><b class='flag-5'>单元</b>)内部<b class='flag-5'>振荡器</b>的优点和缺点

    如何校准STM32U5 系列上的内部RC振荡器

    如何校准STM32U5 系列上的内部RC振荡器
    发表于 11-21 08:11 0次下载
    如何<b class='flag-5'>校准</b>STM32U5 系列上的内部<b class='flag-5'>RC</b><b class='flag-5'>振荡器</b>

    AN2868_STM32F10xx内部RC振荡器校准

    AN2868_STM32F10xx内部RC振荡器校准
    发表于 11-21 08:11 1次下载
    AN2868_STM32F10xx内部<b class='flag-5'>RC</b><b class='flag-5'>振荡器</b><b class='flag-5'>校准</b>

    AN4736_如何校准STM32L4xx内部RC振荡器

    AN4736_如何校准STM32L4xx内部RC振荡器
    发表于 11-21 08:11 0次下载
    AN4736_如何<b class='flag-5'>校准</b>STM32L4xx内部<b class='flag-5'>RC</b><b class='flag-5'>振荡器</b>

    AN4067_校准STM32F0的内部RC振荡器

    AN4067_校准STM32F0的内部RC振荡器
    发表于 11-21 08:11 0次下载
    AN4067_<b class='flag-5'>校准</b>STM32F0的内部<b class='flag-5'>RC</b><b class='flag-5'>振荡器</b>

    AN3300 如何校准STM32L1xx的内部RC振荡器

    AN3300 如何校准STM32L1xx的内部RC振荡器
    发表于 11-24 08:34 1次下载
    AN3300 如何<b class='flag-5'>校准</b>STM32L1xx的内部<b class='flag-5'>RC</b><b class='flag-5'>振荡器</b>

    应用笔记|如何在 STM32U5 系列上校准内部 RC 振荡器

    目录预览 0.前言 1.STM32U5 系统时钟 2.内部 RC 振荡器校准 3.内部 LSI 振荡器测量 4.X-CUBE-RC-CALI
    的头像 发表于 12-12 21:35 1433次阅读