Content originally posted in LPCWare by Algorithm on Wed Aug 19 11:31:17 MST 2015
I'm using LPC4357 chip, I followed the Ramp up instructions on the user manual to raise the frequency to 200 MHz . When the frequency is raised , the chip gets warm but its working fine, I still can touch it as it is not really hot , I wonder if that is normal ?
//
Thats my Ramp up code
uint32_t status;
// Setting the CORE-M4 clock as the IRC (12 MHz)
status=CGU_EntityConnect(CGU_CLKSRC_IRC,CGU_BASE_M4);
if(status!=CGU_ERROR_SUCCESS) while(1);
//
// Set the XTAL freq
status=CGU_SetXTALOSC(12000000U);
if(status!=CGU_ERROR_SUCCESS) while(1);
//
// Enable the XTAL OSC
status=CGU_EnableEntity(CGU_CLKSRC_XTAL_OSC,ENABLE);
if(status!=CGU_ERROR_SUCCESS) while(1);
//
// Reconfiguring PLL1
// Setting the PLL1 clock as the XTAL_OSC
status=CGU_EntityConnect(CGU_CLKSRC_XTAL_OSC,CGU_CLKSRC_PLL1);
if(status!=CGU_ERROR_SUCCESS) while(1);
//
// Confiugre multipliers
LPC_CGU->PLL1_CTRL|=(1<<0); // Power down temporarily
LPC_CGU->PLL1_CTRL&=~(1<<6); // CCO is the feedback divider input clock
LPC_CGU->PLL1_CTRL&=~(1<<7); // Direct mode diabled
LPC_CGU->PLL1_CTRL&=~(3<<8); // PSEL=0
LPC_CGU->PLL1_CTRL&=~(3<<12); // Clear NSEL
LPC_CGU->PLL1_CTRL|=(2<<12);// NSEL= 3
LPC_CGU->PLL1_CTRL&=~(0xFF<<16); // Clear MSEL
LPC_CGU->PLL1_CTRL|=(49<<16);// MSEL=50
//
// Turn on PLL1
LPC_CGU->PLL1_CTRL&=~(1<<0);
// wait for PLL1 to lock
while((LPC_CGU->PLL1_STAT&1) == 0x0);
//
// Connect PLL1 to CORE M4
status=CGU_EntityConnect(CGU_CLKSRC_PLL1,CGU_BASE_M4);
if(status!=CGU_ERROR_SUCCESS) while(1);
for(status=0; status<1000000; status++);
//
// enable direct mode
LPC_CGU->PLL1_CTRL|=(1<<7); // Direct mode enabled