首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

MPC56xxM锁相环的配置问题!,求各位指导,谢谢!

MPC56xxM锁相环的配置问题!,求各位指导,谢谢!

本帖最后由 plabgh 于 2012-11-16 18:39 编辑

对MPC5634不熟悉.晶振8M,想配置系统频率为80M.通过配置以后,定时器RTI好像根本没起作用,RTI还是使用的晶振频率,所以我怀疑是不是我的锁相环配置出错了.
麻烦各位老师帮我指出问题,谢谢!!!


#include "MPC5634M_MLQC80.h"


//对锁相环配置两次,试图通过一步操作来增加频率可能会引起PLL的超调量超过最大系统时钟的规定,同时会引起供电电流的短暂激增.
//因此需要分两步来实现频率的增加.第二步只改变RFD的值,它不会引起PLL锁状态的改变,因为这个分频器是在反馈路径之后.
void Init_PLL(void)
{
  FMPLL.ESYNCR1.B.CLKCFG = 7;         /* Change clk to PLL normal mode from crystal */  
  FMPLL.SYNCR.B.MFD=6;
  FMPLL.SYNCR.B.RFD=1;
  FMPLL.SYNCR.B.PREDIV=0;
  while (FMPLL.SYNSR.B.LOCK != 1) {}; /* Wait for FMPLL to LOCK  */
  FMPLL.SYNCR.B.RFD=0;
}

void Config_RTI(void)
{
  PIT.PITMCR.B.MDIS_RTI=0;     /*使能RTI时钟*/
  PIT.RTI.LDVAL.R=500000;
  PIT.RTI.TCTRL.B.TIE=1;    /*使能RTI中断*/
  PIT.RTI.TCTRL.B.TEN=1;       /*开始定时*/  
}

void IsrRti(void)
{
  PIT.RTI.LDVAL.R=500000;
  PIT.RTI.TCTRL.B.TEN=1;       /*开始定时*/
  PIT.RTI.TCTRL.B.TIE=1;    /*使能RTI中断*/
  SIU.GPDO[188].B.PDO=~(SIU.GPDO[188].B.PDO);
  PIT.RTI.TFLG.B.TIF=1;        /*清RTI中断*/
}

void enableIrq(void) {
  INTC.CPR.B.PRI = 0;     /* Lower INTC PRC0's current priority */
  asm(" wrteei 1");       /* and make sure external interrupts are enabled */   
}

void main(void) {
  volatile int i = 0;
  INTC_InstallINTCInterruptHandler(IsrRti,305,4); /*RTI中断 */
  enableIrq();
  Init_PLL();
  Config_RTI();
  SIU.PCR[188].B.OBE=1;   /* Set GPIO[188] as output pin */
  SIU.GPDO[188].B.PDO=0;
  for (;;) {
    i++;
  }
}


我用示波器测试了,不管我的锁相环如何进行配置,GPDO[188]的频率总是8Hz,后来我注释掉了 Init_PLL(),测试频率依旧是8Hz.
所以我的锁相环配置根本不起作用,不知道该如何配置,谢谢!

RTI_Test.zip (135.9 KB)

什么情况?
老师们,帮我看看!
论坛里的老师们!!!help...
返回列表