[技术问答]

M058S内部时钟PLL的奇怪问题

[复制链接]
891|5
手机看帖
扫描二维码
随时随地手机跟帖
youhm|  楼主 | 2019-3-15 16:31 | 显示全部楼层 |阅读模式
本帖最后由 youhm 于 2019-3-16 15:42 编辑

M058S开发板,使用BSP例程,想测试一下内部时钟HIRC PLL
修改PLLCON_SETTING  CLK_PLLCON_50MHz_HIRC
屏蔽掉外部时钟使能,切换HCLK到PLL,时钟仍然是内部22M
取消屏蔽外部时钟使能及等待外部时钟稳定,则HCLK时钟能达到HIRC PLL设定的频率
请解惑,谢谢

#define PLLCON_SETTING  CLK_PLLCON_50MHz_HIRC
#define PLL_CLOCK       50000000
//uint32_t ii;
void SYS_Init(void)
{
    /*---------------------------------------------------------------------------------------------------------*/
    /* Init System Clock                                                                                       */
    /*---------------------------------------------------------------------------------------------------------*/
    /* Enable Internal RC 22.1184MHz clock */
    CLK->PWRCON |= CLK_PWRCON_OSC22M_EN_Msk;
    /* Waiting for Internal RC clock ready */
    while(!(CLK->CLKSTATUS & CLK_CLKSTATUS_OSC22M_STB_Msk));
    /* Switch HCLK clock source to Internal RC and and HCLK source divide 1 */
    CLK->CLKSEL0 &= ~CLK_CLKSEL0_HCLK_S_Msk;
    CLK->CLKSEL0 |= CLK_CLKSEL0_HCLK_S_HIRC;
    CLK->CLKDIV &= ~CLK_CLKDIV_HCLK_N_Msk;
    CLK->CLKDIV |= CLK_CLKDIV_HCLK(1);
////    /* Enable external XTAL 12MHz clock */
////    CLK->PWRCON |= CLK_PWRCON_XTL12M_EN_Msk;
////    /* Waiting for external XTAL clock ready */
////    while(!(CLK->CLKSTATUS & CLK_CLKSTATUS_XTL12M_STB_Msk));

    /* Set core clock as PLL_CLOCK from PLL */
    CLK->PLLCON = PLLCON_SETTING;
    while(!(CLK->CLKSTATUS & CLK_CLKSTATUS_PLL_STB_Msk));
    CLK->CLKSEL0 &= (~CLK_CLKSEL0_HCLK_S_Msk);
    CLK->CLKSEL0 |= CLK_CLKSEL0_HCLK_S_PLL;
youhm|  楼主 | 2019-3-16 15:41 | 显示全部楼层
在M051的例程发现对CLK->CLKSEL0操作的语句两条改为一条就没有这问题了,好奇怪哦
    CLK->CLKSEL0 &= (~CLK_CLKSEL0_HCLK_S_Msk);
     CLK->CLKSEL0 |= CLK_CLKSEL0_HCLK_S_PLL;
改为
   CLK->CLKSEL0 = (CLK->CLKSEL0 & (~CLK_CLKSEL0_HCLK_S_Msk)) | CLK_CLKSEL0_HCLK_S_PLL;

调试发现不使能外部时钟,单独执行CLK->CLKSEL0 &= (~CLK_CLKSEL0_HCLK_S_Msk),该寄存器低3位没有被清零

使用特权

评论回复
xinpian101| | 2019-3-17 22:49 | 显示全部楼层
楼主细心。

使用特权

评论回复
天灵灵地灵灵| | 2019-3-18 22:54 | 显示全部楼层
没太懂这两个逻辑操作有啥不同。

使用特权

评论回复
dongnanxibei| | 2019-3-19 21:41 | 显示全部楼层
不太明白其中原因

使用特权

评论回复
zhuotuzi| | 2019-3-19 23:07 | 显示全部楼层
有没有大神解释解释。

使用特权

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

本版积分规则

2

主题

52

帖子

2

粉丝