C8051f120 PLL 锁相环
系统时钟25M
void OSC_100(void)
{
unsigned char data SFRPAGE_SAVE=SFRPAGE;
SFRPAGE= CONFIG_PAGE;
PLL0CN=0X05; //选择外部振荡器、PLL电源使能
SFRPAGE=LEGACY_PAGE; //设置FLASH读时间
FLSCL=0X30; //100M
SFRPAGE=CONFIG_PAGE;
PLL0DIV=0X01; //参考时钟不分频
PLL0FLT=0X01; //PLL滤波器
PLL0MUL=0X04; //倍频系数等于4
delay_nop(150); //等待快速频率锁定
PLL0CN|=0X02; //PLL使能
while(!(PLL0CN&0X10)); //等待时钟稳定
CLKSEL=0x02; //选择PLL振荡器
SFRPAGE=SFRPAGE_SAVE; //恢复寄存器页
}
主要步骤如下:
PLL0CN=0X05; //选择外部振荡器 25m、PLL电源使能
SFRPAGE=LEGACY_PAGE; //设置FLASH读时间
FLSCL=0X30; //100M
SFRPAGE=CONFIG_PAGE;
PLL0DIV=0X01; //参考时钟不分频
PLL0FLT=0X01; //PLL滤波器
PLL0MUL=0X04; //倍频系数等于4
delay_nop(150); //等待快速频率锁定
PLL0CN|=0X02; //PLL使能
while(!(PLL0CN&0X10)); //等待时钟稳定
CLKSEL=0x02; //选择PLL振荡器