今天又双叒叕是个心痛的日子。
近日,打样一款新产品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切换至XTH24MHz
void 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);
}
最后运行调测,果然顺利~
本文实例为大家分享了jQuery实现穿梭框效果的具体代码,供大家参考,具体内容如...
引言 ? 编号 确定项目 描述 1 确定范围 确定被测项目中功能模块子功能模块等需要...
注意事项: 1.先在database.php中配置好数据库 2.只要是数据库操作必须引用 use/...
本 系列 介绍了 LaTeX 中的基本格式。 第 1 部分 介绍了列表。 第 2 部分 阐述了...
文章目录 一、Linux 操作系统的安装 二、在 Ubuntu 20.04.2.0 中 进行 Hadoop 伪...
php模拟post提交请求,调用接口 /** * 模拟post进行url请求 * @param string $ur...
企业级开源分布式数据库厂商 PingCAP 日前宣布完成 2.7 亿美元的 D 轮融资,创造...
一、为图片添加水印 复制代码 代码如下: % Dim Jpeg ''''//声明变量 Set Jpeg = ...
概念 相当于java中的方法,将一组逻辑语句封装在方法体中,对外暴露方法名 隐藏...
为你的朋友、家人、同事或其他任何拥有廉价发烧设备的人播放音乐。 在过去的 10 ...