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相关寄存器的参数。

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
}

戈卫东 发表于 2019-10-21 15:20

是不是板子没弄好。。。

lacha 发表于 2019-10-21 15:41

使用内部RC震荡可以正常工作的,外部震荡就只是增加1个晶振和配套的2个电容,晶振和电容都换过好几次了

kq800 发表于 2019-11-3 00:36

就用例程,按要求做是可以起振的。但是晶振起振可靠性有点说不准!芯片要求比较高,比如芯片是3.3V供电如果I/O口有5V的电平那就根本不会起振!

liaotian001 发表于 2019-11-4 10:09

kq800 发表于 2019-11-3 00:36
就用例程,按要求做是可以起振的。但是晶振起振可靠性有点说不准!芯片要求比较高,比如芯片是3.3V供电如果 ...

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

gwsan 发表于 2019-11-12 13:28

晶振没有问题吗

kxsi 发表于 2019-11-12 14:01

应该不是共性问题

D调胖子 发表于 2019-11-15 17:17


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

buffered 发表于 2019-11-17 18:28

是不是楼主的晶振质量不行
页: [1]
查看完整版本: 是没人需用到外部震荡还是都能切换成功呢?就我运气差?