ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

نمایش نتایج: از 1 به 4 از 4
  1. #1
    2010/07/08
    134
    3
    aed

    استفاده از اسیلاتور خارجی

    سلام.
    من از میکروکنترلر STM32F103RET6 استفاده می کنم. برای برنامه نویسی از کامپایلر keil و کتابخانه CMSIS استفاده کردم. کلاک میکرو را در فایل system_stm32f10x.c بر روی 72MHz تنظیم کردم و برنامه بر روی هدر برد eca که یک کریستال 8MHz دارد در فرکانس 72MHz به خوبی کار می کند (البته ADC دارای نویز زیاد بود). در مدار اصلی یک اسیلاتور 8MHz را جایگزین کریستال 8MHz کردم. وقتی همان برنامه قبلی مربوط به هدر برد را بر روی میکروی مدار جدید (با اسیلاتور خارجی) پروگرام کردم، مدار بدون مشکل کار کرد. با توجه به دیتاشیت میکرو، برای استفاده از اسیلاتور خارجی، بیت های HSEON و HSEBYP در رجیستر RCC.CR باید ست شود در صورتی که در تابع systemInit این دو بیت ریست می شوند و با این حال مدار با اسیلاتور خارجی کار می کند. در ضمن برای آزمایش، این دو بیت را در تابع مذکور ست کردم و برنامه را بر روی هدربرد eca (با کریستال 8MHz) پروگرام کردم که باز هم میکرو به درستی کار کرد. سوال من این است : روش صحیح تنظیم کتابخانه CMSIS برای استفاده از اسیلاتور خارجی به جای کریستال خارجی، چیست؟ همچنین تا آنجایی که من اطلاع دارم تنظیمات پیش فرض کتابخانه بر روی کریستال 8MHz است که ما می توانیم فرکانس کاری را یکی از مقادیر 24، 36، 48، 56 و 72 مگاهرتز انتخاب کنیم.
  2. #2
    2014/01/25
    شهرکرد
    247
    267

    پاسخ : استفاده از اسیلاتور خارجی

    سلام برای تنظیم کریستال خارجی یا اوسیلاتور خارجی میتونی تابع زیر رو در ابتدای برنامه اجرا کنی و دستور بایپس کردن منبع کلاک رو بهش اضاف کن، کد زیر کلاک سیستم رو روی 48 میذاره میتونی به 72 تغییرش بدی، برای مطالب بیشتر میتونی از این پاورپوینت استفاده کنی:
    http://course.sdu.edu.cn/G2S/eWebEditor/uploadfile/20131221125813423.ppt

    کد:
    ErrorStatus  HSEStartUpStatus;
    
    
    void RCC_Configuration(void)
    {
     /*set RCC registers to default values RCC system reset*/
     RCC_DeInit();
    
     /*Enable HSE */
     RCC_HSEConfig(RCC_HSE_ON);
    
     /*Wait till HSE is ready */
     HSEStartUpStatus = RCC_WaitForHSEStartUp();
    
     if(HSEStartUpStatus == SUCCESS)   // SUCCESS
     {
     /*AHB= SYSCLK= 48 MHz, HCLK(AHB clock) = SYSCLK */
      RCC_HCLKConfig(RCC_SYSCLK_Div1); 
     
     /*PCLK2(APB2 clock)= AHB clock/2 = 24 MHz,PCLK2 = HCLK/2 */
      RCC_PCLK2Config(RCC_HCLK_Div2);   
    
    /*PCLK1(APB1 clock)= AHB clock/4=12 MHz, PCLK1 = HCLK/4 */
      RCC_PCLK1Config(RCC_HCLK_Div4); //RCC_HCLK_Div4: APB1 clock = HCLK/4=12MHz
      /* set Flash delay clocks to 2 */
      FLASH_SetLatency(FLASH_Latency_2);
    
      /* Enable Flash Prefetch Buffer*/
      FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
    
     /* PLLCLK = 8MHz * 6 = 48 MHz */
      RCC_PLLConfig ( RCC_PLLSource_HSE_Div1, RCC_PLLMul_6); 
    
      /* Enable PLL */ 
      RCC_PLLCmd(ENABLE);
    
      /* Wait till PLL is ready*/
      while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
      {
      }
    
      /* Select PLL as system clock source */  //Select PLLCLK as SYSCLK
      RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); 
      /*Wait till PLL is used as system clock source */
      while(RCC_GetSYSCLKSource() != 0x08)
      {
      }
     }
      
    /* Enable peripheral clocks --------------------------------------------------*/
     /* GPIOA, GPIOB and SPI1 clock enable */
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |    RCC_APB2Periph_GPIOB |   RCC_APB2Periph_SPI1, ENABLE);
    
     /* Enable GPIOC, GPIOD clock */
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC| RCC_APB2Periph_GPIOD, ENABLE);
    }
  3. #3
    2010/07/08
    134
    3
    aed

    پاسخ : استفاده از اسیلاتور خارجی

    سلام و تشکر. یک سوال! برای بای پس کردن منبع کلاک (مطابق با چیزی که در manual خواندم)، بیت HSEON و HSEBYP باید set شود. در کدی که شما زحمت کشیدید، من set شدن HSEBYP را ندیدم. لطفا راهنمایی بفرمایید در کدام قسمت عمل بای پس شدن انجام می شود.
  4. #4
    2014/01/25
    شهرکرد
    247
    267

    پاسخ : استفاده از اسیلاتور خارجی

    برای بای پس کردن منبع کلاک بجای این کد :
    کد:
    RCC_HSEConfig(RCC_HSE_ON);
    کد زیر رو قرار بدین:
    کد:
    RCC_HSEConfig(RCC_HSE_Bypass);
نمایش نتایج: از 1 به 4 از 4

موضوعات مشابه

  1. مشکل با اسیلاتور خارجی lpc1768
    توسط samanelec در انجمن NXP
    پاسخ: 3
    آخرين نوشته: 2014/05/26, 15:58
  2. استفاده از اسیلاتور خارجی برای 8051 در پروتئوس
    توسط اشکان غفارزاده در انجمن 8051
    پاسخ: 5
    آخرين نوشته: 2014/02/23, 22:46
  3. اسیلاتور خارجی
    توسط abolfazlk873 در انجمن میکروکنترلرهای PIC
    پاسخ: 3
    آخرين نوشته: 2013/04/30, 00:07
  4. اسیلاتور خارجی
    توسط roze_siah در انجمن میکروکنترلرهای AVR
    پاسخ: 2
    آخرين نوشته: 2011/06/29, 09:59
  5. پاسخ: 6
    آخرين نوشته: 2007/12/07, 10:14

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •