NXP MCU 技术william hill官网
直播中

学电超人

12年用户 771经验值
擅长:微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制
私信 关注
[问答]

MPC5644A系统时钟配置流程是怎样的?

你好
现在遇到一个问题,MPC5644A芯片的时钟配置方式是从同事那里学来的,发现如果要将MPC5644A系统配置为80M,必须先配置为40M,想知道这个过程是否合理?
如果我直接把系统时钟配置成80M而不是先配置成40M,会不会有什么问题?
下面是MPC5644A芯片系统时钟配置流程
void sysclk_init_fnc(void)
{
/*------------------------禁用时钟监控标志---------------- */
FMPLL.ESYNCR2.R = 0x00000000;
/* 确保丢失锁重置被禁用*/
/* 确保丢失时钟重置被禁用*/
/* 确保丢失锁 IRQ 被禁用*/

/*-------------------------------------------- ----------------------*/
/* 系统时钟设置 */
/*---------------- ---------------------------------------------- -*/
/*------------时钟配置模式---------------------------- */
FMPLL.ESYNCR1.B.EMODE = 0x0;
/* 时钟配置模式:传统模式 */
FMPLL.ESYNCR1.B.CLKCFG = 0x07;
/* 时钟模式:正常 w/ Crystal Ref */
/*-------------------------------------------- ------------------*/
/* PLL 斜坡 */
/*-------------------- ----------------------------------------------*/
/* -  -  -  -  -  -  -  -  -  -  -  - - 阶段1 -  -  -  -  -  -  -  -  -  - - --------------*/
FMPLL.SYNCR.B.RFD = 0x2;
/* PLL 斜坡 1 分频器:4 */
FMPLL.SYNCR.B.PREDIV = 0x00;
/* 预分频器选择:1 */
FMPLL.SYNCR.B.MFD = 0x6;
/* PLL 斜坡第 1 步乘数:10 */
while (0 == FMPLL.SYNSR.B.LOCK){};
/* 等待 FMPLL 获取锁 */
FMPLL.SYNSR.B.LOLF = 0x1;
/* 清除失锁标志 */
/*------------------------ 阶段 2-------------------- --------------*/
FMPLL.SYNCR.B.RFD = 0x2;
/* PLL Ramping Step 2 分频器:4 */
FMPLL.SYNCR.B.PREDIV = 0x00;
/* 预分频器选择:1 */
FMPLL.SYNCR.B.MFD = 0x10;
/* PLL 斜坡第 2 步乘数:20 */
while (0 == FMPLL.SYNSR.B.LOCK){};
/* 等待 FMPLL 获取锁 */
FMPLL.SYNSR.B.LOLF = 0x1;
/* 清除失锁标志 */

/*-------------------------------------------- ------------------*/
/* FMPLL 设置 */
/*-------------------- ----------------------------------------------*/
FMPLL.SYNFMMR.R = 0x00000000;
/* 频率调制:禁用 */
/* 传播类型选择:中心传播 */
/* 调制周期:0*/
/* 调制增量步长:0*/
while(1 == FMPLL.SYNFMMR.B.BSY){} ;
/* 等待 FMPLL 处理完成 */
/*------------系统时钟分频器设置----------------------------*/
SIU.SYSDIV.R = 0x00000010;
/* FlexCAN 时钟分频器:1*/
/* 系统时钟分频器旁路:启用 */
/* 系统时钟分频器:1*/
/*-------------------------------------------- ------------------*/
/* 时钟监控标志 */
/*---------------- ----------------------------------------------* /
FMPLL.ESYNCR2.R = 0x00000003;
/* 时钟丢失功能:禁用 */
/* 锁定丢失时复位:禁用 */
/* 时钟丢失时复位:禁用 */
/* 锁定丢失中断请求:禁用*/
/* 时钟丢失中断请求:禁用 */
}

                                       
                                
                        
                        
                                
                        
                       

更多回帖

发帖
×
20
完善资料,
赚取积分