一种HSI时钟频率的校准方法和装置
技术领域
本发明涉及芯片技术领域,特别是涉及一种HSI时钟频率的校准方法和一种HSI时钟频率的校准装置。
背景技术
近年来,随着物联网和汽车电子的发展,32位MCU(Microcontroller Unit,微控制单元)的应用越来越广泛,32位MCU应用产品的种类也越来越多样化。HSI(High SpeedInternal Clock Signal,高速内部时钟)是32位MCU内部的高速RC振荡电路,HSI可以给MCU提供基准的时钟频率。但是,现有制造工艺使得不同MCU芯片的HSI时钟频率不同,因此,需要对HSI时钟频率进行校准。
目前,32位MCU(Microcontroller Unit,微控制单元)的生产测试选用性能比较先进的ATE(Automatic Test Equipment,自动测试机)机台。一般通过Socket(带有弹簧针的插座)和DUT(Device Under Test,测试设备)Board(板)将MCU和ATE机台的母板连接,以对MCU进行FT(Final Test,最终测试)测试。其中,Socket分为老化测试插座和POGO Pin(弹簧针式)测试插座两种,DUT Board与ATE机台的母板之间的连接方式分为Din connect(欧式插座直连)方式和40cm长的Cable排线连接方式两种。
现有技术中HSI时钟频率的校准方法为:通过ATE机台测量HSI输出的时钟频率F1,将时钟频率F1代入固定的校准公式,算出校准步长值C1后,将C1写入HSITRIM寄存器里来实现对HSI时钟频率的校准,并可依据校准后的HSI频率是否达到在目标频率范围内,来决定是否需要再次采用上述步骤进行校准。
现有技术中HSI时钟频率的校准方法存在以下缺点:Socket、DUT Board以及ATE机台的母板两两之间存在接触阻抗,Cable排线的寄生电容会引起负载效应,这两者都会对ATE机台测量HSI时钟频率F1的准确性产生影响,从而使校准公式算出的校准步长值C1偏差很大,对HSI时钟频率的校准精度很低。
发明内容
鉴于上述问题,本发明实施例的目的在于提供一种HSI时钟频率的校准方法和相应的一种HSI时钟频率的校准装置,以解决现有技术中HSI时钟频率的校准方法存在的对HSI时钟频率的校准精度很低的问题。
为了解决上述问题,本发明实施例公开了一种HSI时钟频率的校准方法,包括:
在HSI分频后一个时钟周期内,通过MCU内部的计数器计数MCU外部预设精准时钟的第一时钟周期数;
根据预设频率计算公式和所述第一时钟周期数获取HSI的第一频率值;
根据第一校准公式和所述第一频率值获取第一步长校准值以更新HSI时钟频率;
在HSI分频后一个时钟周期内,通过所述计数器计数所述预设精准时钟的第二时钟周期数;
根据所述预设频率计算公式和所述第二时钟周期数获取HSI的第二频率值;
若所述第二频率值在目标频率范围内,则完成对所述HSI时钟频率的校准。
可选地,若所述第二频率值不在所述目标频率范围内,所述校准方法还包括:
根据所述第二频率值、所述第一频率值、所述第一步长校准值以及预设步长频率计算公式获取第一动态步长对应的频率值;
根据第二校准公式、所述第一步长校准值、所述第二频率值以及所述第一动态步长对应的频率值获取第二步长校准值以更新HSI时钟频率;
在HSI分频后一个时钟周期内,通过所述计数器计数所述预设精准时钟的第三时钟周期数;
根据所述预设频率计算公式和所述第三时钟周期数获取HSI的第三频率值;
若所述第三频率值在所述目标频率范围内,则完成对所述HSI时钟频率的校准。
可选地,若所述第三频率值不在所述目标频率范围内,所述校准方法还包括:
将第二频率值作为第一频率值,将所述第三频率值作为所述第二频率值,以及将所述第二步长校准值作为所述第一步长校准值,返回所述根据所述第二频率值、所述第一频率值、所述第一步长校准值以及预设步长频率计算公式获取第一动态步长对应的频率值的步骤。
可选地,在所述更新HSI时钟频率的步骤之后,所述校准方法还包括:
将HSI时钟频率的校准次数加一。
可选地,在所述完成对所述HSI时钟频率的校准的步骤之前,所述校准方法还包括:
若所述HSI时钟频率的校准次数大于或等于预设次数,则退出对所述HSI时钟的频率校准。
本发明实施例的HSI时钟频率的校准方法包括以下优点:首先在HSI分频后一个时钟周期内,通过MCU内部的计数器计数MCU外部预设精准时钟的第一时钟周期数,进而根据预设频率计算公式和第一时钟周期数获取HSI的第一频率值,之后根据第一校准公式和第一频率值获取第一步长校准值以更新HSI时钟频率,并且在HSI分频后一个时钟周期内,通过计数器计数预设精准时钟的第二时钟周期数之后,根据预设频率计算公式和第二时钟周期数获取HSI的第二频率值,此时,若第二频率值在目标频率范围内,则完成对HSI时钟频率的校准。由于在对HSI时钟频率的校准的过程中,第一频率值和第二频率值均不是HSI直接输出的时钟频率,而是根据预设频率计算公式和MCU外部预设精准时钟的时钟周期数获取,因此,Socket、DUT Board以及ATE机台的母板两两之间存在的接触阻抗,以及Cable排线的寄生电容引起的负载效应,均不会影响第一频率值、第二频率值和第一步长校准值的大小,大大提高了本发明实施例的HSI时钟频率的校准方法对HSI时钟频率的校准精度。
为了解决上述问题,本发明实施例公开了一种HSI时钟频率的校准装置,包括:
第一时钟周期数获取模块,用于在HSI分频后一个时钟周期内,通过MCU内部的计数器计数MCU外部预设精准时钟的第一时钟周期数;
第一频率值获取模块,用于根据预设频率计算公式和所述第一时钟周期数获取HSI的第一频率值;
第一时钟频率更新模块,用于根据第一校准公式和所述第一频率值获取第一步长校准值以更新HSI时钟频率;
第二时钟周期数获取模块,用于在HSI分频后一个时钟周期内,通过所述计数器计数所述预设精准时钟的第二时钟周期数;
第二频率值获取模块,用于根据所述预设频率计算公式和所述第二时钟周期数获取HSI的第二频率值;
第一校准完成模块,用于在所述第二频率值在目标频率范围内时,完成对所述HSI时钟频率的校准。
可选地,若所述第二频率值不在所述目标频率范围内,所述校准装置还包括:
第一动态步长对应的频率值获取模块,用于根据所述第二频率值、所述第一频率值、所述第一步长校准值以及预设步长频率计算公式获取第一动态步长对应的频率值;
第二时钟频率更新模块,用于根据第二校准公式、所述第一步长校准值、所述第二频率值以及所述第一动态步长对应的频率值获取第二步长校准值以更新HSI时钟频率;
第三时钟周期数获取模块,用于在HSI分频后一个时钟周期内,通过所述计数器计数所述预设精准时钟的第三时钟周期数;
第三频率值获取模块,用于根据所述预设频率计算公式和所述第三时钟周期数获取HSI的第三频率值;
第二校准完成模块,用于在所述第三频率值在所述目标频率范围内时,完成对所述HSI时钟频率的校准。
可选地,若所述第三频率值不在所述目标频率范围内,所述校准装置还包括:
返回模块,用于将第二频率值作为第一频率值,将所述第三频率值作为所述第二频率值,以及将所述第二步长校准值作为所述第一步长校准值,返回所述第一动态步长对应的频率值获取模块。
可选地,在所述时钟频率更新模块更新HSI时钟频率之后,所述校准装置还包括:
校准次数增加模块,用于将HSI时钟频率的校准次数加一。
可选地,在所述校准完成模块完成对所述HSI时钟频率的校准之前,所述校准装置还包括:
退出模块,用于在所述HSI时钟频率的校准次数大于或等于预设次数时,退出对所述HSI时钟的频率校准。
本发明实施例的HSI时钟频率的校准装置包括以下优点:首先在HSI分频后一个时钟周期内,第一时钟周期数获取模块通过MCU内部的计数器计数MCU外部预设精准时钟的第一时钟周期数,进而第一频率值获取模块根据预设频率计算公式和第一时钟周期数获取HSI的第一频率值,之后第一时钟频率更新模块根据第一校准公式和第一频率值获取第一步长校准值以更新HSI时钟频率,并且在HSI分频后一个时钟周期内,第二时钟周期数获取模块通过计数器计数预设精准时钟的第二时钟周期数之后,第二频率值获取模块根据预设频率计算公式和第二时钟周期数获取HSI的第二频率值,此时,若第二频率值在目标频率范围内,则第一校准完成模块完成对HSI时钟频率的校准。由于在对HSI时钟频率的校准的过程中,第一频率值和第二频率值均不是HSI直接输出的时钟频率,而是根据预设频率计算公式和MCU外部预设精准时钟的时钟周期数获取,因此,Socket、DUT Board以及ATE机台的母板两两之间存在的接触阻抗,以及Cable排线的寄生电容引起的负载效应,均不会影响第一频率值、第二频率值和第一步长校准值的大小,大大提高了本发明实施例的HSI时钟频率的校准装置对HSI时钟频率的校准精度。
附图说明
图1是本发明的一种HSI时钟频率的校准方法实施例的步骤流程图;
图2是本发明的另一种HSI时钟频率的校准方法实施例的步骤流程图;
图3是本发明的一种HSI时钟频率的校准装置实施例的结构框图;
图4是本发明的另一种HSI时钟频率的校准装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
参照图1,其示出了本发明的一种HSI时钟频率的校准方法实施例的步骤流程图,具体可以包括如下步骤:
S1,在HSI分频后一个时钟周期内,通过MCU内部的计数器计数MCU外部预设精准时钟的第一时钟周期数。
在本发明的一个实施例中,MCU外部预设精准时钟可以由ATE机台提供,其中,MCU外部预设精准时钟的频率由HSI时钟频率的目标频率确定。例如,若HSI时钟频率的目标频率为8MHz,则MCU外部预设精准时钟的频率为8MHz;若HSI时钟频率的目标频率为14MHz,则MCU外部预设精准时钟的频率为14MHz;若HSI时钟频率的目标频率为28MHz,则MCU外部预设精准时钟的频率为28MHz,以此类推。
S2,根据预设频率计算公式和第一时钟周期数获取HSI的第一频率值。
可选地,预设频率计算公式可以为如下计算公式:
HSI频率(MHz)=目标频率*分频系数/时钟周期数(MHz)
其中,分频系数为预设的固定值。
在步骤S2中,第一频率值=目标频率*分频系数/第一时钟周期数。
S3,根据第一校准公式和第一频率值获取第一步长校准值以更新HSI时钟频率。
可选地,第一校准公式可以为如下计算公式:
步长校准值=128+(目标频率-HSI频率值)/固定步长值
在步骤S3中,第一步长校准值=128+(目标频率-第一频率值)/固定步长值。
可选地,在本发明实施例中,步骤S3可以将第一步长校准值写入MCU内部的HSITRIM寄存器,以更新HSI时钟频率。
S4,在HSI分频后一个时钟周期内,通过计数器计数预设精准时钟的第二时钟周期数。
S5,根据预设频率计算公式和第二时钟周期数获取HSI的第二频率值。
在步骤S5中,第二频率值=目标频率*分频系数/第二时钟周期数
S6,若第二频率值在目标频率范围内,则完成对HSI时钟频率的校准。
其中,若第二频率值在目标频率范围内,则说明第二频率值与目标频率之间的差值很小,即此时,将第二频率值作为校准后的HSI时钟频率,HSI时钟频率的校准误差很小,对HSI时钟频率的校准精度高。
本发明实施例一的HSI时钟频率的校准方法包括以下优点:首先在HSI分频后一个时钟周期内,通过MCU内部的计数器计数MCU外部预设精准时钟的第一时钟周期数,进而根据预设频率计算公式和第一时钟周期数获取HSI的第一频率值,之后根据第一校准公式和第一频率值获取第一步长校准值以更新HSI时钟频率,并且在HSI分频后一个时钟周期内,通过计数器计数预设精准时钟的第二时钟周期数之后,根据预设频率计算公式和第二时钟周期数获取HSI的第二频率值,此时,若第二频率值在目标频率范围内,则完成对HSI时钟频率的校准。由于在对HSI时钟频率的校准的过程中,第一频率值和第二频率值均不是HSI直接输出的时钟频率,而是根据预设频率计算公式和MCU外部预设精准时钟的时钟周期数获取,因此,Socket、DUT Board以及ATE机台的母板两两之间存在的接触阻抗,以及Cable排线的寄生电容引起的负载效应,均不会影响第一频率值、第二频率值和第一步长校准值的大小,大大提高了本发明实施例的HSI时钟频率的校准方法对HSI时钟频率的校准精度。
实施例二
参照图2,其示出了本发明的另一种HSI时钟频率的校准方法实施例的步骤流程图,具体可以包括如下步骤:
S10,在HSI分频后一个时钟周期内,通过MCU内部的计数器计数MCU外部预设精准时钟的第一时钟周期数。
在本发明的一个实施例中,MCU外部预设精准时钟可以由ATE机台提供,其中,MCU外部预设精准时钟的频率由HSI时钟频率的目标频率确定。例如,若HSI时钟频率的目标频率为8MHz,则MCU外部预设精准时钟的频率为8MHz;若HSI时钟频率的目标频率为14MHz,则MCU外部预设精准时钟的频率为14MHz;若HSI时钟频率的目标频率为28MHz,则MCU外部预设精准时钟的频率为28MHz,以此类推。
S20,根据预设频率计算公式和第一时钟周期数获取HSI的第一频率值。
可选地,预设频率计算公式可以为如下计算公式:
HSI频率(MHz)=目标频率*分频系数/时钟周期数(MHz)
其中,分频系数为预设的固定值。
在步骤S20中,第一频率值=目标频率*分频系数/第一时钟周期数。
S30,根据第一校准公式和第一频率值获取第一步长校准值以更新HSI时钟频率。
可选地,第一校准公式可以为如下计算公式:
步长校准值=128+(目标频率-HSI频率值)/固定步长值
在步骤S30中,第一步长校准值=128+(目标频率-第一频率值)/固定步长值。
可选地,在本发明实施例中,步骤S30可以将第一步长校准值写入MCU内部的HSITRIM寄存器,以更新HSI时钟频率。
S40,在HSI分频后一个时钟周期内,通过计数器计数预设精准时钟的第二时钟周期数。
S50,根据预设频率计算公式和第二时钟周期数获取HSI的第二频率值。
在步骤S50中,第二频率值=目标频率*分频系数/第二时钟周期数
S60,若第二频率值在目标频率范围内,则完成对HSI时钟频率的校准。
其中,若第二频率值在目标频率范围内,则说明第二频率值与目标频率之间的差值很小,即此时,将第二频率值作为校准后的HSI时钟频率,HSI时钟频率的校准误差很小,对HSI时钟频率的校准精度高。
S70,若第二频率值不在目标频率范围内,根据第二频率值、第一频率值、第一步长校准值以及预设步长频率计算公式获取第一动态步长对应的频率值。
若第二频率值不在目标频率范围内,则说明第二频率值与目标频率之间的差值很大,第二频率无法满足HSI时钟频率的精度要求,需要继续对HSI时钟频率进行校准。
可选地,预设步长频率计算公式可以为如下计算公式:
动态步长对应的频率值=(频率值2-频率值1)/(步长校准值-128)
在步骤S70中,频率值2为第二频率值,频率值1为第一频率值,步长校准值为第一步长校准值,则:
第一动态步长对应的频率值=(第二频率值-第一频率值)/(第一步长校准值-128)
S80,根据第二校准公式、第一步长校准值、第二频率值以及第一动态步长对应的频率值获取第二步长校准值以更新HSI时钟频率。
可选地,第二校准公式可以为如下计算公式:
步长校准值=[(8/当前动态步长对应的频率值+上一步长校准值)-当前频率值/当前动态步长对应的频率值]
其中,[]为取整符号。
步骤S80中,当前动态步长对应的频率值为第一动态步长对应的频率值,上一步长校准值为第一步长校准值,当前频率值为第二频率值。
因此,在步骤S80中,第一动态步长对应的频率值=[(8/第一动态步长对应的频率值+第一步长校准值)-第二频率值/第一动态步长对应的频率值]。
可选地,在本发明实施例中,步骤S80可以将第一步长校准值写入MCU内部的HSITRIM寄存器,以更新HSI时钟频率。
S90,在HSI分频后一个时钟周期内,通过计数器计数预设精准时钟的第三时钟周期数。
S100,根据预设频率计算公式和第三时钟周期数获取HSI的第三频率值。
在步骤S100中,第三频率值=目标频率*分频系数/第三时钟周期数。
S110,若第三频率值在目标频率范围内,则完成对HSI时钟频率的校准。
其中,若第三频率值在目标频率范围内,则说明第三频率值与目标频率之间的差值很小,即此时,将第三频率值作为校准后的HSI时钟频率,HSI时钟频率的校准误差很小,对HSI时钟频率的校准精度高。
S120,若第三频率值不在目标频率范围内,将第二频率值作为第一频率值,将第三频率值作为第二频率值,以及将第二步长校准值作为第一步长校准值,返回根据第二频率值、第一频率值、第一步长校准值以及预设步长频率计算公式获取第一动态步长对应的频率值的步骤。
若第三频率值不在目标频率范围内,则说明第三频率值与目标频率之间的差值很大,第三频率无法作为满足HSI时钟频率的精度要求,需要继续对HSI时钟频率进行校准。
在步骤S120中,第一动态步长对应的频率值=(频率值2-频率值1)/(步长校准值-128),此时,频率值2=第三频率值,频率值1=第二频率值,步长校准值=第二步长校准值。
其中,步骤S120返回根据第二频率值、第一频率值、第一步长校准值以及预设步长频率计算公式获取第一动态步长对应的频率值的步骤,即步骤S120进入步骤S70及步骤S70之后的步骤,并循环往复,直至完成对HSI时钟频率的校准。
可选地,在步骤S30和步骤S80更新HSI时钟频率的步骤之后,校准方法还可以包括:
S130,将HSI时钟频率的校准次数加一。
其中,步骤S130可以用加法器实现。
需要说明的是,可以在进入步骤S10前,或在步骤S60或步骤S110后,设置校准次数为零。
可选地,在步骤S60或步骤S110完成对HSI时钟频率的校准的步骤之前,校准方法还可以包括:
S140,若HSI时钟频率的校准次数大于或等于预设次数,则退出对HSI时钟的频率校准。
其中,若HSI时钟频率的校准次数大于或等于预设次数,说明对HSI时钟的频率校准多次均无法使HSI时钟的频率落在目标频率范围内。
通过步骤S130和步骤S140,可以避免对HSI时钟的频率校准无限次进行,浪费ATE机台的资源,提高ATE机台的测试效率。
具体地,步骤S140在步骤S60完成对HSI时钟频率的校准的步骤之前,若HSI时钟频率的校准次数小于预设次数,则进入步骤S60。
具体地,步骤S140在步骤S110完成对HSI时钟频率的校准的步骤之前,若HSI时钟频率的校准次数小于预设次数,则进入步骤S110。
本发明实施例二的HSI时钟频率的校准方法包括以下优点:首先在HSI分频后一个时钟周期内,通过MCU内部的计数器计数MCU外部预设精准时钟的第一时钟周期数,进而根据预设频率计算公式和第一时钟周期数获取HSI的第一频率值,之后根据第一校准公式和第一频率值获取第一步长校准值以更新HSI时钟频率,并且在HSI分频后一个时钟周期内,通过计数器计数预设精准时钟的第二时钟周期数之后,根据预设频率计算公式和第二时钟周期数获取HSI的第二频率值,此时,若第二频率值在目标频率范围内,则完成对HSI时钟频率的校准。若第二频率值不在目标频率范围内,则根据第二频率值、第一频率值、第一步长校准值以及预设步长频率计算公式获取第一动态步长对应的频率值,进而根据第二校准公式、第一步长校准值、第二频率值以及第一动态步长对应的频率值获取第二步长校准值以更新HSI时钟频率,之后在HSI分频后一个时钟周期内,通过计数器计数预设精准时钟的第三时钟周期数,在根据预设频率计算公式和第三时钟周期数获取HSI的第三频率值之后,若第三频率值在目标频率范围内,则完成对HSI时钟频率的校准,若否,将第二频率值作为第一频率值,将第三频率值作为第二频率值,以及将第二步长校准值作为第一步长校准值,返回根据第二频率值、第一频率值、第一步长校准值以及预设步长频率计算公式获取第一动态步长对应的频率值的步骤,循环往复,直至完成对HSI时钟频率的校准。由于在对HSI时钟频率的校准的过程中,各频率值均不是HSI直接输出的时钟频率,而是根据预设频率计算公式和MCU外部预设精准时钟的时钟周期数获取,因此,Socket、DUT Board以及ATE机台的母板两两之间存在的接触阻抗,以及Cable排线的寄生电容引起的负载效应,均不会影响各频率值、第一步长校准值和第一动态步长对应的频率值的大小,大大提高了本发明实施例的HSI时钟频率的校准方法对HSI时钟频率的校准精度;另外,由于在每次循环中,第一动态步长对应的频率值根据上一次循环中的频率值和步长校准值获取,因此,在多次循环中,第一动态步长对应的频率值不是固定大小,第二校准公式采用变化的每一步的步长,有效减小了根据第二步长校准值计算出的频率值的偏差,进一步提高了本发明实施例的HSI时钟频率的校准方法对HSI时钟频率的校准精度。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例三
参照图3,其示出了本发明的一种HSI时钟频率的校准装置实施例的结构框图,具体可以包括如下模块:
第一时钟周期数获取模块1,用于在HSI分频后一个时钟周期内,通过MCU内部的计数器计数MCU外部预设精准时钟的第一时钟周期数。
第一频率值获取模块2,用于根据预设频率计算公式和第一时钟周期数获取HSI的第一频率值。
第一时钟频率更新模块3,用于根据第一校准公式和第一频率值获取第一步长校准值以更新HSI时钟频率。
第二时钟周期数获取模块4,用于在HSI分频后一个时钟周期内,通过计数器计数预设精准时钟的第二时钟周期数。
第二频率值获取模块5,用于根据预设频率计算公式和第二时钟周期数获取HSI的第二频率值。
第一校准完成模块6,用于在第二频率值在目标频率范围内时,完成对HSI时钟频率的校准。
本发明实施例三的HSI时钟频率的校准装置包括以下优点:首先第一时钟周期数获取模块在HSI分频后一个时钟周期内,通过MCU内部的计数器计数MCU外部预设精准时钟的第一时钟周期数,进而第一频率值获取模块根据预设频率计算公式和第一时钟周期数获取HSI的第一频率值,之后第一时钟频率更新模块根据第一校准公式和第一频率值获取第一步长校准值以更新HSI时钟频率,并且第二时钟周期数获取模块在HSI分频后一个时钟周期内,通过计数器计数预设精准时钟的第二时钟周期数之后,第二频率值获取模块根据预设频率计算公式和第二时钟周期数获取HSI的第二频率值,此时,若第二频率值在目标频率范围内,第一校准完成模块则完成对HSI时钟频率的校准。由于在对HSI时钟频率的校准的过程中,第一频率值和第二频率值均不是HSI直接输出的时钟频率,而是根据预设频率计算公式和MCU外部预设精准时钟的时钟周期数获取,因此,Socket、DUT Board以及ATE机台的母板两两之间存在的接触阻抗,以及Cable排线的寄生电容引起的负载效应,均不会影响第一频率值、第二频率值和第一步长校准值的大小,大大提高了本发明实施例的HSI时钟频率的校准装置对HSI时钟频率的校准精度。
实施例四
参照图4,其示出了本发明的另一种HSI时钟频率的校准装置实施例的结构框图,具体可以包括如下模块:
第一时钟周期数获取模块10,用于在HSI分频后一个时钟周期内,通过MCU内部的计数器计数MCU外部预设精准时钟的第一时钟周期数。
第一频率值获取模块20,用于根据预设频率计算公式和第一时钟周期数获取HSI的第一频率值。
第一时钟频率更新模块30,用于根据第一校准公式和第一频率值获取第一步长校准值以更新HSI时钟频率。
第二时钟周期数获取模块40,用于在HSI分频后一个时钟周期内,通过计数器计数预设精准时钟的第二时钟周期数。
第二频率值获取模块50,用于根据预设频率计算公式和第二时钟周期数获取HSI的第二频率值。
第一校准完成模块60,用于在第二频率值在目标频率范围内时,完成对HSI时钟频率的校准。
第一动态步长对应的频率值获取模块70,若第二频率值不在目标频率范围内,第一动态步长对应的频率值获取模块用于根据第二频率值、第一频率值、第一步长校准值以及预设步长频率计算公式获取第一动态步长对应的频率值。
第二时钟频率更新模块80,用于根据第二校准公式、第一步长校准值、第二频率值以及第一动态步长对应的频率值获取第二步长校准值以更新HSI时钟频率。
第三时钟周期数获取模块90,用于在HSI分频后一个时钟周期内,通过计数器计数预设精准时钟的第三时钟周期数。
第三频率值获取模块100,用于根据预设频率计算公式和第三时钟周期数获取HSI的第三频率值。
第二校准完成模块110,用于在第三频率值在目标频率范围内时,完成对HSI时钟频率的校准。
返回模块120,若第三频率值不在目标频率范围内,返回模块用于将第二频率值作为第一频率值,将第三频率值作为第二频率值,以及将第二步长校准值作为第一步长校准值,返回第一动态步长对应的频率值获取模块。
可选地,在时钟频率更新模块(第一时钟频率更新模块30和第二时钟频率更新模块80)更新HSI时钟频率之后,校准装置还可以包括:
校准次数增加模块130,用于将HSI时钟频率的校准次数加一。
可选地,在校准完成模块(第一校准完成模块60和第二校准完成模块110)完成对HSI时钟频率的校准之前,校准装置还可以包括:
退出模块140,用于在HSI时钟频率的校准次数大于或等于预设次数时,退出对HSI时钟的频率校准。
本发明实施例四的HSI时钟频率的校准装置包括以下优点:首先第一时钟周期数获取模块在HSI分频后一个时钟周期内,通过MCU内部的计数器计数MCU外部预设精准时钟的第一时钟周期数,进而第一频率值获取模块根据预设频率计算公式和第一时钟周期数获取HSI的第一频率值,之后第一时钟频率更新模块根据第一校准公式和第一频率值获取第一步长校准值以更新HSI时钟频率,并且第二时钟周期数获取模块在HSI分频后一个时钟周期内,通过计数器计数预设精准时钟的第二时钟周期数之后,第二频率值获取模块根据预设频率计算公式和第二时钟周期数获取HSI的第二频率值,此时,若第二频率值在目标频率范围内,第一校准完成模块则完成对HSI时钟频率的校准。若第二频率值不在目标频率范围内,第一动态步长对应的频率值获取模块则根据第二频率值、第一频率值、第一步长校准值以及预设步长频率计算公式获取第一动态步长对应的频率值,进而第二时钟频率更新模块根据第二校准公式、第一步长校准值、第二频率值以及第一动态步长对应的频率值获取第二步长校准值以更新HSI时钟频率,之后第三时钟周期数获取模块在HSI分频后一个时钟周期内,通过计数器计数预设精准时钟的第三时钟周期数,第三频率值获取模块在根据预设频率计算公式和第三时钟周期数获取HSI的第三频率值之后,若第三频率值在目标频率范围内,第二校准完成模块则完成对HSI时钟频率的校准,若否,返回模块将第二频率值作为第一频率值,将第三频率值作为第二频率值,以及将第二步长校准值作为第一步长校准值,返回第一动态步长对应的频率值获取模块,循环往复,直至完成对HSI时钟频率的校准。由于在对HSI时钟频率的校准的过程中,各频率值均不是HSI直接输出的时钟频率,而是根据预设频率计算公式和MCU外部预设精准时钟的时钟周期数获取,因此,Socket、DUT Board以及ATE机台的母板两两之间存在的接触阻抗,以及Cable排线的寄生电容引起的负载效应,均不会影响各频率值、第一步长校准值和第一动态步长对应的频率值的大小,大大提高了本发明实施例的HSI时钟频率的校准装置对HSI时钟频率的校准精度;另外,由于在每次循环中,第一动态步长对应的频率值根据上一次循环中的频率值和步长校准值获取,因此,在多次循环中,第一动态步长对应的频率值不是固定大小,第二校准公式采用变化的每一步的步长,有效减小了根据第二步长校准值计算出的频率值的偏差,进一步提高了本发明实施例的HSI时钟频率的校准装置对HSI时钟频率的校准精度。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种HSI时钟频率的校准方法和一种HSI时钟频率的校准装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。