MCU 中的内部振荡器调整

时间:2023-11-08
 由于其缺点,MCU 中的内部振荡器配备了微调其频率的机制,与乐器不同。这通常是通过微型电容替换盒调整振荡器 RC 电路中的电容来完成的。 
 电容替换盒包含一系列开关电容器,可产生一定精度范围内的任何电容。例如,考虑以下电容器网络,它可以并联组合以产生 0nF 到 255nF 的任何整数电容。 

 

 这些开关有条件地包含 2 次幂的电容器。例如,仅闭合右侧的三个开关会产生 7nF。是的,它是二进制的!
 现在,由于 RC 振荡器通过对电容器充电和放电来工作,因此这些开关需要是模拟的。因此,这些微型电容替代盒使用一种特殊类型的开关,称为传输门 或模拟开关。这些很像继电器的半导体替代品;它们控制数字信号并切换模拟信号。有许多商用传输门 IC,例如 CD4016、CD4066 和 CD4053。

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

 内部时钟源调整寄存器,在 s08 系列中广泛使用。图片来自恩智浦。  
 对于 S08 系列的某些成员,该寄存器称为 ICSTRM(内部时钟源调整)。这是一个8位寄存器,二进制复位值为10000000。这8位控制一个电容替换模块,进而影响振荡器的周期 :该寄存器的值越大,电容和周期越高。当然,这对频率有相反的影响。 
 简单的校准程序
 以下是您可以在 MCU 上执行的一个不错的调整过程:
 运行生成 1kHz 方波的应用程序。
 迭代直到无法改进:
 测量生成信号的周期。
 将 Trim 寄存器修改为 1ms。
 重新编译并运行。
 迭代的原因是,由于微调模块中电容器值的不确定性(例如一组高度略有不同的楼梯),您对微调寄存器估计的更改将因某些未知因素而偏离。迭代可以解决这种不规则性。 
 自动化此过程
 您可能希望为您的应用程序自动执行此过程,以便您的程序在加电时校准振荡器,作为启动序列的一部分。 
 为此,您需要一个可靠的时钟参考来与 MCU 生成的固定频率信号进行比较。尽管这看起来毫无意义,因为外部时钟信号是您首先要避免的,但该外部信号不必满足您的时钟要求;它必须准确且稳定。 
 自动微调过程的另一个重要细节是算法:上述过程适用于拥有示波器和出色计算器的工程师。然而,许多校准函数使用逐次逼近方法。这与逐次逼近型ADC使用的算法相同,其本质是二分搜索算法。毫不奇怪,对于 N 位调整寄存器来说,这需要 N 次迭代。
 要了解 ADC 中的逐次逼近,您可能需要阅读Elliott Smith 撰写的文章《了解逐次逼近寄存器 ADC》 。 
 设备程序员
 除了对 ROM 存储器和微控制器进行编程之外,还有一些设备编程器还提供有用的附加功能。有些甚至在您的微控制器上执行此微调程序,以便您方便地对一批设备进行编程,微调每个单元上的内部振荡器。  
 一些设备编程器能够校准其目标微控制器的内部振荡器。 
 
上一篇:IEPE传感器与电荷输出传感器
下一篇:嵌入式FPGA:改变芯片设计方式

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料