打印
[技术问答]

是没人需用到外部震荡还是都能切换成功呢?就我运气差?

[复制链接]
942|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lacha|  楼主 | 2019-10-14 15:07 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我使用clk_switch例程修改的,始终都切换失败,总是卡死在Clk_SwitchTo(ClkXTH),用内部震荡是能工作的,但项目要求较高,需用外部晶振。
int32_t main(void)
{   volatile uint32_t u32Val = 0;

        LED_init();
       
    //RCH 22.12MHz
    Clk_SwitchTo(ClkRCL);
    Clk_SetRCHFreq(ClkFreq22_12Mhz);
    Clk_SwitchTo(ClkRCH);
    u32Val = Clk_GetHClkFreq();
       
        LED_enable; //点灯
        delay1ms(200);
        LED_disable; //熄灯
        delay1ms(1200);

    //XTH
    Clk_SwitchTo(ClkXTH);
    u32Val = Clk_GetHClkFreq();
       
        LED_enable; //点灯
        delay1ms(1200);
        LED_disable; //熄灯

    while (1);

}

使用特权

评论回复
沙发
martinhu| | 2019-10-14 15:54 | 只看该作者
按照楼主的这段代码,我下载到芯片上是可以直接跑到底的

使用特权

评论回复
板凳
lacha|  楼主 | 2019-10-15 09:12 | 只看该作者
跟编译系统会否有关系,我用的是MDK,而且还发现使用printf函数里带用中文会出现乱码的现象

使用特权

评论回复
地板
martinhu| | 2019-10-21 09:02 | 只看该作者
lacha 发表于 2019-10-15 09:12
跟编译系统会否有关系,我用的是MDK,而且还发现使用printf函数里带用中文会出现乱码的现象 ...

和编译系统应该没关系,你外部晶振用的是多少M?驱动库是按照32M配置的,如果不是32M,需要调节XTH相关寄存器的参数。

使用特权

评论回复
5
lacha|  楼主 | 2019-10-21 15:02 | 只看该作者
我用的是11.0592MHZ / 22.12MHZ,有根据PDF资料修改XTH参数的,怀疑例程不行,自己按照PDF的11个步骤重写切换外部震荡,结果还是不行。。。
void C_Unlock(void)
{   M0P_CLOCK->SYSCTRL2 = 0x5A5A;
    M0P_CLOCK->SYSCTRL2 = 0xA5A5;
}

void Clk_TO_XT(en_clk_source_t enSource)
{        M0P_GPIO->P0ADS_f.P01 = TRUE; //1
        M0P_GPIO->P0ADS_f.P02 = TRUE;
        M0P_CLOCK->XTH_CR_f.DRIVER = 0x0A; //2 :22.12Mhz
        Clk_SetXTH_StableTime(ClkCycle16384); //3
        C_Unlock(); //4
        M0P_CLOCK->SYSCTRL0_f.XTH_EN = TRUE; //5
//频率大于24MHZ还需加入FLASH等待 //6
    while (FALSE == Clk_GetClkRdy(ClkXTH)) ; //7
        delay1ms(10);
        C_Unlock(); //8
        M0P_CLOCK->SYSCTRL0_f.CLK_SW4_SEL = ClkXTH; //9
        C_Unlock(); //10
        M0P_CLOCK->SYSCTRL0_f.RCH_EN = FALSE; //11
}

使用特权

评论回复
评论
martinhu 2019-10-22 19:00 回复TA
GPIO的外设时钟使能了吗 
6
戈卫东| | 2019-10-21 15:20 | 只看该作者
是不是板子没弄好。。。

使用特权

评论回复
7
lacha|  楼主 | 2019-10-21 15:41 | 只看该作者
使用内部RC震荡可以正常工作的,外部震荡就只是增加1个晶振和配套的2个电容,晶振和电容都换过好几次了

2a.JPG (45.28 KB )

2a.JPG

使用特权

评论回复
8
kq800| | 2019-11-3 00:36 | 只看该作者
就用例程,按要求做是可以起振的。但是晶振起振可靠性有点说不准!芯片要求比较高,比如芯片是3.3V供电如果I/O口有5V的电平那就根本不会起振!

使用特权

评论回复
9
liaotian001| | 2019-11-4 10:09 | 只看该作者
kq800 发表于 2019-11-3 00:36
就用例程,按要求做是可以起振的。但是晶振起振可靠性有点说不准!芯片要求比较高,比如芯片是3.3V供电如果 ...

L011 不支持5V-torlance 功能, IO电压不能超过VDD +0.3V,否则会损坏MCU

使用特权

评论回复
10
gwsan| | 2019-11-12 13:28 | 只看该作者
晶振没有问题吗

使用特权

评论回复
11
kxsi| | 2019-11-12 14:01 | 只看该作者
应该不是共性问题

使用特权

评论回复
12
D调胖子| | 2019-11-15 17:17 | 只看该作者

你PCB 设计时应该注意,不要让VCAP的滤波电容靠近晶体
会相互影响

使用特权

评论回复
评论
D调胖子 2019-11-15 17:20 回复TA
还有,晶体的匹配电容 设计也需要注意 
13
buffered| | 2019-11-17 18:28 | 只看该作者
是不是楼主的晶振质量不行

使用特权

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

本版积分规则

10

主题

29

帖子

1

粉丝