اطلاعیه

Collapse
No announcement yet.

تنظیم فرکانس میکرو

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تنظیم فرکانس میکرو

    سلام به همه
    من یه برنامه ساده نوشتم که پورت 1 - پین صفر رو یک و صفر میکنه
    وقتی با بوت لودر برنامه رو پروگرم(از آدرس 2000) میکنم ، -> فرکانس کلاک پین خروجی روی اسکوپ 12.5Mhz هست.
    وقتی که حافظه رو پاک میکنم و بدون بوت لودر برنامه رو پروگرم (از آدرس 00 - با Jlink) میکنم -> فرکانس کلاک پین خروجی روی اسکوپ 500Khz هست.

    برنامه اول با بوت لودر : فقط پین یک و صفر میشه
    کد:
    [left]
    #include "LPC17xx.h"
    
    int main(void)
    {
    //unsigned int i,a;
    	//************************* Tanzim Freq CPU ******************************************
    /*	unsigned char m,n,d;
      m=100;//Multiplier value
      n=6;//Pre-Divider value
      d=2;//cpu div D=4-1=3
      //Config LPC1768 Register
      LPC_SC->SCS=0x20;// Enable Crystal
      LPC_SC->PLL0CON=0X00; //  Disable PLL0 
      LPC_SC->PLL0FEED=0x000000AA;// Baad az taghire PLL0CON ya PLLCFG
      LPC_SC->PLL0FEED=0x00000055;// Baad az taghire PLL0CON ya PLLCFG
      while(!(LPC_SC->SCS&0x40)); // Wait Ta Osilator Paydar Beshee
      LPC_SC->CLKSRCSEL=0x01;   // Manbaee CLK Be PLL motasel shavad
      LPC_SC->PLL0CFG=((n-1)<<16)|(m-1);// Meghdare M Va N Ra gharar midahim.{(Fin*2*M)/n} / D
      LPC_SC->PLL0FEED=0x000000AA;// Baad az taghire PLL0CON ya PLLCFG
      LPC_SC->PLL0FEED=0x00000055;// Baad az taghire PLL0CON ya PLLCFG
      LPC_SC->PLL0CON=0X01;    // Enable PLL0
      LPC_SC->PLL0FEED=0x000000AA;// Baad az taghire PLL0CON ya PLLCFG
      LPC_SC->PLL0FEED=0x00000055;// Baad az taghire PLL0CON ya PLLCFG
      LPC_SC->CCLKCFG=d;// Zarib Taghsim konande Freq PLL0 CPU CLK=100Mhz
    	 // LPC_SC->PCLKSEL1=0x00000004; //8; // GPIO=Freq CPU/2 = 50Mhz 
       LPC_SC->PCLKSEL1|=1<<2;//Peripheral clock selection for GPIO interrupts.
       LPC_SC->PCLKSEL1|=0<<4;//Peripheral clock selection for the Pin Connect block.
     	while((LPC_SC->PLL1STAT&0x04000000==0));// Wait Ta PLL roye Freq Ghofl beshee 
    		LPC_SC->PCON|=2;// Motasel shodan PLL be sayere Blok ha
      LPC_SC->PLL0FEED=0x000000AA;// Baad az taghire PLL0CON ya PLLCFG
    		LPC_SC->PLL0FEED=0x00000055;// Baad az taghire PLL0CON ya PLLCFG
    */
    //**************************************************************************************	
      LPC_GPIO1->FIODIR=1; //Config pin P1.0 = OUTPUT
    	 LPC_PINCON->PINSEL2|=00; // Tanzim roye GPIO ==> defualt hamishee roye GPIO set hastand
    	 LPC_PINCON->PINMODE2|=0x03;// Pull Down P1.0 Enable 
     while(1){
    	 
    	 LPC_GPIO1->FIOSET=0x01;
    	// for(i=00;i<720000;i++);
    	 LPC_GPIO1->FIOCLR=0x01;
    	// for(i=00;i<720000;i++);
     };//while
    
    }//main[/left]

    برنامه دوم : تنظیمات فرکانس میکرو هم اعمال شده
    کد:
    [left]#include "LPC17xx.h"
    
    int main(void)
    {
    //unsigned int i,a;
    	//************************* Tanzim Freq CPU ******************************************
    	unsigned char m,n,d;
      m=100;//Multiplier value
      n=6;//Pre-Divider value
      d=3;//cpu div D=4-1=3
      //Config LPC1768 Register
      LPC_SC->SCS=0x20;// Enable Crystal
      LPC_SC->PLL0CON=0X00; //  Disable PLL0 
      LPC_SC->PLL0FEED=0x000000AA;// Baad az taghire PLL0CON ya PLLCFG
      LPC_SC->PLL0FEED=0x00000055;// Baad az taghire PLL0CON ya PLLCFG
      while(!(LPC_SC->SCS&0x40)); // Wait Ta Osilator Paydar Beshee
      LPC_SC->CLKSRCSEL=0x01;   // Manbaee CLK Be PLL motasel shavad
      LPC_SC->PLL0CFG=((n-1)<<16)|(m-1);// Meghdare M Va N Ra gharar midahim.{(Fin*2*M)/n} / D
      LPC_SC->PLL0FEED=0x000000AA;// Baad az taghire PLL0CON ya PLLCFG
      LPC_SC->PLL0FEED=0x00000055;// Baad az taghire PLL0CON ya PLLCFG
      LPC_SC->PLL0CON=0X01;    // Enable PLL0
      LPC_SC->PLL0FEED=0x000000AA;// Baad az taghire PLL0CON ya PLLCFG
      LPC_SC->PLL0FEED=0x00000055;// Baad az taghire PLL0CON ya PLLCFG
      LPC_SC->CCLKCFG=d;// Zarib Taghsim konande Freq PLL0 CPU CLK=100Mhz
    	 // LPC_SC->PCLKSEL1=0x00000004; //8; // GPIO=Freq CPU/2 = 50Mhz 
       LPC_SC->PCLKSEL1|=1<<2;//Peripheral clock selection for GPIO interrupts.
       LPC_SC->PCLKSEL1|=0<<4;//Peripheral clock selection for the Pin Connect block.
     	while((LPC_SC->PLL1STAT&0x04000000==0));// Wait Ta PLL roye Freq Ghofl beshee 
    		LPC_SC->PCON|=2;// Motasel shodan PLL be sayere Blok ha
      LPC_SC->PLL0FEED=0x000000AA;// Baad az taghire PLL0CON ya PLLCFG
    		LPC_SC->PLL0FEED=0x00000055;// Baad az taghire PLL0CON ya PLLCFG
    //**************************************************************************************	
      LPC_GPIO1->FIODIR=1; //Config pin P1.0 = OUTPUT
    	 LPC_PINCON->PINSEL2|=00; // Tanzim roye GPIO ==> defualt hamishee roye GPIO set hastand
    	 LPC_PINCON->PINMODE2|=0x03;// Pull Down P1.0 Enable 
     while(1){
    	 
    	 LPC_GPIO1->FIOSET=0x01;
    	// for(i=00;i<720000;i++);
    	 LPC_GPIO1->FIOCLR=0x01;
    	// for(i=00;i<720000;i++);
     };//while
    
    }//main[/left]
    تقریبا همه تنظیمات رو درست انجام میدم ولی باز تغییر در خروجی نمیبینم
    مثل اینکه هر چقدر من با فرکانس و دستکاری میکنم تاثیری نداره
    system_LPC17xx.c رو نگاه کردم ولی از تنظیمات فرکانسش چیزی سر در نیاوردم تا صبح باهاش ور رفتم :sad:
    لطفا راهنماییم کنید
    ممنون
    قومي متفکرند اندر ره دين
    قومي بگمان فتاده در راه يقين
    ميترسم از آن که بانگ آيد روزي
    که اي بي خبران ، راه نه آن است و نه اين...!

    #2
    پاسخ : تنظیم فرکانس میکرو

    من نتیجه رو در لینک زیر پیدا کردم :mrgreen: :mrgreen: :mrgreen:
    http://www.eca.ir/forum2/index.php?topic=64474.0
    نتونستم پست و پاک کنم
    قومي متفکرند اندر ره دين
    قومي بگمان فتاده در راه يقين
    ميترسم از آن که بانگ آيد روزي
    که اي بي خبران ، راه نه آن است و نه اين...!

    دیدگاه

    لطفا صبر کنید...
    X