写点什么

大意!6 行代码,“报废”5 片单片机!

发布于: 2021 年 04 月 12 日
大意!6行代码,“报废”5片单片机!

今天又双叒叕是个心痛的日子。

近日,打样一款新产品 PCB,微控制器选用:国产 MCU,HC32L130 系列,程序移植于之前的项目。

PCB 样板焊接好后,第一次可以正常烧录程序,再进行烧录,IAR 显示无法连接 MCU。


奇怪了!试了几次不行,换一块板子, 也是这种情况......

此时内心很恐慌,是不是 MCU 电路设计有问题?但是也不应该啊,该 MCU 已经应用好几款产品了......

排错离不开试错法,找来最基础的点亮 LED 程序测试,烧写过程、次数均正常可行。

说明程序有问题!

通过一系列尝试和推测,将问题定位在时钟配置上:之前使用 HC32L130 均是基于 24MHz 内部高速时钟(HSI),而本款产品基于 24MHz 外部高速时钟(HSE)。

配置 24MHz 内部高速时钟(HSI)程序如下所示:

//将时钟从RCH4MHz切换至RCH24MHz,void App_Rch4MHzTo24MHz(void){    ///<============== 将时钟从RCH4MHz切换至RCH24MHz ==============================        ///< RCH时钟不同频率的切换,需要先将时钟切换到RCL,设置好频率后再切回RCH    Sysctrl_SetRCLTrim(SysctrlRclFreq32768);    Sysctrl_ClkSourceEnable(SysctrlClkRCL, TRUE);    Sysctrl_SysClkSwitch(SysctrlClkRCL);        ///< 加载目标频率的RCH的TRIM值    Sysctrl_SetRCHTrim(SysctrlRchFreq24MHz);     ///< 时钟切换到RCH    Sysctrl_SysClkSwitch(SysctrlClkRCH);     ///< 关闭RCL时钟    Sysctrl_ClkSourceEnable(SysctrlClkRCL, FALSE);} 
复制代码

在修改为外部高速时钟程序时,没再查阅芯片手册,直接修改的参数,程序如下所示:

//将时钟从RCH4MHz切换至XTH24MHz,void App_Rch4MHzTo24MHz(void){    ///<============== 将时钟从RCH4MHz切换至XTH24MHz ==============================        Sysctrl_SetRCLTrim(SysctrlRclFreq32768);    Sysctrl_ClkSourceEnable(SysctrlClkRCL, TRUE);    Sysctrl_SysClkSwitch(SysctrlClkRCL);        ///< 加载目标频率的XTH值    Sysctrl_SetXTHFreq(SysctrlRchFreq24MHz);     ///< 时钟切换到XTH    Sysctrl_SysClkSwitch(SysctrlClkXTH);	    ///< 关闭RCL时钟    Sysctrl_ClkSourceEnable(SysctrlClkRCL, FALSE);}  
复制代码

通过查阅手册,配置过程果然存在问题。

最后修改代码如下:

//将时钟从RCH4MHz切换至XTH24MHzvoid App_Rch4MHzToXth24MHz (void){    ///<======================== 将时钟从RCH4MHz切换至XTH24MHz ==============================            ///< 切换时钟前(根据外部高速晶振)设置XTH频率范围,配置晶振参数,使能目标时钟,此处为24MHz    Sysctrl_SetXTHFreq(SysctrlXthFreq20_32MHz);    Sysctrl_XTHDriverCfg(SysctrlXtalDriver3);    Sysctrl_SetXTHStableTime(SysctrlXthStableCycle16384);    Sysctrl_ClkSourceEnable(SysctrlClkXTH, TRUE);     ///< 时钟切换    Sysctrl_SysClkSwitch(SysctrlClkXTH);    ///< 根据需要选择是否关闭原时钟(此处关闭)    Sysctrl_ClkSourceEnable(SysctrlClkRCH, FALSE);}
复制代码

最后运行调测,果然顺利~

发布于: 2021 年 04 月 12 日阅读数: 23
用户头像

【研究方向】物联网、嵌入式、AI、Python 2018.02.09 加入

【公众号】美男子玩编程

评论

发布
暂无评论
大意!6行代码,“报废”5片单片机!