一种微控制器及其上电初始化方法技术

技术编号:39300309 阅读:7 留言:0更新日期:2023-11-12 15:51
一种微控制器及其上电初始化方法,本发明专利技术在配置存储区域预先存储了每一个配置参数的原码所对应的校验码,上电复位后,利用默认的读电路的参数值从第一个配置参数开始按照存储顺序从配置存储区域读取参数的原码和校验码进行校验,在出现校验错误时,调整读电路的参数值后重新按照存储顺序从第一个配置参数开始重新从配置存储区域读取参数的原码和校验码进行校验,如此可避免出现误读,避免MCU以不良的参数和功能配置进行程序运行,造成程序跑飞、死机,甚至误操作等事故;进一步地,校验码为反码,可以更精准的保证误读判定结果的准确性,进一步地,校验码为与原码互补的反码,可以更精准的保证误读判定结果的准确性。以更精准的保证误读判定结果的准确性。以更精准的保证误读判定结果的准确性。

【技术实现步骤摘要】
一种微控制器及其上电初始化方法


[0001]本专利技术涉及微控制器
,尤其涉及一种微控制器及其上电初始化方法。

技术介绍

[0002]MCU(Microcontroller Unit,微控制器)是混合信号SOC芯片,有处理器内核、数字模块、模拟模块和NVM(Non

Volatile Memory,非易失性存储器)。MCU在上电复位完成后,首先进行初始化,读取并加载各项配置数据,包括功能配置和模拟电路的修调校准值,这些配置数据存储在NVM的片上存储器中特定区域。
[0003]NVM存储器包括Flash、EEPROM、MTP、OTP等,基本存储单元一般为浮栅MOSFET,如图1所示。通过擦除(erase)和编程(program)操作改变浮栅中的电子数量,使存储单元的阈值电压发生变化,从而区分存储的是逻辑“1”或者逻辑“0”,如图2。参考图3,存储器读电路一般采用灵敏放大器读出电路,通过检测存储单元电流与参考电流比较的方式,判断存储单元的电荷水平,即读出逻辑“1”或逻辑“0”。擦除和编程后存储单元阈值电压之间的差别就是读取窗口,窗口越大,越容易稳定读取“1”和“0”。不同的半导体器件工艺、不同的擦除和编程条件都会影响存储单元的阈值水平,电源、温度、工艺波动、辐射和器件疲劳特性等因素也会造成读取窗口漂移或变小。
[0004]MCU初始化的传统方式是把该芯片对应的配置数据不做任何处理直接存在NVM的特定区域,如图4。上电复位后,相关电路首先使用默认电路参数,然后按顺序从特定区域(图4中的配置存储区)读出预存好的配置数据,将读出的配置数据代替上电时的默认电路参数,此后MCU的运行都将使用所读出的配置参数,如图5。这种传统初始化方式存在如下问题:首先,在MCU上电最初阶段,供电电源还未完全稳定,可能存在抖动或缓慢上升现象,同时NVM读电路相关的模拟电路参数还是上电复位的默认值,因此参考电压、参考电流等并不是擦除和编程状态下存储单元电流的中间值,即不是最佳读取状态,可能误读“1”或“0”;其次,电路参数的默认值一般是特定条件和范围的设计值,而半导体制造存在工艺偏差和波动,不同批次的产品实际性能可能发生变化,当默认值位于设计余量的边界时,会出现大概率的误读,严重影响产品良率和实际应用的可靠性。

技术实现思路

