RC振荡器的高精度自动校准方法和装置与流程

文档序号:28921746发布日期:2022-02-16 13:24阅读:612来源:国知局
RC振荡器的高精度自动校准方法和装置与流程
rc振荡器的高精度自动校准方法和装置
技术领域
1.本发明涉及一种rc振荡器的高精度自动校准方法,同时涉及一种rc振荡器的高精度自动校准装置,属于时钟电路技术领域。


背景技术:

2.时钟精度在软件应用中是非常重要的一个参数。对于长期使用的电子设备,必须有一个有据可循的的时间链条保证在运行数据的精密完整性。很多电子设备为了设计方便和节约成本,普遍使用内部的时钟电路作为时钟信号源。如果时钟信号不准,日积月累的累计误差会越来越大,会对电子设备的正常运行造成不利影响。
3.在常用的时钟电路中,rc振荡器由于具有面积小成本低,方便集成的优点被广泛应用,主要用于低频振荡,以产生1hz~1mhz的低频信号。单片机等芯片通常在内部集成rc振荡器(也称片内rc振荡器)。由于rc振荡器的工作频率会受到温度和电压的同时影响,容易导致其达不到芯片对时钟电路的稳定性的要求。这就需要根据rc振荡器的应用环境经常进行校准。
4.在专利号为zl 202011030393.2的中国发明专利中,公开了一种高精度有源rc振荡器及其高精度自动校准方法。在该校准方法中,先校准可变电源,再校准可变电阻,最后校准可变电容,无论粗调到任意步进中,在精调步骤中,都能找到一个对应的频率最接近理想频率。由于步进均匀或者相同,更加趋向线性化,由于目标值与当前值之间的步进均匀,可更加准确的估算理想频率校准值,从而减少校准次数,减少校准时间。


技术实现要素:

