Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
10 years ago.
pll configuration pls any one suggest me a solution
#include "mbed.h" //#define SYSCLK 96000000 #define EXTCLK 12000000 #define PLLCLK 288000000 #define PLLMULT (PLLCLK/2/EXTCLK)-1 Serial pc(USBTX,USBRX); void initclock() { pc.printf("in main\n"); //LPC_SC->CLKSRCSEL =(1<<0); // initize main oscillator pc.printf("BREAK 1\n"); LPC_SC->PLL0CON&=~(1<<1);// /////////////DISCONNECT/////////////// //FED SEQ LPC_SC->PLL0FEED =0xAA; LPC_SC->PLL0FEED =0x55; // while ((LPC_SC->PLL0STAT & (1<<25)) != 0x00); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// pc.printf("BREAK 2\n"); /////////////disable previous pll/////////////// LPC_SC->PLL0CON&=~(1<<0); /////////DISABLE PLL0/////////////// //FED SEQ LPC_SC->PLL0FEED =0xAA; LPC_SC->PLL0FEED =0x55; //while((LPC_SC->PLL0STAT &(1<<24))!=0x00); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// LPC_SC->CCLKCFG|=0; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// LPC_SC->CLKSRCSEL|=(1<<0); // initize main oscillator /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// pc.printf("BREAK 3\n"); LPC_SC->PLL0CFG = PLLMULT; //CCLKCFG VALUE ARE SUBSTITUTED// //FED SEQ LPC_SC->PLL0FEED =0xAA; LPC_SC->PLL0FEED =0x55; //////////////set enable///////////// pc.printf("BREAK4\n"); LPC_SC->PLL0CON|=(1<<0); LPC_SC->PLL0FEED =0xAA; LPC_SC->PLL0FEED =0x55; //while((LPC_SC->PLL0STAT &(1<<24))==0x00); pc.printf("BREAK 5\n"); LPC_SC->CCLKCFG |= (2<<0); /// 96Mhz setting divided by 3 (288/3); LPC_SC->PLL0FEED =0xAA; LPC_SC->PLL0FEED =0x55; ///setting dsiv value and checking if its locked to desired frequency; while(LPC_SC->PLL0STAT &(1<<26)==0x00); /////////////////////////CONNECT PLL0///////////////////////// pc.printf("BREAK6\n"); LPC_SC->PLL0CON|=(1<<1); LPC_SC->PLL0FEED =0xAA; LPC_SC->PLL0FEED =0x55; while(LPC_SC->PLL0STAT &(1<<25)==0x00); /// SystemCoreClockUpdate(); } ///////////PRINTING D VALUE//////////////////////// int main() { initclock(); // wait(1); pc.printf("HI\n"); pc.printf("PLL0CON =0x%08X\n",LPC_SC->PLL0CON); pc.printf("PLL0STAT=0x%08X\n",LPC_SC->PLL0STAT); pc.printf("PLLCLK =0x%08X\n",LPC_SC->CCLKCFG); int value=LPC_SC->PLL0STAT&0x7FFF; pc.printf("value %d\n",value); ////SystemCoreClockUpdate(); pc.printf("%d",SystemCoreClock); }
i have two challenges here hi i am trying to print the message in the initclock(); but the messages areNOT gettin printed but in the mainloop i get the values printed, and systemcoreclock at 96000000Mhz but if i change CCLKDIV (ie CCLKCFG to 3 and other values ill get junk values ,) can any one suggest me what could be done...
Assigned to
10 years ago.This means that the question has been accepted and is being worked on.