一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种芯片时钟频率修调方法、烧录方法和烧录器与流程

2022-04-27 10:32:21 来源:中国专利 TAG:


1.本发明涉及程序烧录技术领域,尤其涉及一种芯片时钟频率修调方法、烧录方法和烧录器。


背景技术:

2.时钟是一个mcu最重要的模块,如果时钟频率出现偏差,会造成mcu工作不正常,所以在烧录时,需要对时钟频率进行修调和判断。现有的频率修调方法往往速度较慢,与频率的中心值往往偏差较大。


技术实现要素:

3.本发明提供了一种芯片时钟频率修调方法,该方法能够解决现有技术中,修调后的频率值与目标值差距大的问题。
4.本发明采用了如下技术方案:一种芯片时钟频率修调方法,其特征在于,包括确定目标修调值的数据容量;将所述数据容量的最大值和最小值分别写入待修调芯片,并获得对应的时钟频率修调测试结果;判断所述时钟频率修调测试结果是否落入预设时钟频率范围;若所述数据容量的最大值和/或最小值所对应的时钟频率修调结果落入预设时钟频率范围,则通过二分法查找所述数据容量内满足预设条件的目标修调值,其中所述预设条件包括其中所述目标修调值所对应的时钟频率最接近所述时钟频率范围的中心值;将所述目标修调值写入所述待修调芯片。
5.进一步地,所述目标修调值的数据容量包括一组0和1组成的8位二进制序列,其中,所述数据容量的最大值为ff,所述数据容量的最小值为00。
6.进一步地,所述通过二分法查找所述数据容量内满足预设条件的目标修调值,包括:s100:在所述数据容量的低位全部为1的情况下,选取所述数据容量的高位中间值,将所述高位中间值对应的时钟频率与所述时钟频率范围的中心值进行对比;s110:若所述高位中间值所对应的时钟频率大于所述时钟频率范围的中心值,将高位中间值赋值给数据容量的最小值,若所述高位中间值所对应的时钟频率小于所述时钟频率范围的中心值,将所述高位中间值赋值给数据容量的最大值;s120:循环s100和s110,当所述数据容量最大值的高位与所述数据容量最小值的高位为相邻顺序时,进入s130;s130:当所述数据容量最大值的高位与所述数据容量最小值的高位为相邻顺序时,选取数据容量的低位中间值;s140:若所述低位中间值所对应的时钟频率大于所述时钟频率范围的中心值,将低位中间值赋值给数据容量的最小值,若所述低位中间值所对应的时钟频率小于所述时钟
频率范围的中心值,将所述低位中间值赋值给数据容量的最大值;s150:循环s130和s140,当所述数据容量最大值与所述数据容量最小值之间仅存在唯一值时,退出循环,所述唯一值为目标修调值。
7.进一步地,所述通过二分法查找所述数据容量内满足预设条件的目标修调值,还包括:若所述高位中间值所对应的时钟频率等于所述时钟频率范围的中心值,则所述高位中间值为目标修调值,退出查找;若所述低位中间值所对应的时钟频率等于所述时钟频率范围的中心值,则所述低位中间值为目标修调值,退出查找。
8.进一步地,所述通过二分法查找所述数据容量内满足预设条件的目标修调值,还包括:对所述唯一值加1或减1运算,将运算后的数值所对应的时钟频率与所述时钟频率范围的中心值比对,如果差距小于所述唯一值所对应的时钟频率到所述时钟频率范围的中心值的差距,则运算后的数值为目标修调值,反正则所述唯一值为目标修调值。
9.本发明还提供了一种含有双通道只读存储器的芯片的烧录方法,具体方案包括:对芯片时钟频率进行修调,修调时上述任一所述的芯片时钟频率修调方法;对芯片配置区进行配置数据烧录,每一位烧录地址烧录完毕后,对该烧录地址进行所述配置数据的复烧;对芯片主程序区进行指令数据烧录,每一位烧录地址烧录完毕后,对该烧录地址进行所述指令数据的复烧;对烧录完毕的所述配置数据和所述指令数据进行整体读取校验。
10.进一步地,在对芯片配置区和芯片主程序区烧录前需要对只读存储器的通道进行选择。
11.进一步地,在对芯片配置区和芯片主程序区烧录的过程中,每一位地址烧录完毕后,对其进行数据的检验,检验通过后则进行下一位地址的烧录,检验不通过则退出烧录。
12.进一步地,对芯片主程序区烧录时采用分区烧录。
13.本发明还提供了一种烧录器,包括存储器和处理器,所述存储器和所述处理器通信连接,所述存储器用于存储计算机指令,所述处理器用于加载并执行所述计算机指令,以实现上述任一所述的含有双通道只读存储器的芯片的烧录方法。
14.本发明的有益效果:本发明通过采用二分法查找修调值能够快速找出最接近目标频率的修调值,通过对修调值加1或减1的操作能够在原有修调值的基础上,判断相邻的修调值是否比通过二分法查找的修调值更加接近目标频率,以此解决修调后的频率值与目标值差距大的问题。
附图说明
15.图1为本发明芯片时钟频率修调方法的流程图。
16.图2为本发明芯片时钟频率修调方法中判断能否修调的流程图。
17.图3为本发明含有双通道只读存储器的芯片的烧录方法的流程图。
18.图4为本发明烧录方法中配置区烧录的流程图。
19.图5为本发明烧录方法中主程序区烧录的流程图。
20.图6为本发明烧录方法中快速校验的流程图。
21.图7为本发明烧录器的结构示意图。
具体实施方式
22.为了使本领域技术人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
23.在本发明的实施例中,图1是根据本发明芯片时钟频率修调方法的具体步骤提供的流程图,需要注意的是,本发明的频率修调方法可以以计算机指令的形式进行体现,如图1所示,本发明的具体步骤包括:s11:确定目标修调值的数据容量。
24.目标修调值写入芯片后会提供一个对应的时钟频率,该修调值越大,时钟频率越小,修调值与时钟频率成反比。需要注意的是修调值与时钟频率之间的比例关系是由设计人员进行规定的,即修调值与时钟频率可以成正比。目标修调值的数据容量包括一组0和1组成的8位二进制序列,其中,所述数据容量的最大值为ff,所述数据容量的最小值为00。
25.在下一个步骤前,可以先读取芯片中现有的时钟频率,如果该时钟频率为0,即判定为第一次烧录,此时直接进入下一步骤,如果不为0则对其进行判断,如果该时钟频率处于时钟频率范围内,则退出频率修调,反之则进入下一步骤。通过该步骤,频率修调在芯片第二次烧录时,实现了对原有参数值检测,如果原有参数值对应输出的时钟频率在允许的误差范围内(误差为
±
2%),则实际修调的值为原有参数值,以此提高指令数据烧录的可扩展性。
26.s12:将所述数据容量的最大值和最小值分别写入待修调芯片,并获得对应的时钟频率修调测试结果。
27.此处的钟频率修调测试结果是指,将数据容量的最大值和最小值写入待调修芯片后获得的两个最值的时钟频率值。
28.s13:判断所述时钟频率修调测试结果是否落入预设时钟频率范围;本步骤为判断过程,判断数据容量范围内是否存在修调值对应的时钟频率能够处于时钟频率范围内。在本实施例中,是判断两个最值的时钟频率值是否处于时钟频率范围内。
29.其中,预设时钟频率范围可以依据客户实际需求设置,设置时钟频率范围可以是在与烧录器通讯的上位机中设置,烧录器读取上位机中设置的时钟频率范围。烧录器确定时钟频率范围的中心值,并进入外打模式。
30.s14:若所述数据容量的最大值和/或最小值所对应的时钟频率修调结果落入预设时钟频率范围,则通过二分法查找所述数据容量内满足预设条件的目标修调值,其中所述预设条件包括所述目标修调值所对应的时钟频率最接近所述时钟频率范围的中心值。
31.在本发明的实施例中,述数据容量的最大值和/或最小值所对应的时钟频率修调结果落入预设时钟频率范围内则判定为能够对该待测芯片的时钟频率进行修调,反之,则
判定为不能进行修调,此时直接退出烧录,烧录失败。预设条件包括其中所述目标修调值所对应的时钟频率最接近所述时钟频率范围的中心值。由于目标修调值的数据容量确定,那么数据容量的个数是有限的,以8位二进制序列为例,数据容量的总个数也就为256个,在有限的个数中,就存在最接近时钟频率范围的中心值的值,在本实施例中,采用二分法在256个数中进行查找,最终就能够确定最接近的值,从而大大减少查找时间。
32.例如,所述预设时钟频率范围为9.6m~14.4m,则所述预设时钟频率范围的中心值为12m,在目标修调值的256个数据容量中,通过二分法进行查找,最终查找获得的与所述时钟频率范围的中心值最接近的时钟频率为12.1m,若存在两个值与中心值差距相同,则认为两个均为最接近的值,作为一种方案可选取第一个最接近的值,则该12.1m时钟频率所对应的修调值即为所述目标修调值。
33.在本发明的实施例中,通过二分法查找所述数据容量内满足预设条件的目标修调值,包括:s100:在所述数据容量的低位全部为1的情况下,选取所述数据容量的高位中间值,将所述高位中间值对应的时钟频率与所述时钟频率范围的中心值进行对比。
34.应当理解的是,对于一个8位二进制序列,其前面四位确定高位,后面四位确定为低位。
35.其中,在数据容量低位全部置1的情况下(例如为xxxx1111形式),数据容量组成新的区间,该区间从0f(其对应的二进制表示形式为00001111)开始,后续别为1f(其对应的二进制表示形式为00011111)、2f(其对应的二进制表示形式为00101111)以此例推,直至ff(其对应的二进制表示形式为11111111)。
36.需要说明的是,为了简化表示,在下述实施例中将8位二进制序列的表示形式均写成16进制表达形式,具体转换方式为本领域技术人员所熟知,此处不再赘述。
37.s110:当时钟频率与修调值成反比时,若所述高位中间值所对应的时钟频率大于所述时钟频率范围的中心值,将高位中间值赋值给数据容量的最小值,若所述高位中间值所对应的时钟频率小于所述时钟频率范围的中心值,将所述高位中间值赋值给数据容量的最大值。
38.需要注意的是,若出现所述高位中间值所对应的时钟频率等于所述时钟频率范围的中心值的情况,则判定此时的所述高位中间值为目标修调值,并退出查找。其中,若修调值与时钟频率成正比,则若所述高位中间值所对应的时钟频率大于所述时钟频率范围的中心值,将高位中间值赋值给数据容量的最大值,若所述高位中间值所对应的时钟频率小于所述时钟频率范围的中心值,将所述高位中间值赋值给数据容量的最小值。
39.其中,数据容量的高位为0~f,共16位,中间值为7或8,第一次取值可以从7开始,即此第一次选取的高位中间值为7f,需要注意的是,7f为一种实施情况,也可从8f开始取值。其余情况同理。
40.s120:循环s100和s110,当所述数据容量最大值的高位与所述数据容量最小值的高位相邻时,进入s130。
41.循环s100和s110,不断将区间折半,以下为折半的具体过程,可以是从0f~ff,第一次比对复制后可以是7f~ff,第二次af~ff,以此类推,当所述数据容量最大值的高位与所述数据容量最小值的高位相邻时,可以是af~bf,此时进入下一步骤。
42.s130:在所述数据容量最大值的高位与所述数据容量最小值的高位相邻时,选取数据容量的低位中间值。
43.当数据容量的高位确定以后,新的数据区间进一步缩小到af~bf,此时为16个值,低位中间值就是在此区间中的中间值,由于数值数量同样为16,可以从第7个值或第8个值开始进行比对赋值。
44.s140:当时钟频率与修调值成反比时,若所述低位中间值所对应的时钟频率大于所述时钟频率范围的中心值,将低位中间值赋值给数据容量的最小值,若所述低位中间值所对应的时钟频率小于所述时钟频率范围的中心值,将所述低位中间值赋值给数据容量的最大值。
45.需要注意的是,若出现所述低位中间值所对应的时钟频率等于所述时钟频率范围的中心值的情况,则判定此时的所述低位中间值为目标修调值,并退出查找。其中,若修调值与时钟频率成正比,若所述低位中间值所对应的时钟频率大于所述时钟频率范围的中心值,将低位中间值赋值给数据容量的最大值,若所述低位中间值所对应的时钟频率小于所述时钟频率范围的中心值,将所述低位中间值赋值给数据容量的最小值。
46.s150:循环s130和s140,当所述数据容量最大值与所述数据容量最小值之间仅存在唯一值时,退出循环,所述唯一值为目标修调值。
47.循环比对赋值的过程与上述同理,折半查找之后会出现,当所述数据容量最大值与所述数据容量最小值之间仅存在唯一值时,如数据容量折半查找后,区间为bb~bd,此时退出循环,bc可以为目标修调值。
48.在本发明的一个实施中,还包括对所述唯一值加1或减1运算,将运算后的数值所对应的时钟频率与所述时钟频率范围的中心值比对,如果差距小于所述唯一值所对应的时钟频率到所述时钟频率范围的中心值的差距,则运算后的数值为目标修调值,反正则所述唯一值为目标修调值。
49.需要注意的是,由于可能唯一值所对应的时钟频率与时钟频率范围的中心值也存在差距,所以需要对其进行检验,当时钟频率与修调值成反比时,如果所述唯一值的时钟频率大于所述时钟频率范围的中心值时,需要对所述唯一值进行加1运算,反之则进行减1运算。例如,钟频率范围的中心值为12m,bc所对应的修调值为12.1m,对bc加1,即bd所对应的时钟频率为11.99m,此时则判定bd为目标修调值。
50.s15:将所述目标修调值写入所述待修调芯片。即通过烧录器外打指令,把修调值数据写入到芯片中。
51.在本发明的另一个技术方案中,提供了一种含有双通道只读存储器的芯片的烧录方法,图3是根据该烧录方法提供的流程图,包括:s21:对芯片时钟频率进行修调,修调时采用上述任一所述的芯片时钟频率修调方法。
52.s22:对芯片配置区进行配置数据烧录,每一位烧录地址烧录完毕后,对该烧录地址进行所述配置数据的复烧。
53.如图4所示,在该步骤中,烧录器需要进入烧录模式,芯片需要进入外打指令模式,然后对双通道只读存储器进行通道选择,由于双通道只读存储器包括两个数据通道,可实现4k数据存储和8k数据存储,此时便需要进行通道选择,具体可采用控制位的形式来实现,
如在控制位为0时则可进入4k数据存储,反之进入8k数据存储。通道选择完毕后进行数据烧写,在烧写过程中,每一位烧录地址烧录完毕均需要对其进行校验,校验完毕后进行数据复烧,确保芯片不会弱烧。其中,配置数据包括芯片运行时的时钟数据、端口驱动数据、看门狗数据、频率修调精度数据等。
54.s23:对芯片主程序区进行指令数据烧录,每一位烧录地址烧录完毕后,对该烧录地址进行所述指令数据的复烧。
55.如图5所示,在烧录器进入主程序烧写模式后,对双通道只读存储器进行通道选择。由于双通道只读存储器大小可变,分为4k或8k,为实现对芯片存储区的稳定烧录,实行分区烧录,每个区为1k,数据烧写时从第1k的第一位地址开始,在每一位地址烧录完毕后,对其进行数据的检验,检验通过后对数据进行复烧,然后进行下一位地址的烧录,检验不通过则退出烧录,从而实现实时烧录错误退出,减少因某些因素导致的烧录失败而产生的后续冗余时间。重复上述的步骤直至烧录至第4k末位地址或者第8k末位地址。
56.s24:对烧录完毕的所述配置数据和所述指令数据进行整体读取校验。
57.如图6 所示,为减小和解决芯片烧录时可能的弱烧问题以及烧录中因其他因素而导致的烧录错误问题,快速校验为芯片彻底断电后的最后一步,该快速校验采用循环读取包括配置区的数据和主程序区的整体数据进行校验,有效减少因为干扰或者其他因素导致的烧录问题,以提升烧录的正确性。
58.在本发明的另一个技术方案中,提供了一种烧录器,如图7所示,包括存储器和处理器,所述存储器和所述处理器通信连接,所述存储器用于存储计算机指令,所述处理器用于加载并执行所述计算机指令,以实现上述任一所述的含有双通道只读存储器的芯片的烧录方法。,其中,所述处理器可以是mcu本方案的效果与含有双通道只读存储器的芯片的烧录方法相同,故在此不再赘述。
59.最后所应说明的是,以上具体实施方式仅用以说明本发明的技术方案而非限制,尽管参照实例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献