MPC56xxM锁相环的配置问题!,求各位指导,谢谢!
- UID
- 846090
|
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.
所以我的锁相环配置根本不起作用,不知道该如何配置,谢谢! |
|
|
|
|
|
- UID
- 846090
|
|
|
|
|
|
- UID
- 846090
|
|
|
|
|
|