系统时钟分频系数占 4bit,最大进行15 倍的分频。设置的系统时钟不要超过100MHz。
接口寄存器说明
PLL_DIV :PLL分频寄存器,设置系统时钟和内核时钟分频系数
PLL_CTL :PLL控制寄存器,设置VCO 倍频系数和一些控制开关
PLL_STAT :PLL状态寄存器,获取芯片当前工作的状态
PLL_LOCKCNT :PLL 计数器,用于设置计数时钟
源码分析
*pPLL_DIV = pssel; //设置系统时钟分频系数,内核不做分频
asm("ssync;"); //系统同步
new_PLL_CTL = (pmsel & 0x3f) << 9; //将VCO 倍频系数移位至需设置的位置
*pSIC_IWR |= 0xffffffff; //将系统中断唤醒使能
if (new_PLL_CTL != *pPLL_CTL) //判断是否已经配置过倍频系数
{
*pPLL_CTL = new_PLL_CTL; //配置倍频系数
asm("ssync;"); //系统同步
asm("idle;"); //将处理器设置为空闲
}
配置完PLL 后,系统必须将系统设置为空闲后,系统再一次唤醒后,设置的值才会生效。