CN103853081B - Mcu内部时钟校准***及方法及印刷电路板 - Google Patents

Mcu内部时钟校准***及方法及印刷电路板 Download PDF

Info

Publication number
CN103853081B
CN103853081B CN201210521294.3A CN201210521294A CN103853081B CN 103853081 B CN103853081 B CN 103853081B CN 201210521294 A CN201210521294 A CN 201210521294A CN 103853081 B CN103853081 B CN 103853081B
Authority
CN
China
Prior art keywords
timer
count value
square wave
reference clock
mcu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210521294.3A
Other languages
English (en)
Other versions
CN103853081A (zh
Inventor
段亚丽
董金盛
徐勤耀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haier Group Corp
Qingdao Haier Technology Co Ltd
Original Assignee
Haier Group Corp
Qingdao Haier Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Haier Group Corp, Qingdao Haier Technology Co Ltd filed Critical Haier Group Corp
Priority to CN201210521294.3A priority Critical patent/CN103853081B/zh
Publication of CN103853081A publication Critical patent/CN103853081A/zh
Application granted granted Critical
Publication of CN103853081B publication Critical patent/CN103853081B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Electric Clocks (AREA)

Abstract

本发明涉及一种MCU内部时钟校准***及方法及印刷电路板,该***和方法用于获取MCU中待校准的第二定时器的实际计数值以校准第二定时器的定时时间,该方法包括:向MCU的一个输入/输出接口加载基准时钟方波;MCU第一定时器进行计数;获取第一定时器在基准时钟方波的一个周期内的计数值;根据第一定时器在基准时钟方波的一个周期内的计数值获取第二定时器的实际计数值;以及存储第二定时器的实际计数值,以供第二定时器依据其实际计数值进行定时。本发明的MCU内部时钟校准***及方法及印刷电路板成本低、故障几率小。

Description

MCU内部时钟校准***及方法及印刷电路板
技术领域
本发明涉及时钟校准***,尤其涉及一种MCU内部时钟校准***
及方法及具有该***的印刷电路板。
背景技术
目前,通常采用MCU(Micro Control Unit,微控制单元)内部RC振荡的设计方案为MCU提供内部时钟,由于MCU内部RC振荡本身存在误差,时钟精度较低。并且,当MCU应用于PCB(PrintedCircuit Board,印刷电路板)中,会由于外部器件寄生电容等影响,噪声频率的漂移,再次影响内部RC振荡时钟的准确性。这样,就不能满足精准计时的需求,如果增加外置陶瓷振荡器或者晶体振荡器,虽然可以提高时钟精准度,但设计成本较高,同时,每增加一个元件,也相应增加一个故障点。
发明内容
在下文中给出关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
本发明的一个主要目的在于克服现有技术的缺陷,提供一种精确度高、成本低的MCU内部时钟校准***及方法以及具有该***的印刷电路板。
为实现上述目的,本发明提供了一种MCU内部时钟校准***,包括:
基准时钟源,连接至MCU的一个输入/输出接口,用于输出基准时钟方波;
第一定时器,设置在MCU内;
计数值获取模块,用于获取第一定时器在基准时钟方波的一个周期内的计数值;
校准模块,设置在MCU内,用于根据第一定时器在基准时钟方波的一个周期内的计数值获取待校准的第二定时器的实际计数值;以及
存储模块,设置在MCU内,用于存储第二定时器的实际计数值,以供第二定时器依据其实际计数值进行定时。
为实现上述目的,本发明还提供了一种印刷电路板,包括上述MCU内部时钟校准***。
为实现上述目的,本发明还提供了一种MCU内部时钟校准方法,包括:
基准时钟输出步骤:向MCU的一个输入/输出接口加载基准时钟方波;
计数步骤:MCU第一定时器进行计数;
计数值获取步骤:获取第一定时器在基准时钟方波的一个周期内的计数值;
校准步骤:根据第一定时器在基准时钟方波的一个周期内的计数值获取待校准的第二定时器的实际计数值;以及
存储步骤:存储第二定时器的实际计数值,以供第二定时器依据其实际计数值进行定时。
本发明的MCU内部时钟校准***及方法以及具有该***的印刷电路板通过在MCU外部加载基准时钟方波,通过第一定时器在该基准时钟方波的一个周期内的计数值获取需要校准的第二定时器的实际计数值,使得MCU中的定时器能够准确定时,相较现有技术中采用外部陶瓷振荡器或者晶体振荡器进行校准的方法,降低了成本,且故障几率小。
附图说明
参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。附图中的部件只是为了示出本发明的原理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。
图1为本发明MCU内部时钟校准方法的第一实施例的方框图。
图2为本发明MCU内部时钟校准方法的第二实施例的方框图。
图3为本发明MCU内部时钟校准方法的第三实施例的方框图。
图4为本发明MCU内部时钟校准方法的第一实施例的流程图。
图5为本发明MCU内部时钟校准方法的第二实施例的流程图。
具体实施方式
下面参照附图来说明本发明的实施例。在本发明的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。
本发明提供了一种MCU内部时钟校准***,包括:
基准时钟源,连接至MCU的一个输入/输出接口,用于输出基准时钟方波;
第一定时器,设置在MCU内;
计数值获取模块,用于获取第一定时器在基准时钟方波的一个周期内的计数值;
校准模块,设置在MCU内,用于根据第一定时器在基准时钟方波的一个周期内的计数值获取待校准的第二定时器的实际计数值;以及
存储模块,设置在MCU内,用于存储第二定时器的实际计数值,以供第二定时器依据其实际计数值进行定时。
可选地,校准模块具体用于根据第一公式iS_Count=i*1000*(p/(Count*m*n))获取第二定时器定时i秒的实际计数值,其中i为第二定时器定时的秒数,iS_Count为第二定时器定时i秒的实际计数值,p为第二定时器的时钟分频比,m为基准时钟方波的频率,n为第一定时器的时钟分频比,Count为第一定时器在基准时钟方波的一个周期内的计数值;m、iS_Count、p、n、i均大于0。
可选地,还包括***时钟频率获取模块和第一误差判断模块,***时钟频率获取模块用于根据第一定时器在基准时钟方波的一个周期内的计数值获取MCU的***时钟频率,第一误差判断模块,用于确定***时钟频率获取模块获得的MCU的***时钟频率是否在误差范围内,如果获得的MCU的***时钟频率在误差范围内,触发校准模块根据第一定时器在基准时钟方波的一个周期内的计数值获取第二定时器定时i秒的实际计数值。
通过第一误差判断模块,可避免获取明显错误的***时钟频率造成的第二定时器定时错误并影响与之相关的其它器件的工作状态的问题,例如,当通过第二定时器的定时控制印刷电路板上其它器件的工作时,可避免由于明显的定时错误造成的该器件不正常工作。
可选地,***时钟频率获取模块具体用于根据第二公式Mclk=Count*n*m获取MCU的***时钟频率,其中Mclk为MCU的***时钟频率,m为基准时钟方波的频率,n为第一定时器的时钟分频比,Count为第一定时器在基准时钟方波的一个周期内的计数值;m、iS_Count、p、n、i均大于0。
可选地,还包括第二误差判断模块,用于确定校准模块获取的第二定时器的实际计数值是否在误差范围内,如果校准模块获取的第二定时器的实际计数值在误差范围内,触发第二定时器依据校准模块获取的第二定时器的实际计数值进行定时,否则,触发第二定时器依据默认计数值进行定时。
通过第二误差判断模块,可避免获取明显错误的第二定时器的实际计数值而影响与第二定时器相关的其它器件的工作状态,例如,当通过第二定时器的定时控制印刷电路板上其它器件的工作时,可避免由于明显的定时错误造成的该器件不正常工作。
可选地,还包括校验模块,用于判断存储模块中存储的第二定时器的实际计数值是否正确,如果存储模块中存储的第二定时器的实际计数值不正确,触发第二定时器依据默认计数值进行定时;如果存储模块中存储的第二定时器的实际计数值正确,触发第二定时器依据存储的第二定时器的实际计数值进行定时。
通过该校验模块,可在第二定时器计数定时之前进一步确认其实际计数值的正确性,避免定时错误,降低故障几率。
可选地,第一定时器还用于从输入/输出接口采集基准时钟方波的时钟沿并在采集的两个时钟沿之间进行计数,计数值获取模块根据第一定时器采集的两个时钟沿之间的时间与基准时钟方波的一个周期之间的比值获取第一定时器在基准时钟方波的一个周期内的计数值。
第一定时器采集基准时钟方波的时钟沿,并可根据其在采集的两个时钟沿之间的计数值方便地获取第一定时器在基准时钟方波的一个周期内的计数值,进而可方便地获得第二定时器的实际计数值。
可选地,还包括中断触发模块,用于检测基准时钟方波的两个时钟沿、在检测到两个时钟沿中的前一个时触发第一定时器计数并在检测到两个时钟沿中的后一个时触发第一定时器停止计数,计数值获取模块根据基准时钟方波的两个时钟沿之间的时间与基准时钟方波的一个周期之间的比值获取第一定时器在基准时钟方波的一个周期内的计数值。
利用上述中断触发模块检测基准时钟方波的两个时钟沿,可代替通过第一定时器采集时钟沿的方式,可供用户根据实际需要选择合适的方式,以方便获取第一定时器在基准时钟方波的一个周期内的计数值,进而可方便地获得第二定时器的实际计数值。
参考图1,本发明的MCU内部时钟校准***用于对MCU100内部时钟进行校准,其第一实施例包括加载在MCU外部的基准时钟源10,还包括设置在MCU100内部的第一定时器11、第二定时器12、计数值获取模块13、校准模块14以及存储模块15。
该基准时钟源10连接至MCU100的一个输入/输出接口(I/O口),用于向该I/O口输出频率为mKhz(千赫兹)的基准时钟方波。本实施例中,可在需要校准MCU100的内部时钟时,将基准时钟源10连接至MCU100,不进行校准时,MCU100的该I/O口可用作其他功能。
在一种实施方式中,第一定时器11从该I/O口采集该基准时钟方波的时钟沿,并以Mclk/n千赫兹的计数时钟频率进行计数,其中Mclk为MCU100的***时钟频率,n为第一定时器11的时钟分频比。
第一定时器11在其采集的两个时钟沿之间的计数值用以供计数值获取模块13获取第一定时器11在基准时钟方波的一个周期内的计数值。具体地,例如,第一定时器11采集的该基准时钟方波两个时钟沿可为“上升沿-上升沿”、“上升沿-下降沿”、“下降沿-下降沿”或“下降沿-上升沿”,也就是说,第一定时器11在采集的两个时钟沿之间的计数值可为例如该基准时钟方波运行半周期或一周期时的计数值。
因此,将第一定时器11在采集的两个时钟沿之间的计数值除以该两个时钟沿之间的时间与该基准时钟方波一个周期的比值即可得到第一定时器11在基准时钟方波的一个周期内的计数值。也就是说,当采集基准时钟方波的一个周期时,将获取的第一定时器11的计数值直接乘以第一定时器11的时钟分频比n和基准时钟方波的频率m即可获取实际的***时钟频率;当采集基准时钟方波的1/2个周期时,需要将获取的第一定时器11的计数值乘以2,再乘以第一定时器11的时钟分频比n和基准时钟方波的频率m得到实际的***时钟频率。即,计数值获取模块13根据第一定时器11采集的两个时钟沿之间的时间与基准时钟方波的一个周期之间的比值获取第一定时器11在基准时钟方波的一个周期内的计数值。
第二定时器12为MCU100中需要校准的定时器,校准模块14用于根据计数值获取模块13获取的第一定时器11在基准时钟方波一个周期内的计数值校准第二定时器12。设第二定时器12的时钟分频比为p,则第二定时器12的计数时钟频率为Mclk/p(Khz),其计数时钟周期为p/Mclk(毫秒)。根据以上描述,***时钟频率为Mclk,第一定时器11的分频比为n,基准时钟方波的基准时钟周期为1/m,则第一定时器11的计数时钟周期为Mclk/n(Khz),其与第一定时器11在基准时钟方波一个周期内的计数值的乘积即为基准时钟周期,即,Count*(n/Mclk)=1/m(毫秒),由此可知,Mclk=Count*m*n,如果第二定时器12为i秒定时器(定时的秒数为i),则校准模块14可根据公式iS_Count=i*1000*(p/(Count*m*n))获取第二定时器12定时i秒的实际计数值,其中Count为第一定时器11在基准时钟方波一个周期内的计数值。
存储模块15可为MCU100的内存(memory),用于存储校准模块14获取的实际计数值,以供第二定时器12依据其实际计数值进行定时。
可选地,第一定时器11可多次采集基准时钟方波的一个周期内的两个时钟沿,例如,可分时采集多个“上升沿-上升沿”并将其在各个“上升沿-上升沿”之间的计数值,计数值获取模块13可将第一定时器11在基准时钟方波的多个“上升沿-上升沿”之间的计数值的平均值作为最终的计数值Count,例如,第一定时器11在基准时钟方波的第一个周期内的计数值为Count1、在第二个周期内的计数值未Count2……在第n个周期内的计数值为Countn,则Count=(Count1+Count2+……Countn)/n。
参考图2,本发明MCU内部时钟校准***的第二实施例包括基准时钟源10、第一定时器11、第二定时器12、计数值获取模块13、校准模块14、存储模块15,其结构及工作原理与第一实施例相似,区别包括:
本发明MCU内部时钟校准***的第二实施例还包括***时钟频率获取模块16、第一误差判断模块17a、第二误差判断模块17b和/或校验模块18。
***时钟频率获取模块16用以根据第一定时器11在基准时钟方波一个周期内的计数值Count获取实际的***时钟频率Mclk,具体地,***时钟频率获取模块16可根据公式Mclk(Khz)=Count*n*m(Khz)获取实际的***时钟频率。
第一误差判断模块17a用于确定***时钟频率获取模块16获得的MCU的***时钟频率(Count*m*n)是否在误差范围内,如果获得的***时钟频率在误差范围内,则校准模块14将该实际的***时钟频率引入上述公式iS_Count=i*1000*(p/(Count*m*n))获取第二定时器12实际的计数值。如果获得的***时钟频率不在误差范围内,则将其确认为无效值,校准模块14不工作,第二定时器12将依据默认计数值进行定时。
第二误差判断模块17b用于判断校准模块14获取的第二定时器12定时i秒的实际计数值是否在误差范围内,如果获取的第二定时器12定时i秒的实际计数值在误差范围内,则存储模块15存储第二定时器12定时i秒的实际计数值,第二定时器12工作时依据其实际计数值进行定时,否则,存储模块15对不存储第二定时器12的实际计数值,则第二定时器12依据默认计数值进行定时。
校验模块18可在第二定时器12开始工作前校验存储模块15中存储的第二定时器12的实际计数值是否正确,例如,作为一种实现方式,可在存储模块15中存储第二定时器12的实际计数值的反码,校验模块18通过比对正码和反码来校验实际计数值的正确性。如果校准模块14获得的实第二定时器12的实际计数值是正确的,则第二定时器12可依据该实际计数值进行工作,否则,依据默认计数值工作。
可选地,还可在MCU100中设置提示模块(图中未示出),当校验第二定时器12的实际计数值不正确时,以报警的方式提示第二定时器12需要校准。
参考图3,本发明的MCU内部时钟校准***的第三实施例包括基准时钟源10,还包括第一定时器11、第二定时器12、计数值获取模块13、校准模块14以及存储模块15,还可包括***时钟频率获取模块16、第一误差判断模块17a、第二误差判断模块17b和/或校验模块18。本发明MCU内部时钟校准***的第三实施例与第一、第二实施例的结构和工作原理相似,区别包括:
在第三实施例中,还可包括中断触发模块19,用于检测基准时钟方波的两个时钟沿(例如一个周期内的“上升沿-上升沿”、“上升沿-下降沿”),并触发第一定时器11在两个时钟沿之间进行计数。例如,可在检测到第一个上升沿时触发第一定时器11开始计数并在检测到第二个上升沿时触发第一定时器11停止计数。则计数值获取模块13可根据该两个时钟沿之间的时间与基准时钟方波的一个周期之间的比值获取第一定时器11在基准时钟方波的一个周期内的计数值,获取第一定时器11在基准时钟方波的一个周期内的计数值的方式已在第一实施例中进行了描述,不再赘述。
本发明还提供了一种印刷电路板,包括上述MCU内部时钟校准***。
本发明还提供了一种MCU内部时钟校准方法,包括:
基准时钟输出步骤:向MCU的一个输入/输出接口加载基准时钟方波;
计数步骤:MCU第一定时器进行计数;
计数值获取步骤:获取第一定时器在基准时钟方波的一个周期内的计数值;
校准步骤:根据第一定时器在基准时钟方波的一个周期内的计数值获取待校准的第二定时器的实际计数值;以及
存储步骤:存储第二定时器的实际计数值,以供第二定时器依据其实际计数值进行定时。
可选地,校准步骤具体根据第一公式iS_Count=i*1000*(p/(Count*m*n))获取第二定时器定时i秒的实际计数值,其中i为第二定时器定时的秒数,iS_Count为第二定时器定时i秒的实际计数值,p为第二定时器的时钟分频比,m为基准时钟方波的频率,n为第一定时器的时钟分频比,Count为第一定时器在基准时钟方波的一个周期内的计数值;m、iS_Count、p、n、i均大于0。
可选地,计数值获取步骤和校准步骤之间还包括:
***时钟频率获取步骤:根据第一定时器在基准时钟方波的一个周期内的计数值获取MCU的***时钟频率;以及
第一误差判断步骤:判断***时钟频率获取模块获得的MCU的***时钟频率是否在误差范围内,如果获得的MCU的***时钟频率在误差范围内,执行校准步骤,否则,触发第二定时器依据默认计数值定时。
可选地,***时钟频率获取步骤具体根据第二公式Mclk=Count*n*m获取MCU的***时钟频率,其中Mclk为MCU的***时钟频率,m为基准时钟方波的频率,n为第一定时器的时钟分频比,Count为第一定时器在基准时钟方波的一个周期内的计数值;m、iS_Count、p、n、i均大于0。
可选地,校准步骤之后还包括:第二误差判断步骤:判断校准步骤获取的第二定时器的实际计数值是否在误差范围内,如果第二定时器的实际计数值在误差范围内,执行存储步骤,否则,触发第二定时器依据默认计数值进行定时。
可选地,存储步骤之后还包括:校验步骤:判断存储步骤存储的第二定时器的实际计数值是否正确,如果存储的第二定时器的实际计数值不正确,触发第二定时器依据默认计数值进行定时,如果存储的第二定时器的实际计数值正确,触发第二定时器依据存储的第二定时器的实际计数值进行定时。
可选地,计数步骤包括:
第一定时器采集基准时钟方波的时钟沿;
计数值获取步骤根据第一定时器采集的基准时钟方波的两个时钟沿之间的时间与基准时钟方波的一个周期之间的比值获取第一定时器在基准时钟方波的一个周期内的计数值。
可选地,计数步骤包括:
触发第一定时器在基准时钟方波的两个时钟沿之间进行计数;
计数值获取步骤根据基准时钟方波的两个时钟沿之间的时间与基准时钟方波的一个周期之间的比值,获取第一定时器在基准时钟方波的一个周期内的计数值。
参考图4,本发明MCU内部时钟校准方法的第一实施例可应用MCU内部时钟校准***的第一实施例对MCU的内部时钟进行校准,包括以下步骤:
基准时钟输出步骤S401:通过基准时钟源10向MCU100的一个I/O口加载基准时钟方波。本步骤中加载的基准时钟方波的频率为mKhz。
计数步骤S403:第一定时器11进行计数。本步骤中,第一定时器11的计数时钟频率可为以Mclk/nKhz,其中Mclk为MCU100的***时钟频率,n为第一定时器11的时钟分频比。第一定时器11的时钟分频比可由用户设定而确定。
计数值获取步骤S405:计数值获取模块13获取第一定时器11在基准时钟方波一个周期内的计数值Count。
校准步骤S407:校准模块14根据第一定时器11在基准时钟方波一个周期内的计数值Count获取第二定时器12的实际计数值。本步骤中,设第二定时器12为i秒定时器,则校准模块14根据公式iS_Count=i*1000*(p/(Count*m*n))获取第二定时器12定时i秒的实际计数值,其中i为第二定时器12定时的秒数,iS_Count为第二定时器12定时i秒的实际计数值,p为第二定时器12的时钟分频比,第二定时器12的时钟分频比也可由用户设定。例如,如果第二定时器12为1秒定时器,则其实际计数值未1000*(p/(Count*m*n))。
存储步骤S409:存储模块15存储第二定时器12的实际计数值。当第二定时器12开始工作时,依据校准步骤S407中获取的实际计数值进行计数,便可达到精确定时的目的。
可选地,本实施例中,在计数步骤S403中,第一定时器11可采集基准时钟方波的时钟沿,并以Mclk/nKhz的计数时钟频率进行计数。例如,可通过用户设置,使第一定时器11采集基准时钟方波的“上升沿-上升沿”或者“下降沿-上升沿”等。则在计数值获取步骤S405中,可根据计数步骤S403中采集的两个时钟沿之间的时间在其所在周期中的比值来计算第一定时器11在基准时钟方波的一个周期内的计数值,例如,当采集的是“下降沿-上升沿”,则该下降沿-上升沿之间的时间与其所在周期的比值为1/2,则第一定时器11在基准时钟方波的一个周期内的计数值为第一定时器11在两个时钟沿之间的计数值乘以2。计数值获取步骤S405中,可多次获取第一定时器11在基准时钟方波的一个周期内的计数并将其平均值作为最终的计数值Count。参考图5,本发明MCU内部时钟校准方法的第二实施例可应用MCU内部时钟校准***的第二实施例进行***时钟校准。其与MCU内部时钟校准方法的第一实施例基本相同,区别在于:
第二实施例中,在计数值获取步骤S405之后还可包括***时钟频率获取步骤S406a及第一误差判断步骤S406b。***时钟频率获取步骤S406a根据第一定时器11在基准时钟方波一个周期内的计数值获取MCU100的***时钟频率;具体地,***时钟频率获取步骤S406a根据公式Mclk=Count*n*m获取MCU100的***时钟频率。第一误差判断步骤判断***时钟频率获取步骤S405中获得的MCU的***时钟频率是否在误差范围内,如果获取的***时钟频率在误差范围内,执行校准步骤S407。第一误差判断步骤S406b中,将获取的不在误差范围内的***时钟频率判定为无效值,则不执行校准步骤S407,则第二定时器12依据默认值计数值进行定时。
第二实施例中,在校准步骤S407之后还可包括第二误差判断步骤S408:判断校准步骤S407中获取的第二定时器12定时i秒的实际计数值是否在误差范围内,如果获取的第二定时器12定时i秒的实际计数值在误差范围内,执行存储步骤S409,否则,将获取的实际计数值判定为无效值,不对其进行存储,则第二定时器12工作时将依据其默认计数值进行定时。
在第二实施例中,在存储步骤S409之后还可包括校验步骤S410:判断存储的第二定时器12的实际计数值是否正确,如果第二定时器12的实际计数值不正确,则使第二定时器12依据默认计数值进行定时,如果存储的第二定时器12的实际计数值正确,则使第二定时器12依据该实际计数值进行定时。
本发明的MCU内部时钟校准方法的第三实施例可包括上述基准时钟输出步骤S401、计数步骤S403、计数值获取步骤S405、校准步骤S407和存储步骤S409,还可包括***时钟频率获取步骤S406a和第一误差判断步骤S406b、校准步骤S408和/或第二误差判断模块S410,其可应用MCU内部时钟校准***的第三实施例进行内部时钟的校准。本发明MCU内部时钟校准方法的第三实施例与第一、第二实施例基本相同,区别包括:
在计数步骤S403中,不对基准时钟方波的时钟沿进行采集,而是通过中断触发模块19检测基准时钟方波的时钟沿并触发第一定时器11在基准时钟方波的两个时钟沿之间进行计数,第一定时器11的计数时钟频率为Mclk/nKhz。具体地,可通过检测MCU100的I/O口的信号变化来检测基准时钟方波的时钟沿,例如可在检测到第一个信号变化(例如从下降沿变为上升沿)时触发第一定时器11开始计数,并在检测到第三个信号变化(从上升沿变为下降沿之后再变为上升沿)时触发第一定时器11停止计数。在计数值获取步骤S405中,根据检测的基准时钟方波的两个时钟沿之间的时间与基准时钟方波的一个周期之间的比值获取第一定时器11在基准时钟方波的一个周期内的计数值,不再赘述。
本发明MCU内部时钟校准***及方法的上述实施例中,第一定时器和第二定时器可以是分时工作的同一个定时器,即该同一个定时器在进行计数以供获取其在基准时钟方波的一个周期内的计数值之后,可用作其它的定时器功能。通过该同一个定时器在基准时钟方波的一个周期内的计数值可获取其自身定时i秒时的实际计数值,可实现对自身的定时时间进行校准。
本发明的MCU内部时钟校准***及方法以及具有该***的印刷电路板通过在MCU外部加载基准时钟方波,通过第一定时器11在该基准时钟方波的一个周期内的计数值需要校准的第二定时器12的实际计数值,实现了对MCU内部时钟的校准,使得MCU中的定时器能够准确定时,相较现有技术中采用外部陶瓷振荡器或者晶体振荡器进行校准的方法,降低了成本,且故障几率小。
在本发明的***和方法中,显然,各部件或各步骤是可以分解、组合和/或分解后重新组合的。这些分解和/或重新组合应视为本发明的等效方案。同时,在上面对本发明具体实施例的描述中,针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
虽然已经详细说明了本发明及其优点,但是应当理解在不超出由所附的权利要求所限定的本发明的精神和范围的情况下可以进行各种改变、替代和变换。而且,本发明的范围不仅限于说明书所描述的过程、设备、手段、方法和步骤的具体实施例。本领域内的普通技术人员从本发明的公开内容将容易理解,根据本发明可以使用执行与在此所述的相应实施例基本相同的功能或者获得与其基本相同的结果的、现有和将来要被开发的过程、设备、手段、方法或者步骤。因此,所附的权利要求旨在在它们的范围内包括这样的过程、设备、手段、方法或者步骤。

Claims (15)

1.一种MCU内部时钟校准***,其特征在于,包括:
基准时钟源,连接至MCU的一个输入/输出接口,用于输出基准时钟方波;
第一定时器,设置在所述MCU内;
计数值获取模块,用于获取所述第一定时器在所述基准时钟方波的一个周期内的计数值;
校准模块,设置在所述MCU内,用于根据所述第一定时器在所述基准时钟方波的一个周期内的计数值获取待校准的第二定时器的实际计数值;
存储模块,设置在所述MCU内,用于存储所述第二定时器的实际计数值,以供所述第二定时器依据其实际计数值进行定时;
***时钟频率获取模块,用于根据所述第一定时器在所述基准时钟方波的一个周期内的计数值获取所述MCU的***时钟频率;
第一误差判断模块,用于确定所述***时钟频率获取模块获得的所述MCU的***时钟频率是否在误差范围内,如果获得的所述MCU的***时钟频率在误差范围内,触发所述校准模块。
2.根据权利要求1所述的MCU内部时钟校准***,其特征在于:所述校准模块具体用于根据第一公式iS_Count=i*1000*(p/(Count*m*n))获取所述第二定时器定时i秒的实际计数值,其中i为所述第二定时器定时的秒数,iS_Count为所述第二定时器定时i秒的实际计数值,p为所述第二定时器的时钟分频比,m为所述基准时钟方波的频率,n为所述第一定时器的时钟分频比,Count为所述第一定时器在所述基准时钟方波的一个周期内的计数值;m、iS_Count、p、n、i均大于0。
3.根据权利要求1所述的MCU内部时钟校准***,其特征在于:所述***时钟频率获取模块具体用于根据第二公式Mclk=Count*n*m获取所述MCU的***时钟频率,其中Mclk为所述MCU的***时钟频率,m为所述基准时钟方波的频率,n为所述第一定时器的时钟分频比,Count为所述第一定时器在所述基准时钟方波的一个周期内的计数值;m、iS_Count、p、n、i均大于0。
4.根据权利要求1所述的MCU内部时钟校准***,其特征在于,还包括第二误差判断模块,用于确定所述校准模块获取的所述第二定时器的实际计数值是否在误差范围内,如果所述校准模块获取的所述第二定时器的实际计数值在误差范围内,触发所述第二定时器依据所述校准模块获取的所述第二定时器的实际计数值进行定时,否则,触发所述第二定时器依据默认计数值进行定时。
5.根据权利要求1所述的MCU内部时钟校准***,其特征在于,还包括:
校验模块,用于判断所述存储模块中存储的所述第二定时器的实际计数值是否正确,如果所述存储模块中存储的所述第二定时器的实际计数值不正确,触发所述第二定时器依据默认计数值进行定时;如果所述存储模块中存储的所述第二定时器的实际计数值正确,触发所述第二定时器依据存储的所述第二定时器的实际计数值进行定时。
6.根据权利要求1-5任一项所述的MCU内部时钟校准***,其特征在于,
所述第一定时器还用于从所述输入/输出接口采集所述基准时钟方波的时钟沿并在采集的两个时钟沿之间进行计数;
所述计数值获取模块具体用于根据所述第一定时器采集的所述两个时钟沿之间的时间与所述基准时钟方波的一个周期之间的比值,获取所述第一定时器在所述基准时钟方波的一个周期内的计数值。
7.根据权利要求1-5任一项所述的MCU内部时钟校准***,其特征在于,还包括:
中断触发模块,用于检测所述基准时钟方波的两个时钟沿、在检测到所述两个时钟沿中的前一个时触发所述第一定时器计数并在检测到所述两个时钟沿中的后一个时触发所述第一定时器停止计数,所述计数值获取模块根据所述基准时钟方波的所述两个时钟沿之间的时间与所述基准时钟方波的一个周期之间的比值获取所述第一定时器在所述基准时钟方波的一个周期内的计数值。
8.一种印刷电路板,包括如权利要求1-7任一项所述的MCU内部时钟校准***。
9.一种MCU内部时钟校准方法,其特征在于,包括:
基准时钟输出步骤:向MCU的一个输入/输出接口加载基准时钟方波;
计数步骤:所述MCU第一定时器进行计数;
计数值获取步骤:获取所述第一定时器在所述基准时钟方波的一个周期内的计数值;
***时钟频率获取步骤:根据所述第一定时器在所述基准时钟方波的一个周期内的计数值获取所述MCU的***时钟频率;
第一误差判断步骤:判断所述***时钟频率获取模块获得的所述MCU的***时钟频率是否在误差范围内,如果获得的所述MCU的***时钟频率在误差范围内,执行所述校准步骤,否则,触发第二定时器依据默认计数值定时;
校准步骤:根据所述第一定时器在所述基准时钟方波的一个周期内的计数值获取待校准的第二定时器的实际计数值;以及
存储步骤:存储所述第二定时器的实际计数值,以供所述第二定时器依据其实际计数值进行定时。
10.根据权利要求9所述的MCU内部时钟校准方法,其特征在于,所述校准步骤具体根据第一公式iS_Count=i*1000*(p/(Count*m*n))获取所述第二定时器定时i秒的实际计数值,其中i为所述第二定时器定时的秒数,iS_Count为所述第二定时器定时i秒的实际计数值,p为所述第二定时器的时钟分频比,m为所述基准时钟方波的频率,n为所述第一定时器的时钟分频比,Count为所述第一定时器在所述基准时钟方波的一个周期内的计数值;m、iS_Count、p、n、i均大于0。
11.根据权利要求9所述的MCU内部时钟校准方法,其特征在于:所述***时钟频率获取步骤具体根据第二公式Mclk=Count*n*m获取所述MCU的***时钟频率,其中Mclk为所述MCU的***时钟频率,m为所述基准时钟方波的频率,n为所述第一定时器的时钟分频比,Count为所述第一定时器在所述基准时钟方波的一个周期内的计数值;m、iS_Count、p、n、i均大于0。
12.根据权利要求9所述的MCU内部时钟校准方法,其特征在于,所述校准步骤之后还包括:
第二误差判断步骤:判断所述校准步骤获取的所述第二定时器的实际计数值是否在误差范围内,如果所述第二定时器的实际计数值在误差范围内,执行所述存储步骤,否则,触发所述第二定时器依据默认计数值进行定时。
13.根据权利要求9所述的MCU内部时钟校准方法,其特征在于,所述存储步骤之后还包括:
校验步骤:判断所述存储步骤存储的所述第二定时器的实际计数值是否正确,如果存储的第二定时器的实际计数值不正确,触发所述第二定时器依据默认计数值进行定时,如果存储的所述第二定时器的实际计数值正确,触发所述第二定时器依据存储的所述第二定时器的实际计数值进行定时。
14.根据权利要求9-13任一项所述的MCU内部时钟校准方法,其特征在于,
所述计数步骤包括:所述第一定时器采集所述基准时钟方波的时钟沿;
所述计数值获取步骤根据所述第一定时器采集的基准时钟方波的两个时钟沿之间的时间与所述基准时钟方波的一个周期之间的比值获取所述第一定时器在所述基准时钟方波的一个周期内的计数值。
15.根据权利要求9-13任一项所述的MCU内部时钟校准方法,其特征在于,所述计数步骤包括:
触发所述第一定时器在所述基准时钟方波的两个时钟沿之间进行计数;
所述计数值获取步骤根据所述基准时钟方波的所述两个时钟沿之间的时间与所述基准时钟方波的一个周期之间的比值,获取所述第一定时器在所述基准时钟方波的一个周期内的计数值。
CN201210521294.3A 2012-12-06 2012-12-06 Mcu内部时钟校准***及方法及印刷电路板 Active CN103853081B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210521294.3A CN103853081B (zh) 2012-12-06 2012-12-06 Mcu内部时钟校准***及方法及印刷电路板

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210521294.3A CN103853081B (zh) 2012-12-06 2012-12-06 Mcu内部时钟校准***及方法及印刷电路板

Publications (2)

Publication Number Publication Date
CN103853081A CN103853081A (zh) 2014-06-11
CN103853081B true CN103853081B (zh) 2018-01-30

Family

ID=50860876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210521294.3A Active CN103853081B (zh) 2012-12-06 2012-12-06 Mcu内部时钟校准***及方法及印刷电路板

Country Status (1)

Country Link
CN (1) CN103853081B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103389644B (zh) * 2013-06-19 2017-02-08 杭州士兰微电子股份有限公司 一种定时***及定时方法
CN104993820A (zh) * 2015-07-07 2015-10-21 广东美的暖通设备有限公司 振荡器频率校验装置和方法
DE102016204965B4 (de) * 2016-03-24 2023-05-04 Wago Verwaltungsgesellschaft Mbh Sicherheitssteuerung und Verfahren zum Betreiben einer Sicherheitssteuerung
CN107239052B (zh) * 2017-05-23 2019-09-24 中国电子科技集团公司第四十一研究所 一种基于fpga实现的触发电平自动校准方法
CN108224498A (zh) * 2018-02-26 2018-06-29 广东美的厨房电器制造有限公司 电控***及多头电陶炉
CN111856916A (zh) * 2019-04-30 2020-10-30 联合汽车电子有限公司 一种外部时钟诊断方法
CN111736570A (zh) * 2020-06-02 2020-10-02 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) 控制器时钟频率检测方法、装置、计算机设备及存储介质
CN115202183A (zh) * 2022-07-21 2022-10-18 Oppo广东移动通信有限公司 传感器的时钟校准方法、装置、存储介质与电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6622103B1 (en) * 2000-06-20 2003-09-16 Formfactor, Inc. System for calibrating timing of an integrated circuit wafer tester
CN1225713C (zh) * 2003-01-15 2005-11-02 西安交通大学 智能电器专用芯片
US7548125B2 (en) * 2004-03-22 2009-06-16 Mobius Microsystems, Inc. Frequency calibration for a monolithic clock generator and timing/frequency reference
CN101763028B (zh) * 2009-12-31 2011-05-18 北京飞天诚信科技有限公司 时间校准的方法和装置
CN102289194B (zh) * 2011-08-19 2013-03-13 深圳和而泰智能控制股份有限公司 运行时钟的方法及装置
CN102721865B (zh) * 2012-06-04 2015-06-17 惠州Tcl移动通信有限公司 一种用于测量晶振准确性的方法和***

