HR8P287系统时钟采用PLL可能出现的无法下载仿真问题 32-bit M0 MCU

admin 2021-6-30 791

当系统时钟采用PLL,可能会导致下载或仿真出错(跟有的电脑运行速度慢有相关性),原因是上电芯片快速进入高频32MHz,导致SWD无法连接。而每次下载前都必须要通过jLinkBurner或ESLink重新烧录配置字才可以。
软件如下:
int main(void)
{
    //配置时钟  
    SCU_RegUnLock();       //解锁                         
    SCU_HOSC_Enable();     //使能HOSC振荡器
    while(SCU_HOSCReadyFlag() != SET);     //等待时钟稳定
    SCU_RegLock();             //上锁    
    
    SysclkPLL(PLL_HOSC_4, PLL_UNLOCK_Mode3);    //选择外部16MHz,PLL锁相环倍频时钟为系统时钟
    SystemCoreClock = 32000000;
    DeviceClockAllEnable();                     //打开所有外设时钟
    ... ...
}

针对于此,软件修改避免措施如下:
1.在配置时钟语句之前增加软件延时,例如:
    uint32_t i;
    for(i=0;i<1000000;i++);    //delay
2.调用SysclkPLL(PLL_HOSC_4, PLL_UNLOCK_Mode3)函数中,将失锁模式参数PLL_UNLOCK_Mode3改为PLL_UNLOCK_Mode0或1。

最新回复 (0)
返回