MPC5645S - External clock KO

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MPC5645S - External clock KO

698 Views
michel_dasilva
Contributor I

Hi,

I am using a MPC5645S on my project. I have a problem about external clock.

I did not use a Crystal oscillator but an external clock connected on EXTAL pin of the MPC5645S.

The clock output signal is about 1.12V peak. (same as VDDPLL)

The problem is MPC5645S doesn't work with this clock.   DATASHET indicates the possibility to use an external clock on EXTAL pin and XTLA must be left floating.

What  are registers which must be programmed to activated input external clock?

Can I overclock external clock about 40MHZ?

Sincerely,

Michel Da Silva

Labels (1)
0 Kudos
1 Reply

589 Views
davidtosenovjan
NXP TechSupport
NXP TechSupport

Sorry for my previous answer, I was wrong so I deleted it.

In case of hardware, it is just needed to connect square signal with 1.2V amplitude to EXTAL while the XTAL is open.

In case of software, you can initialize the mode/clocks like this (there is no difference in comparison to internally driven oscillator):

void InitModesAndClks(void)

{

  ME.MER.R =
0x0000001D;          /* Enable DRUN,
RUN0, SAFE, RESET modes */


CGM.FMPLL[0].CR.R = 0x003E0100;
/* 8MHz ext clock: Set PLL0 to 248 MHz, fsys=PLL/2 */                         

  ME.RUN[0].R = 0x001F0074;       /* RUN0 cfg:
16MHzIRCON,OSC0ON,PLL0ON,syclk=PLL0 */


ME.RUNPC[0].R = 0x00000010;                  /* Peri. Cfg. 0 settings: only run in RUN0
mode */

 
ME.PCTL[48].R = 0x00;                       /* MPC56xxS LINFlex0: select ME.RUNPC[1]
*/            

 
ME.PCTL[68].R = 0x00;                       /* MPC56xxS SIU: select ME.RUNPC[1] */

 
ME.PCTL[92].R = 0x00;                       /* MPC56xxS PIT: select ME.RUNPC[1] */       

  /* Mode
Transition to enter RUN0 mode: */

  ME.MCTL.R
= 0x40005AF0;         /* Enter RUN0 Mode
& Key */

  ME.MCTL.R
= 0x4000A50F;         /* Enter RUN0 Mode
& Inverted Key */  

  while
(ME.GS.B.S_MTRANS) {}     /* Wait for
mode transition to complete */    

  /* Note:
could wait here using timer and/or I_TC IRQ */

 
while(ME.GS.B.S_CURRENTMODE != 4) {} /* Verify RUN0 is the current mode
*/

}

0 Kudos