[0005]本专利技术要解决的技术问题在于,针对现有技术的上述上电初始化过程中可能出现误读的缺陷,提供一种微控制器及其上电初始化方法。
[0006]本专利技术解决其技术问题所采用的技术方案是:
[0007]一方面,构造一种微控制器上电初始化方法,所述微控制器的配置存储区域按照顺序预先存储了各个配置参数的原码,所述的配置存储区域还预先存储了每一个原码所对应的校验码,所述方法包括:
[0008]上电复位后,利用默认的读电路的参数值从第一个配置参数开始按照存储顺序从配置存储区域读取配置参数的原码和校验码进行校验;
[0009]当所有配置参数都通过了校验时,利用所读取的所有配置参数的原码对相关参数进行更新,并基于更新后的参数值控制微控制器运行。
[0010]进一步地,在本专利技术所述的微控制器上电初始化方法中,所述校验码为与原码互补的反码,所述的校验是指:判断当前读取的配置参数的原码和反码是否互补,如果互补则判定校验通过,否则判定校验不通过。
[0011]进一步地,在本专利技术所述的微控制器上电初始化方法中,每一个校验码在其所对应的原码之后/之前紧挨着其所对应的原码存储,或者,所有的校验码在所有的原码之后存储且校验码的排列顺序与原码的排列顺序一致;
[0012]所述方法还包括:在上一个读取的配置参数校验通过时才读取下一个配置参数的原码和校验码进行校验;或者,在读取出所有的配置参数的原码和校验码之后,再对各个配置参数的原码和校验码进行校验。
[0013]进一步地,在本专利技术所述的微控制器上电初始化方法中,所述方法还包括:如果校验不通过,则调整读电路的参数值,基于调整后的读电路的参数值按照存储顺序从第一个配置参数开始重新从配置存储区域读取参数的原码和校验码进行校验。
[0014]进一步地,在本专利技术所述的微控制器上电初始化方法中,每一个读电路参数是具有预定位宽的二进制数值;每一个读电路参数配置有以默认的参数值为基准通过连续递增或/和递减方式得到的多个连续的二进制数值组成的可调范围;
[0015]所述方法还包括:对于需要调整的读电路参数,以默认的参数值为基准按照预定的遍历方式来遍历对应的可调范围内的二进制数值,每一次遍历到的一个二进制数值作为对读电路参数进行一次调整后的参数值。
[0016]进一步地,在本专利技术所述的微控制器上电初始化方法中,所述方法还包括:在上电复位后开始计时,如果在读取配置存储区域的过程中出现计时时间到达预设时长的情况,则重新上电复位以重新读取配置存储区域。
[0017]进一步地,在本专利技术所述的微控制器上电初始化方法中,所述方法还包括:如果上电复位的次数超过预设次数,则进入锁定状态。
[0018]进一步地,在本专利技术所述的微控制器上电初始化方法中,所述配置存储区域还在最后一个配置参数之后存储了特殊码;
[0019]所述方法还包括:当读取的最后一个配置参数校验通过时,读取特殊码,判定所读取的特殊码是否正确,如果正确才利用所读取的所有配置参数的原码对相关参数进行更新,否则继续调整读电路的参数值,基于调整后的读电路的参数值按照存储顺序从第一个配置参数开始重新从配置存储区域读取参数的原码和校验码进行校验。
[0020]二方面,构造一种微控制器,所述微控制器在上电后执行如前所述的方法的步骤。
[0021]本专利技术的微控制器及其上电初始化方法,具有以下有益效果:本专利技术在配置存储区域还预先存储了每一个原码所对应的校验码,上电复位后,利用默认的读电路的参数值从第一个配置参数开始按照存储顺序从配置存储区域读取参数的原码和校验码进行校验,当所有参数都通过了校验时,利用所读取的所有配置参数的原码对相关参数进行更新,并基于更新后的参数值控制微控制器运行,如此可以避免出现误读的情况,避免MCU以不良的参数和功能配置进行程序运行,造成程序跑飞、死机,甚至误操作等事故;进一步地,校验码为与原码互补的反码,可以更精准的保证误读判定结果的准确性;进一步地,本专利技术在出现
校验错误时,调整读电路的参数值,基于调整后的读电路的参数值按照存储顺序从第一个配置参数开始重新从配置存储区域读取参数的原码和校验码进行校验,如此可以实现避免误读的基础上保证参数的成功顺利读取。
附图说明
[0022]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图:
[0023]图1是浮栅存储单元结构的结构示意图;
[0024]图2本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微控制器上电初始化方法,所述微控制器的配置存储区域按照顺序预先存储了各个配置参数的原码,其特征在于,所述的配置存储区域还预先存储了每一个原码所对应的校验码,所述方法包括:上电复位后,利用默认的读电路的参数值从第一个配置参数开始按照存储顺序从配置存储区域读取配置参数的原码和校验码进行校验;当所有配置参数都通过了校验时,利用所读取的所有配置参数的原码对相关参数进行更新,并基于更新后的参数值控制微控制器运行。2.根据权利要求1所述的微控制器上电初始化方法,其特征在于,所述校验码为与原码互补的反码,所述的校验是指:判断当前读取的配置参数的原码和反码是否互补,如果互补则判定校验通过,否则判定校验不通过。3.根据权利要求1所述的微控制器上电初始化方法,其特征在于,每一个校验码在其所对应的原码之后/之前紧挨着其所对应的原码存储;所述方法还包括:在上一个读取的配置参数校验通过时才读取下一个配置参数的原码和校验码进行校验。4.根据权利要求1所述的微控制器上电初始化方法,其特征在于,所有的校验码在所有的原码之后存储且校验码的排列顺序与原码的排列顺序一致;所述方法还包括:在读取出所有的配置参数的原码和校验码之后,再对各个配置参数的原码和校验码进行校验。5.根据权利要求1所述的微控制器上电初始化方法,其特征在于,所述方法还包括:如果校验不通过,则调整读电路的参数值,基于调整后的读电路的参数值按照存储顺序从第一个配置参数开始重新从配置存储区域读取参数的原码和校验码进行校验...

【专利技术属性】
技术研发人员:吴介豫陈建业
申请(专利权)人:辉芒微电子深圳股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1