一站式晶振解决方案提供商为数字电路的“心脏”保驾护航

深圳市晶光华电子有限公司

聚焦晶光华,实时掌握晶振技术动态
企业动态
如何校准 MCU 内部振荡器?
来源: 时间:2022-05-12

如何校准 MCU 内部振荡器?   

MCU 中的内部振荡器微调

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

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

电容替代网络电容替代网络

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

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

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

内部时钟源微调寄存器

内部时钟源微调寄存器,广泛用于 s08 系列,图片来自恩智浦

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

简单的校准程序

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

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

迭代直到无法改进

测量生成信号的周期

将 Trim 寄存器修改为 1ms

重新编译并运行

迭代的原因是,由于微调模块中电容器值的不确定性,你将为微调寄存器估计的更改将因某些未知因素而关闭,迭代处理了这种不规则性。

自动化这个过程

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

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

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

设备程序员

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

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

深圳市晶光华电子有限公司 26年专注提供一站式晶振产品解决方案,产品主要有SMD石英晶振、  车规晶振  SMD振荡器等。晶光华始终坚持以品质为基石,品质符合国际IEC和美国ANSI标准。为了满足客户的高标准需求,我司积极整合供应链,真正服务每一位品质客户。




















本文标签: 如何校准 MCU 内部振荡器 晶光华晶振 振荡器 晶体谐振器 车规级晶振 石英晶振

相关资讯