资源描述:
《k60锁相环时钟设置》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用标准文案/**hw_pll.c**Createdon:2012-4-17*Author:lenovo*/总线频率设置:64#include"common.h"#include"hw_pll.h"//锁相环频率为50/12*54=225M测试函数voidpllinit225M(void){uint32_ttemp_reg;//使能IO端口时钟SIM_SCGC5
2、=(SIM_SCGC5_PORTA_MASK
3、SIM_SCGC5_PORTB_MASK
4、SIM_SCGC5_PORTC_MASK
5、SIM_SCGC5_PORTD_MASK
6、SIM_SCGC5_PORTE_MASK);//这里处在默认
7、的FEI模式//首先移动到FBE模式MCG_C2=0;//MCG_C2=MCG_C2_RANGE(2)
8、MCG_C2_HGO_MASK
9、MCG_C2_EREFS_MASK;//初始化晶振后释放锁定状态的振荡器和GPIOSIM_SCGC4
10、=SIM_SCGC4_LLWU_MASK;LLWU_CS
11、=LLWU_CS_ACKISO_MASK;//选择外部晶振,参考分频器,清IREFS来启动外部晶振//011IfRANGE=0,DivideFactoris8;forallotherRANGEvalues,DivideFactoris256.MCG_C1=MCG_C1_CLKS(2)
12、MCG_C1_F
13、RDIV(3);//等待晶振稳定//while(!(MCG_S&MCG_S_OSCINIT_MASK)){}//等待锁相环初始化结束while(MCG_S&MCG_S_IREFST_MASK){}//等待时钟切换到外部参考时钟while(((MCG_S&MCG_S_CLKST_MASK)>>MCG_S_CLKST_SHIFT)!=0x2){}//进入FBE模式,//0x18==25分频=2M,//0x08==15分频=3.333M//0x09==16分频=3.125M,//0x10==17分频=2.94M//0x11==18分频=2.7778M//0x12==19分频=2.63M,精彩文档实
14、用标准文案//0x13==20分频=2.5MMCG_C5=MCG_C5_PRDIV(0x0b);//确保MCG_C6处于复位状态,禁止LOLIE、PLL、和时钟控制器,清PLLVCO分频器MCG_C6=0x0;//保存FMC_PFAPR当前的值temp_reg=FMC_PFAPR;//通过M&PFD置位M0PFD来禁止预取功能FMC_PFAPR
15、=FMC_PFAPR_M7PFD_MASK
16、FMC_PFAPR_M6PFD_MASK
17、FMC_PFAPR_M5PFD_MASK
18、FMC_PFAPR_M4PFD_MASK
19、FMC_PFAPR_M3PFD_MASK
20、FMC_PFAPR_M2PFD_MAS
21、K
22、FMC_PFAPR_M1PFD_MASK
23、FMC_PFAPR_M0PFD_MASK;///设置系统分频器//MCG=PLL,core=MCG,bus=MCG/3,FlexBus=MCG/3,Flashclock=MCG/9SIM_CLKDIV1=SIM_CLKDIV1_OUTDIV1(0)
24、SIM_CLKDIV1_OUTDIV2(2)
25、SIM_CLKDIV1_OUTDIV3(2)
26、SIM_CLKDIV1_OUTDIV4(8);//从新存FMC_PFAPR的原始值FMC_PFAPR=temp_reg;//设置VCO分频器,使能PLL为100MHz,LOLIE=0,PLLS=1,CME=0,
27、VDIV=26MCG_C6=MCG_C6_PLLS_MASK
28、MCG_C6_VDIV(30);//VDIV=31(x54)//VDIV=26(x50)while(!(MCG_S&MCG_S_PLLST_MASK)){};//waitforPLLstatusbittosetwhile(!(MCG_S&MCG_S_LOCK_MASK)){};//WaitforLOCKbittoset//进入PBE模式//通过清零CLKS位来进入PEE模式//CLKS=0,FRDIV=3,IREFS=0,IRCLKEN=0,IREFSTEN=0MCG_C1&=~MCG_C1_CLKS_MASK;//等待时钟状态位
29、更新while(((MCG_S&MCG_S_CLKST_MASK)>>MCG_S_CLKST_SHIFT)!=0x3){};//SIM_CLKDIV2
30、=SIM_CLKDIV2_USBDIV(1);//设置跟踪时钟为内核时钟SIM_SOPT2
31、=SIM_SOPT2_TRACECLKSEL_MASK;//在PTA6引脚上使能TRACE_CLKOU功能PORTA_PCR6=(PORT_PCR_MUX(0x7));