mpc5744时钟配置详细介绍大爷的理解

本文详细解析了嵌入式系统中PLL时钟源的配置过程,包括PLL0和PLL1的时钟源分配、频率计算及外围模块时钟的设置。通过具体的寄存器操作,展示了如何实现系统时钟的精确控制。

MC_CGM.AC3_SC.B.SELCTL = 0b1;
MC_CGM.AC4_SC.B.SELCTL = 0b01;
首先以上两条程序分别为pll0和PLL1分配时钟源(分为外部晶振和内部晶振16MHz)
PLLDIG.PLL0DV.B.RFDPHI1 = 8;
PLLDIG.PLL0DV.B.RFDPHI = 2;
PLLDIG.PLL0DV.B.PREDIV = 1;
PLLDIG.PLL0DV.B.MFD = 8;
fPLL0_PHI=fPLL0_refPLL0DV[MFD]/(PLL0DV[PREDIV]PLL0DV[RFDPHI])=40MHz8/(12)=160MHz
fPLL0_PHI1=fPLL0_refPLL0DV[MFD]/(PLL0DV[PREDIV]PLL0DV[RFDPHI1])=40MHz8/(18)=40MHz
分频求出PLL0_PHI和PLL0_PHI1的具体频率
PLLDIG.PLL1DV.B.RFDPHI = 2;
PLLDIG.PLL1DV.B.MFD = 16;
分频求出PLL1_PHI的频率
MC_ME.DRUN_MC.R = 0x001300F2; 进入模式并使能所有模块并且确定系统时钟【MVRON=1,FLAON=11,PLL1ON=1,PLL0ON=1,XOSCON=1,IRCON=1,SYSCLK=primary PLL(PLL0_PHI)】
MC_ME.MCTL.R = 0x30005AF0; // TARGET_MODE=DRUN,KEY=0x5AF0
MC_ME.MCTL.R = 0x3000A50F; // TARGET_MODE=DRUN,KEY=0xA50F
while(MC_ME.GS.B.S_MTRANS == 1); 等待模式转换完成

以下为配置外围时钟,时钟源是系统时钟
MC_CGM.SC_DC0.B.DIV = 3; // Freq = sysclk / (3+1) = 160MHz/4 = 40M

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值