5.本发明所要解决的首要技术问题在于提供一种rc振荡器的高精度自动校准方法。
6.本发明所要解决的另一技术问题在于提供一种rc振荡器的高精度自动校准装置。
7.为了实现上述目的,本发明采用以下的技术方案:
8.根据本发明实施例的第一方面,提供一种rc振荡器的高精度自动校准方法,包括以下步骤:
9.s1:检测到外部时钟信号的上升沿时,启动对rc振荡器的振荡信号的信号记录;
10.s2:获得rc振荡器在基于外部时钟信号的时间窗口内的振荡次数,时间窗口是指外部时钟信号的一个脉冲的上升沿和下降沿之间的时间段;
11.s3:判断振荡次数在快速调节区内还是高精度调节区内,
12.s4:在快速调节区内时,利用osccal寄存器移位方式调节校准字;在高精度调节区内时,则利用变化1个步长的方式调节校准字,得到新校准字;
13.s5:返回步骤s1,等待外部时钟信号的上升沿,以基于新校准字进行检测,
14.其中,根据预先设定的第一阈值和第二阈值分配快速调节区或高精度调节区,第一阈值小于第二阈值;将小于第一阈值的区间分配为第一快速调节区;将大于第二阈值的区间分配为第二快速调节区;将大于等于第一阈值且小于等于第二阈值的区间分配为高精
度调节区;快速调节区包括第一快速调节区和第二快速调节区。
15.其中较优地,当振荡次数位于第一快速调节区或第二快速调节区时,通过使osccal寄存器移位的方式调节校准字;
16.当振荡次数位于高精度调节区时,结束校准。
17.其中较优地,如果振荡次数位于高精度调节区,并且小于rc振荡器的理想频率对应的理论计数值,则使osccal寄存器加1,作为新校准字用于下一轮调节;
18.如果振荡次数位于高精度调节区,并且大于理论计数值,则使osccal寄存器减1,作为新校准字用于下一轮调节。
19.其中较优地,在步骤s4中包括以下子步骤:
20.s4a:振荡次数在快速调节区内时,利用osccal寄存器移位方式调节校准字,得到新校准字,进入步骤s5;振荡次数在高精度调节区内时,则进入下一步s4b;
21.s4b:在高精度调节区内时,基于上一轮和本轮的计数差绝对值的变化,来调节校准字以得到新校准字,
22.其中,计数差绝对值是指振荡次数与理论计数值之差的绝对值。
23.其中较优地,如果上一轮调节中振荡次数位于高精度调节区,并且本轮调节中振荡次数位于高精度调节区,而且上一轮的计数差绝对值小于本轮的计数差绝对值,则保持校准字不变。
24.其中较优地,如果上一轮调节中振荡次数位于高精度调节区,并且本轮调节中振荡次数位于高精度调节区,而且上一轮的计数差绝对值大于本轮的计数差绝对值,则区分为2种情况:41)如果上一轮和本轮调节中振荡次数均位于相同高精度调节区,则调整校准字,作为新校准字;42)如果上一轮和本轮调节中振荡次数位于不同的高精度调节区,则保持校准字不变。
25.其中较优地,高精度调节区包括第一高精度调节区和第二高精度调节区,
26.第一高精度调节区大于第一阈值并且小于理论计数值;第二高精度调节区小于第二阈值并且大于理论计数值,
27.理论计数值是与rc振荡器的理想频率对应的计数值。
28.其中较优地,如果上一轮调节中振荡次数位于快速调节区,并且本轮调节中振荡次数位于第一高精度调节区,则将校准字加1,作为新校准字。
29.其中较优地,如果上一轮调节中振荡次数位于快速调节区,并且本轮调节中振荡次数位于第二高精度调节区,则将校准字减1,作为新校准字。
30.根据本发明实施例的第二方面,提供一种rc振荡器的高精度自动校准装置,包括分别与微处理器连接的校准检测启动模块、区间分配模块、频率区间判断模块、信号记录模块以及计数器;其中,
31.校准检测启动模块,用于检测外部时钟信号的上升沿以及下降沿,用来启动或者停止信号记录模块;
32.区间分配模块,用于配置快速调节区和高精度调节区;
33.频率区间判断模块,用于根据计数器得到的rc振荡器的振荡次数,来判断该振荡次数在快速调节区或高精度调节区的位置;
34.信号记录模块,用于记录从计数器输入的振荡次数;
35.微处理器,用于实施上述的高精度自动校准方法。
36.利用本发明所提供的高精度自动校准方法和装置,可以对rc振荡器进行自动校准,提高了校准的及时性,可以同时满足快速校准和高精度自动校准的要求,避免出现校准频率不稳定的现象。
附图说明
37.图1为本发明提供的rc振荡器的高精度自动校准方法的流程示意图;
38.图2为本发明第一实施例中,第一轮校准过程的示意图;
39.图3为本发明第一实施例中,快速调节区和高精度调节区的示意图;
40.图4为本发明第二实施例中,第二轮校准过程的示意图;
41.图5为本发明第二实施例中,快速调节区和高精度调节区的示意图;
42.图6为本发明第二实施例中,第一轮校准过程的示意图;
43.图7为本发明第二实施例中,第二轮校准过程的示意图;
44.图8为本发明第二实施例中,第三轮校准过程的示意图
45.图9为本发明第二实施例中,第十三轮校准过程的示意图;
46.图10为本发明所实现的校准效果示意图。
具体实施方式
47.下面结合附图和具体实施例对本发明的技术内容进行详细具体的说明。
48.本发明所涉及的rc振荡器是集成电路芯片内置的rc振荡器。众所周知,通过对振荡器标定寄存器(osccal)配置不同的校准字,可以校准rc振荡器的振荡频率。复位时默认的校准字,例如1mhz的标定数据,会被自动加载到osccal寄存器。
49.在本发明的实施例中,首先提供一种rc振荡器的高精度自动校准装置。该高精度自动校准装置包括校准检测启动模块、区间分配模块、频率区间判断模块、信号记录模块以及计数器,均与微处理器(mcu)连接。借助外部时钟信号,对片内rc振荡器进行校准。该外部时钟是一种频率的准确度高,受环境温度影响很小的时钟,例如uart(universal asynchronous receiver/transmitter,通用异步收发传输器)时钟。外部时钟的作用是发送周期性的频率稳定的计时信号,用以控制芯片中的计数器计数。
50.校准检测启动模块,用于检测外部时钟信号的上升沿以及下降沿,用来启动或者停止信号记录模块;
51.区间分配模块,用于配置快速调节区和高精度调节区。例如,分配为n个快速调节区(粗调),以及m个高精度调节区,其中m、n均为正整数。
52.频率区间判断模块,用于根据计数器得到的rc振荡器的振荡次数,来判断该振荡次数在快速调节区或高精度调节区的位置。
53.信号记录模块,用于记录从计数器输入的振荡次数;
54.微处理器,用于实施相应的高精度自动校准方法。
55.当信号记录模块中的最终记录值在快速调节区内时,如果大于目标区间的最大值,则将校准字进行快速调小(向右移位);如果是小于目标区间的最小值,则将校准字进行快速调大(向左移位)。
56.当信号记录模块中的最终记录值在高精度调节区内时,如果大于目标区间的最大值,则将校准字进行高精度调小(进行减法运算每次减1);如果小于目标区间的最小值,则将校准字进行高精度调大(进行加法运算每次加1)。
57.校准检测启动模块会检测外部时钟信号的上升沿,用来启动信号记录模块。当信号记录模块启动后,会依据rc振荡器的周期进行计数。每当振荡一个周期,信号记录模块都会自加1。当校准检测启动模块检测到外部信号的下降沿时,停止信号记录模块计数。同时频率区间判断模块开始工作,当信号记录模块的数值小于7900时,进行向右移位操作,将校准控制字调小。当信号记录模块的数值大于8200时,进行向左移位,将控制字调大。初始进行调节时,信号记录模块的数值与理论值的偏差比较大,信号记录模块的数值位于快速调节区,经过若干次调节,信号记录模块的数值进入高精度调节区。当信号记录模块的数值在大于7900并且小与8200时,位于高精度调节区。频率区间判断模块进行判断,如果大于8000则将校准字调大(数值加1),如果小于8000则将校准字调小(数值减1)。上述在高精度调节区调节的调节方式是:如果信号记录模块的数值小于理论值则增大校准字,如果信号记录模块的数值大于理论值则减小校准字,信号记录模块的数值只会越来越接近理论值,信号记录模块的数值经调节一旦进入高精度调节区,就不会再返回快速调节区。反复进行上述循环,直到信号记录模块记录的数值在高精度调节区“区域2”与高精度调节区“区域3”之间来回震荡一次。此时校准完成。
58.利用上述rc振荡器的高精度自动校准装置,本发明可以对rc振荡器实现高精度的快速校准。在以下实施例中,以rc-8m振荡器(理想频率为8mh)为例,具体说明本发明实施例提供的rc振荡器的高精度自动校准方法。
59.《第一实施例》
60.如图1所示,该方法包括以下步骤:
61.s1:检测到外部时钟信号的上升沿时,启动对rc振荡器的振荡信号的信号记录。
62.如图2所示,利用校准检测启动模块对外部信息进行检测。当校准检测启动模块检测到外部信号的上升沿时,启动信号记录模块开始记录。
63.理论计数值=时间窗口时间/rc振荡器的理论周期。例如,外部时钟信号的周期为2ms,占空比为50%,计数器在外部时钟信号的上升沿开始计数,在外部时钟信号的下降沿停止计数。也就是说在2ms的周期内,外部时钟的输出高电平的1ms为计数的时间窗口。若rc振荡器的理想频率为8m,则对应的理论计数值=0.001/(1/8
×
106)=8000次。可见,该理论计数值是与理想频率(本发明实施例中为8m)对应的计数值(振荡次数)。然而,由于工艺、温度、电压等原因,计数器计得的次数通常与理论计数值有偏差,形成以理论计数值为中心值的计数范围。在特定应用环境下的rc振荡器的频偏范围不同,所以该计数范围不同。对该计数范围可以预先进行分配,后文将详述。
64.s2:获得rc振荡器在基于外部时钟信号的时间窗口内的振荡次数。
65.如图2所示,外部时钟信号(例如脉冲周期为2ms)的上升沿到来时,启动对rc振荡器的振荡次数的信号记录。利用频率准确的外部时钟信号的高电平脉冲的上升沿和下降沿之间为时间窗口(图中显示高电平1ms为时间窗口),信号记录模块在外部时钟信号的上升沿启动计数器,并且在外部时钟信号的下降沿关闭计数器。利用计数器在时间窗口中计数,在rc-8m振荡器输出的待校准时钟信号的每个上升沿或者下降沿,计数器计数加1。这样,获
得计数器在整个时间窗口内得到的计数值,作为rc振荡器在时间窗口内的振荡次数。在外部时钟信号的下一个上升沿到来之前清零计数器。
66.本领域普通技术人员可以理解,在本发明实施例中以外部时钟信号的高电平为时间窗口,也可以用低电平为时间窗口进行振荡次数的计数。而且,可以在外部时钟信号的每一个脉冲均进行振荡次数的计数,也可以预先设定计数的周期,每间隔特定数量的脉冲才进行一次振荡次数的计数。因此,本发明实施例中举例说明的时间窗口,并不构成对本发明的限制。
67.s3:判断振荡次数在快速调节区内还是高精度调节区内。
68.如前述,当信号记录模块启动后,会依据rc振荡器的周期进行计数。每当rc振荡器经过一个周期,信号记录模块中的计数器都会自加1,由此得到在外部时钟信号的时间窗口内的rc振荡器的振荡次数。
69.根据在特定应用环境下的rc振荡器的频偏范围,可以预先得到与该频偏范围对应的计数范围。区间分配模块,预先将计数范围分配为n个快速调节区(粗调区),以及m个高精度调节区(精调区)。其中,m为1或2;n≧m。
70.在本发明的实施例中,粗调和精调主要差别在于调节速度。粗调划分主要取决于步长,尽可能设置在粗调的范围内。例如,粗调使用移位操作,那么该粗调范围应该在标准值左移1位和右移1位,这样能够实现最快的调节速度。例如,如图3中所示,计数范围被配置为:m=1且n=2,即1个高精度调节区(图中区域2),2个快速调节区(图中区域1和区域3)。这两个快速调节区的调节方式为移位操作。假设有4个快速调节区,那么可以两个快速调节区使用移1位操作,另外两个快速调节区使用移2位操作。在偏差特别大时,可以加速调节的速度。并且,高精度调节区是以理论计数值为中心点(8000次)的区间。在本发明实施例中,高精度调节区的区间边界低值(第一阈值)为7900次,高精度调节区的区间边界高值(第二阈值)为8200次。根据特定的应用环境,高精度调节区也可以预先设置为[7800次,8200次]或[7900次,8100次]等,这并不构成对本发明的限制。
[0071]
2个快速调节区包括第一快速调节区和第二快速调节区。其中,第一快速调节区(图中区域1)的计数值低于第一阈值,第一快速调节区(图中区域3)的计数值高于第二阈值。第一阈值小于第二阈值。
[0072]
在步骤s2中已经获得了rc振荡器在时间窗口内的振荡次数,将振荡次数与第一阈值及第二阈值进行比较。如果振荡次数小于第一阈值,则判断为位于第一快速调节区;如果振荡次数大于第二阈值,则判断为位于第二快速调节区;如果振荡次数大于第一阈值且小于第二阈值则判断为位于高精度调节区。
[0073]
s4:在快速调节区内时,利用osccal寄存器移位方式调节校准字;在高精度调节区内时,则利用变化1个步长的方式调节校准字,得到新校准字。
[0074]
如果振荡次数小于第一阈值,说明rc振荡器的实际频率远低于理想频率,则判断在第一快速调节区内。这种情况下,将osccal寄存器移位(左移1位)来调节校准字,使得调节后的校准字对应的频率变高。
[0075]
如果振荡次数大于第二阈值,说明rc振荡器的实际频率远高于理想频率,则判断在第二快速调节区内。这种情况下,将osccal寄存器移位(右移1位)来调节校准字,使得调节后的校准字对应的频率变低。
[0076]
如果振荡次数介于第一阈值和第二阈值之间,则说明rc振荡器的实际频率与理想频率相差不大,则判断在高精度调节区内。这种情况下,利用变化1个步长的方式(将osccal寄存器加1或减1)来调节校准字),得到新校准字,使得调节后的校准字对应的频率变高(osccal寄存器加1时)或变低(osccal寄存器减1时)。
[0077]
由于振荡次数在快速调节区内时,用移位的方式来调节osccal寄存器,可以实现在一轮调节中就使校准字变化2n个步长(n为移动的位),新校准字与原校准字相差多个步长,所以能够实现快速调节。
[0078]
s5:返回步骤s1,等待外部时钟信号的上升沿,以基于新校准字进行检测。
[0079]
下面结合图2~图4详细说明校准字的调节过程。
[0080]
假定校准字默认值为0x80,根据特定应用环境下可接受的频偏范围,预先设定的第一阈值为7900次并且第二阈值为8200次(即,振荡频率在7900~8200hz内的rc振荡器是可以接受的)。
[0081]
开启自动校准使能,输入的外部时钟信号的高脉冲持续时间为1ms,占空比50%。
[0082]
在第一轮调节时,检测到外部时钟信号的上升沿,计数器开始计数。检测到外部时钟信号的下降沿,停止计数。这样得到计数器的计数结果为8873次,作为振荡次数。将振荡次数与第一阈值和第二阈值进行比较,判断出振荡次数大于第二阈值,因此振荡次数位于第二快速调节区“区域3”。
[0083]
由于振荡次数位于区域3,将osccal寄存器右移1位,调节校准字,从0x80调节至0x40作为新校准字。第一轮调节结束,返回步骤s1,计数器清零并等待外部时钟信号的上升沿。
[0084]
当外部时钟信号的上升沿到达时,启动第二轮调节。检测到信号上升沿,计数器开始计数,直到外部时钟信号的下降沿时停止计数。最终计数器结果为8190次,作为振荡次数。将振荡次数与第一阈值和第二阈值进行比较,判断出振荡次数大于第一阈值且小于第二阈值,在快速调节区“区域3”与“区域1”之间,即位于高精度调节区。此时,校准结束,最终校准字为上一轮得到的新校准字0x40,根据下表1可知,与该校准字对应的频率为8.179mhz。表1表示数值范围是0~255的校准字与rc振荡器最终输出的时钟频率(最终频率)的对应关系。
[0085]
表1:rc校准字与最终频率的对应关系表
[0086]
[0087][0088]
由此可见,采用移位方式调节校准字,结合两个阈值的判断,可以快速地将rc振荡器的实际频率调节到可接受的误差范围内。
[0089]
《第二实施例》
[0090]
特定应用环境下对时钟频率的精度要求高,例如长期使用的电子设备,较高精度的时钟频率能保证电子设备有一个有据可循的时间链条,保证在运行数据的精密完整性。在这种应用环境下对rc振荡器的频率调节精度要求高,例如需要rc振荡器的理想频率为8000hz并且可接受的频率范围为7980~8050hz。这时,高精度调节区的范围很小,调节一个步长会导致频率始终在理想频率附近振荡。
[0091]
在本发明实施例中,通过对频率偏差的预估及比较,在第一实施例的基础上,进一步优化校准字的调节。
[0092]
下面结合图5~图9进行详细说明。
[0093]
在本发明实施例中,将可接受的rc振荡器的频率范围的最小频率值设定第一阈值;将可接受的rc振荡器的频率范围的最大频率值设定为第二阈值。区间分配模块将小于第一阈值的区间设定为第一快速调节区(区域1),将大于第二阈值的区间设定为第二快速调节区(区域4);将大于第一阈值并且小于理论计数值的区间设定为第一高精度调节区(区域2);将大于理论计数值并且小于第二阈值的区间设定为第二高精度调节区(区域3)。可见,基于第一阈值、第二阈值和理论计数值,分配了四个调节区。第一快速调节区和第二快速调节区统称为快速调节区;第一高精度调节区和第二高精度调节区统称为高精度调节区。
[0094]
s1:检测到外部时钟信号的上升沿时,启动对rc振荡器的振荡信号的信号记录。
[0095]
s2:获得rc振荡器在基于外部时钟信号的时间窗口内的振荡次数。
[0096]
上述步骤s1和s2,与第一实施例中的操作相同,在此不赘述。
[0097]
s3:判断振荡次数在快速调节区内还是高精度调节区内。
[0098]
利用步骤s2中获得的振荡次数,将其与第一阈值、第二阈值和理论计数值进行比较,可以判断出振荡次数位于第一快速调节区、第二快速调节区、第一高精度调节区或第二高精度调节区。
[0099]
s4a:在快速调节区内时,利用osccal寄存器移位方式调节校准字,得到新校准字,进入步骤s5;在高精度调节区内时,则进入下一步s4b。
[0100]
在步骤s3中判断出振荡次数位于第一快速调节区、第二快速调节区时,与第一实施例类似,对osccal寄存器进行移位(在第一快速调节区时,向左移1位;在第二快速调节区时,向右移1位),得到新校准字,以进行多个步长的调节。
[0101]
s4b:在高精度调节区内时,基于上一轮和本轮的计数差绝对值的变化,来调节校准字以得到新校准字。
[0102]
在步骤s3中判断出振荡次数位于第一高精度调节区或第二高精度调节区时,计算振荡次数与理论计数值之差的绝对值(以下简称:计数差绝对值)。而且,将上一轮调节中振荡次数所处的区间(是第一高精度调节区还是第二高精度调节区),与比较本轮调节中振荡次数所处的区间进行比较。因此,存在以下情况:
[0103]
1)如果上一轮调节中振荡次数位于高精度调节区,并且本轮调节中振荡次数位于高精度调节区,而且上一轮的计数差绝对值小于本轮的计数差绝对值(即,上一轮的计数差绝对值减去本轮的计数差绝对值,差值为负)则校准字不变,并结束校准;
[0104]
2)如果上一轮调节中振荡次数位于高精度调节区,并且本轮调节中振荡次数位于高精度调节区,而且上一轮的计数差绝对值大于本轮的计数差绝对值(即,上一轮的计数差绝对值减去本轮的计数差绝对值,差值为正),则区分为2种情况:41)如果上一轮和本轮调节中振荡次数均位于相同高精度调节区,则调整校准字,作为新校准字;42)如果上一轮和本轮调节中振荡次数位于不同的高精度调节区,则保持校准字不变,并结束校准。
[0105]
s5:返回步骤s1,等待外部时钟信号的上升沿,以基于新校准字进行检测。
[0106]
由于在本发明实施例中,利用s4b步骤进一步判断本轮的计数差绝对值的变化(是大于上一轮计数差绝对值,还是小于上一轮计数差绝对值),避免了rc振荡器频率调节时在第一高精度调节区和第二高精度调节区反复振荡的情况,也避免了校准后的最终频率与理想频率的偏差相对于校准前反而变大的现象。
[0107]
换言之,本发明中的的频率调节精度始终保持小于或等于0.5个步长。因此,本发明所提供的高精度自动校准方法的频率偏差比现有技术更小,校准更精确。
[0108]
例如,假设校准步长为1,理论计数值为8000,在上一轮校准中计数得到的振荡次数为7998次,在本轮校准中的振荡次数为8001次。上一轮振荡次数与理论计数值的差值为-2,并且上一轮位于第一高精度调节区。本轮振荡次数与理论计数值的为差值1,其绝对值(计数差绝对值)小于上一轮的计数差绝对值,并且位于第二高精度调节区,(位于不同的高精度调节区)。因此,保持校准字不变。
[0109]
下面结合图5~图9,举例说明本发明实施例提供的高精度自动校准方法。
[0110]
假定校准字默认值为0x80,第一阈值为7900,第二阈值为8200。预定频率为8mhz。因此,第一快速调节区为小于7900次;第一高精度调节区为7900~7999次;第二高精度调节区为8001~8200次,第二快速调节区为大于8200次。校准过程如下:
[0111]
开启自动校准使能,检测到外部时钟信号的上升沿,第一轮调节开始。此时,计数器开始计数直到检测到外部时钟信号的下降沿,得到第一振荡次数为8873次。在步骤s3中判断第一振荡次数位于快速调节区(区域4)。在步骤s4a中将osccal寄存器右移1位,调节校准字至0x40,第一轮调节结束,返回步骤s1。
[0112]
在步骤s1,再次检测到外部时钟信号的上升沿,第二轮调节开始,得到第二振荡次数为8190次。在步骤s3中判断第二振荡次数在第二高精度调节区(区域3)。在步骤s4b中,符合第2种情况,使校准字减1,调节校准字至0x3f。
[0113]
类似地,进行第七轮调节,第七振荡次数为8084,校准字为0x3a,结果在第二高精度调节区(区域3),使校准字减1,调节为0x39。
[0114]
在第八轮调节,第八振荡次数为8077,校准字为0x39,结果在第二高精度调节区(区域3),使校准字减1,调节为0x38。
[0115]
在第九轮调节,第九振荡次数为8064,校准字为0x38,结果在第二高精度调节区(区域3),使校准字减1,调节为0x37。
[0116]
在第十轮调节,第十振荡次数为8058,校准字为0x37,结果在第二高精度调节区(区域3),使校准字减1,调节为0x36。
[0117]
直到第十三轮调节,第十三振荡次数为8012,结果在第二高精度调节区(区域3),使校准字减1,调节为0x32。
[0118]
在第十四轮调节,第十四振荡次数为7993,校准字为0x32,结果在第一高精度调节区(区域2)。此时,计算上一轮的计数差绝对值为:8012-8000=12;计算本轮的计数差绝对值为:7993-8000=-7。即,本轮的计数差绝对值小于上一轮的计数差绝对值。根据s4b中第42种情况,无需变更校准字0x32,结束校准。
[0119]
将第一实施例和第二实施例的结果进行比较,可以得到表2:
[0120]
高精度调节区域快速调节区目标频率8m误差1个2个8.179mhz2.20%2个2个7.991mhz0.11%
[0121]
从上表可以看出,第二实施例中的具有2个高精度调节区域和2个快速调节区的情况下,校准精度更高,误差在0.11%。第二实施例的误差是第一实施例中的误差的5%,可见校准精度得到大幅提高。结合表2和图10可知,采用本发明实施例提供的高精度自动校准方法,可以快速校准(图中下降斜率大),而且校准精度大幅提高。
[0122]
在本发明实施例中,用于计数的时间窗口是周期性的(即外部时钟信号的周期),在每个时间窗口获得一个计数结果,根据计数结果(振荡次数)对校准字进行调节,从而实现了:根据rc振荡器在外部时钟信号的时间窗口内的振荡次数,对rc振荡器进行自动校准;而且,因为是在基于外部时钟信号的预定周期内均会自动进行rc振荡器的校准,所以提高了校准的及时性;通过分配高精度调节区和快速调节区以同时满足快速校准和高精度自动校准的要求;通过比较前后两轮调节的计数差绝对值的变化,避免出现不稳定的现象。因此,采用本发明实施例提供的高精度自动校准方法和装置能够补偿温度差异,工艺差异,电压波动对于振荡器输出频率的影响;而且,校准后的输出频率偏差控制在小于等于最小步长1/2,由此改善了片内rc振荡器的性能,扩大了片内rc振荡器的适用范围。
[0123]
上面对本发明所提供的rc振荡器的高精度自动校准方法和装置进行了详细的说
明。对本领域的一般技术人员而言,在不背离本发明实质内容的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1