打印
[技术问答]

HC32L170FAUA外部晶振问题

[复制链接]
1177|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kktron|  楼主 | 2023-2-7 11:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于工作环境-30-80°C,所以没用内部RC 4MHZ
用了个外部的24MHz的小封装晶振,但是配置后,示波器测量不启震,是不是和配置有关?
请帮忙看看
/**
******************************************************************************
** \brief  初始化外部系统时钟
**
** \return 无
******************************************************************************/
static void App_SysClkInit(void)
{
    stc_sysctrl_clk_cfg_t stcCfg;
    stc_sysctrl_pll_cfg_t stcPLLCfg;
   
   
    Sysctrl_SetPeripheralGate(SysctrlPeripheralFlash, TRUE);    ///< 使能FLASH模块的外设时钟
    Flash_WaitCycle(FlashWaitCycle1);
    Sysctrl_SetXTHFreq(SysctrlXthFreq24_32MHz);               
   
    stcPLLCfg.enInFreq    = SysctrlPllInFreq20_24MHz;   ///< 24MHz
    stcPLLCfg.enOutFreq   = SysctrlPllOutFreq36_48MHz;  ///< PLL 输出48MHz
    stcPLLCfg.enPllClkSrc = SysctrlPllXthXtal;          ///< 输入时钟源选择XthXtal
    stcPLLCfg.enPllMul    = SysctrlPllMul2;             ///< 24MHz x 2 = 48MHz
    Sysctrl_SetPLLFreq(&stcPLLCfg);
   
    ///< 选择PLL作为HCLK时钟源;
    stcCfg.enClkSrc  = SysctrlClkPLL;
    ///< HCLK SYSCLK/2
    stcCfg.enHClkDiv = SysctrlHclkDiv2;
    ///< PCLK 为HCLK/8
    stcCfg.enPClkDiv = SysctrlPclkDiv8;
    ///< 系统时钟初始化
    Sysctrl_ClkInit(&stcCfg);
}

使用特权

评论回复
沙发
yang377156216| | 2023-2-7 13:17 | 只看该作者
///<请注意根据外部晶振配置宏——[SYSTEM_XTH],如果使用PLL,XTH必须在 4 - 24MHz 范围
void App_SystemClkInit_PLL48M_byXTH(void)
{
    stc_sysctrl_pll_cfg_t stcPLLCfg;   
   
    ///< 切换时钟前(根据外部高速晶振)设置XTH频率范围,配置晶振参数,使能目标时钟,此处为SYSTEM_XTH = 24MHz
    Sysctrl_SetXTHFreq(SysctrlXthFreq16_24MHz);
    Sysctrl_XTHDriverCfg(SysctrlXtalDriver3);///<晶振驱动能力需要根据实际晶振匹配电路布局以及所选器件的参数去调整
    Sysctrl_SetXTHStableTime(SysctrlXthStableCycle16384);
    Sysctrl_ClkSourceEnable(SysctrlClkXTH, TRUE);
    delay1ms(10);
   
    stcPLLCfg.enInFreq    = SysctrlPllInFreq20_24MHz;    //XTH 24MHz
    stcPLLCfg.enOutFreq   = SysctrlPllOutFreq36_48MHz;  //PLL 输出
    stcPLLCfg.enPllClkSrc = SysctrlPllXthXtal;              //输入时钟源选择XTH晶振
    stcPLLCfg.enPllMul    = SysctrlPllMul2;             //24MHz x 2 = 48MHz
    Sysctrl_SetPLLFreq(&stcPLLCfg);
   
    ///< 当使用的时钟源HCLK大于24M:设置FLASH 读等待周期为1 cycle(默认值也为1 cycle)
    Flash_WaitCycle(FlashWaitCycle1);

    ///< 使能PLL
    Sysctrl_ClkSourceEnable(SysctrlClkPLL, TRUE);   
    ///< 时钟切换到PLL
    Sysctrl_SysClkSwitch(SysctrlClkPLL);
}

使用特权

评论回复
板凳
kktron|  楼主 | 2023-2-7 13:46 | 只看该作者

感谢,按此实列可以了

使用特权

评论回复
地板
tpgf| | 2023-3-3 11:42 | 只看该作者
内部晶振的正常工作温度一般都在什么范围内啊

使用特权

评论回复
5
qcliu| | 2023-3-3 11:55 | 只看该作者
楼主的这个工作环境很恶劣啊  温度跨度有些大啊

使用特权

评论回复
6
drer| | 2023-3-3 12:07 | 只看该作者
外部晶振的起振与否和程序没有任何关系吧

使用特权

评论回复
7
coshi| | 2023-3-3 12:16 | 只看该作者
应该不是程序的事情  可能晶振直接坏掉了

使用特权

评论回复
8
kxsi| | 2023-3-3 13:10 | 只看该作者
如果不测量 直接运行程序的话  能正常工作吗

使用特权

评论回复
9
wiba| | 2023-3-3 13:22 | 只看该作者
有些晶振的波形可能会因为示波器探针的引入反而不能正常工作

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

44

帖子

0

粉丝