Also Published As

Publication number Publication date
CN103853081A (zh) 2014-06-11

Similar Documents

Publication Publication Date Title
CN103853081B (zh) Mcu内部时钟校准***及方法及印刷电路板
CN104901687B (zh) 时钟频率校准方法和***
CN105549379B (zh) 一种基于高精度时间基准触发的同步测量装置及方法
CN103293463B (zh) 振荡电路、集成电路及异常检测方法
CN111443587B (zh) 一种外部时钟校准方法及***
CN102176112B (zh) Mcu内置rtc实现时钟精确计时的方法
TWI273367B (en) Method and device for calibrating monitor clocks
CN112327766B (zh) 一种核安全级dcs***的高频脉冲计数***及测量方法
CN107040243A (zh) 低频精密振荡器
CN103487649A (zh) 一种兼容连续波和脉冲调制载波频率测量的方法及装置
US9054851B2 (en) Dithering circuit for serial data transmission
US20130018615A1 (en) Method and system for measuring frequency
CN104133520A (zh) 一种嵌入式处理器片内振荡器的高精度校准方法
CN109407498A (zh) 一种电能表时钟测试方法及电能表时钟测试装置
CN105699683A (zh) 一种汽轮机转速测量方法及***
CN105829989A (zh) 微型计算机及其时钟的修正方法
US20140143595A1 (en) Microcomputer runaway monitoring device
CN105892560A (zh) 一种用于嵌入式***的时钟检测方法及***
CN113970698A (zh) 一种校准片外晶振的方法与***
CN108230660B (zh) 控制方法及控制装置、存储介质及遥控器
CN106645785B (zh) 用于测量编码器信号频率的装置、方法及运行检测装置
CN117111681A (zh) 芯片时钟的校准方法、装置、设备及存储介质
CN102457268A (zh) 32位捕获寄存器的实现方法
CN207424736U (zh) 一种自动校准时钟频率的***
KR20190064469A (ko) 맥동하는 측정 변수들의 평균화 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant