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





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









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









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






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

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

نمایش نتایج: از 1 به 7 از 7

موضوع: تولید PWM

  1. #1
    2010/04/16
    اصفهان
    1,278
    102

    تولید PWM

    باسلام

    قصد ایجاد PWM با مشخصات زیر رو برای کنترل موتور دارم :
    فرکانس 50 هرتز (پریود 20 میلی ثانیه) و DutyCycle بین 5% تا 10% به ازای کمترین و بیشترین سرعت موتور یعنی 1 تا 2 میلی ثانیه است ، مانند تصویر زیر :
    رجیستر ها مثل PWMC_CMR و PWMC_CPRDR و PWMC_CDTYR چطور تنظیم کنم ؟
    تنظیم فرکانس میکرو روی 48 مگاهرتز و PWMC_CPRDR روی 250 درست است ؟

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    با سپاس

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  2. #2
    2011/03/10
    2
    0

    پاسخ : تولید PWM

    سلام
    می تونی به صورت زیر عمل کنی


    void pwm_init(void)
    {
    AT91C_BASE_PIOA->PIO_PDR = (AT91C_PIO_PA0);
    AT91C_BASE_PIOA->PIO_ASR = (AT91C_PIO_PA0);
    AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_PWMC);
    AT91C_BASE_PWMC->PWMC_DIS = 0XF;
    AT91C_BASE_PWMC->PWMC_MR = 0;
    AT91C_BASE_PWMC_CH0->PWMC_CMR = (0x8 | AT91C_PWMC_CPOL);
    AT91C_BASE_PWMC_CH0->PWMC_CPRDR = 3600;
    AT91C_BASE_PWMC_CH0->PWMC_CDTYR = 180;
    AT91C_BASE_PWMC->PWMC_ENA = 0X1;
    }

    حالا با استفاده از تابع زیر با دادن عددی بین 180 تا 360 دیوتی سایکل بین 5 تا 10 درصد تغییر می کند
    void pwm_duty(int a)
    {
    AT91C_BASE_PWMC_CH0->PWMC_CUPDR = a;
    }
  3. #3
    2010/04/16
    اصفهان
    1,278
    102

    پاسخ : تولید PWM

    سلام

    الان پروگرام کردم ولی کار نمیکنه
    چندتا سوال دارم

    الان شما توی این خط AT91C_BASE_PWMC->PWMC_MR = 0 مد PWM رو چی انتخاب کردید ؟
    و توی این خط (AT91C_BASE_PWMC_CH0->PWMC_CMR = (0x8 | AT91C_PWMC_CPOL آیا می خواستید CPOL رو هم فعال کنید ؟ خوب این که میشه 0x208 ؟

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  4. #4
    2011/03/10
    2
    0

    پاسخ : تولید PWM

    سلام
    در PWMC_MR می تونی دو تا کلاک با نام a و b بسازی و بعد در PWMC_CMR یکیش رو بدی به pwm .

    بله می خواستم cpol رو فعال کنم که 0x208 درسته . اگر cpol فعال نباشه باید مقدار pwm رو بین 3240 تا 3420 بدی.

    من برنامه رو با شبیه ساز keil تست کردم درست بود

    #include <at91sam7s256.h>
    void pwm_init(void)
    {
    AT91C_BASE_PIOA->PIO_PDR = (AT91C_PIO_PA0);
    AT91C_BASE_PIOA->PIO_ASR = (AT91C_PIO_PA0);
    AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_PWMC);
    AT91C_BASE_PWMC->PWMC_DIS = 0XF;
    AT91C_BASE_PWMC->PWMC_MR = 0;
    AT91C_BASE_PWMC_CH0->PWMC_CMR = (0x208);
    AT91C_BASE_PWMC_CH0->PWMC_CPRDR = 3600;
    AT91C_BASE_PWMC_CH0->PWMC_CDTYR = 180;
    AT91C_BASE_PWMC->PWMC_ENA = 0X1;
    }


    void pwm_duty(int a)
    {
    AT91C_BASE_PWMC_CH0->PWMC_CUPDR = a;
    }

    int main(void)
    {
    pwm_init();
    pwm_duty(360);
    while(1);
    }

  5. #5
    2010/04/16
    اصفهان
    1,278
    102

    پاسخ : تولید PWM

    سلام

    ممنون جواب داد

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  6. #6
    2010/04/16
    اصفهان
    1,278
    102

    پاسخ : تولید PWM

    سلام

    من می خواهم با برنامه زیر فرکانس 490 هرتز با پریود 2 میلی ثانیه ایجاد بکنم :agree:
    فیلم و عکس فرکانس در زیر موجود هست که قراره دقیقاه یه همچنین فرکانسی ایجاد کنم
    اگر ممکنه راهنمایی کنید که مقادیر : CUPDR و CPRDR و CDTYR رو چطوری تعیین بکنم :question:
    این هم برنامه :
    کد:
    void pwm_init(void)
    {
    AT91C_BASE_PIOB->PIO_PDR = (1<<19);
    AT91C_BASE_PIOB->PIO_MDER = (1<<19);
    AT91C_BASE_PIOB->PIO_ASR = (1<<19);
    AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_PWMC);
    AT91C_BASE_PWMC->PWMC_DIS = 0XF;
    AT91C_BASE_PWMC->PWMC_MR = 0;
    AT91C_BASE_PWMC_CH0->PWMC_CMR = (0x208);
    AT91C_BASE_PWMC_CH0->PWMC_CPRDR = 3600;
    AT91C_BASE_PWMC_CH0->PWMC_CDTYR = 180;
    AT91C_BASE_PWMC->PWMC_ENA = 0X1;
    }
    
    
    void pwm_duty(long a)
    {
    AT91C_BASE_PWMC_CH0->PWMC_CUPDR = a;
    }
    این هم فیلم فرکانس از صفحه اسکوپ : http://uplod.ir/ugwswjt5vbwf/22112012021.mp4.htm
    این هم عکس فرکانس :

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    با سپاس

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  7. #7
    2010/04/16
    اصفهان
    1,278
    102

    پاسخ : تولید PWM

    سلام

    میگن انگار نمیشه با ARM همچنین فرکانسی ایجاد کرد
    اگر نمیشه از آیسی کنترل PWM استفاده کنم یا از 555
    یعنی واقعا نمیشه ؟

    باسپاس

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

نمایش نتایج: از 1 به 7 از 7

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

  1. تولید برق
    توسط glasses در انجمن مفاهیم پایه برق و الکترونیک
    پاسخ: 13
    آخرين نوشته: 2018/02/09, 19:46
  2. تولید برق
    توسط steelylove در انجمن مدارهای آنالوگ و مدارهای مجتمع
    پاسخ: 2
    آخرين نوشته: 2012/04/18, 17:31
  3. تولید موج PWM ?
    توسط majid.4206 در انجمن میکروکنترلرهای AVR
    پاسخ: 19
    آخرين نوشته: 2010/11/06, 11:46
  4. تولید PWM
    توسط masoodhashemy در انجمن مدارهای آنالوگ و مدارهای مجتمع
    پاسخ: 16
    آخرين نوشته: 2010/06/01, 20:53
  5. تولید صدا
    توسط hdnasiri در انجمن سایر مطالب مرتبط با ميکرو ها و پروسسورها
    پاسخ: 6
    آخرين نوشته: 2008/09/10, 14:01

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

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

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

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

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