جلسه بیست و دوم _ نحوه راه اندازی واحد PWM ونحوه انجام تنظیمات در محیط STM32CubeMX
در ادامه آموزش STM32 با استفاده از توابع HAL در این جلسه قصد داریم تا به معرفی واحد PWM بپردازیم.PWM مخفف pulse Width Modulation می باشد و به معنای مدولاسیون عرض پالس می باشد. این تکنیک در صنایع الکترونیک و مخابراتی کاربرد زیادی دارد و از آن برای کدینگ پیام های مخابراتی، کنترل توان دستگاه های الکتریکی، شارژ باتری، کنترل نور LED ها، کنترل سرعت موتور و … استفاده می شود.در واقع PWM یک موج مربعی می باشد و همانطور که می دانید امواج مربعی دو حالت صفر و یک یاحالت روشن و خاموش دارند خاصیت امواج PWM در این است که زمان روشن بودن یا یک بودن آن ها نسبت به زمان خاموش بودن یا صفر بودن آنها متغییر است.
این خاصیت را با عبارت Duty Cycle بیان می کنند که بیانگر مدت زمان یک بودن پالس به کل زمان پریود می باشد و آن را معمولا بر حسب (%) نمایش می دهند.
در تصویر زیر یک موج PWM را با Duty Cycle های مختلف می توانید مشاهده نمایید.
با توجه به اینکه میکرو کنترلرها نیز از این ویژگی برخوردارند در این جلسه قصد داریم تا از این ویژگی مهم و پرکاربرد استفاده نماییم و نحوه راه اندازی و تنظیمات مربوط به آن را بیاموزیم. تولید موج PWM در واحد های تایمر که قابلیت تولید PWM را دارند انجام می شود. برای شروع ابتدا نرم افزار STM32CubeMXرا اجرا می کنیم و مطابق جلسات گذشته تنظیمات اولیه شامل تنظیم منبع کلاک میکرو و نوع دیباگر و پروگرامر و فرکانس کاری مدار را تنظیم می نماییم واز بخش Pinout & Configuration وارد قسمت Timers می شویم و TIM1 را انتخاب می کنیم.
با انتخاب TIM1 از قسمت TIM1 Mode and Configuration و از بخش Mode تنظیمات را مطابق تصویر زیر انجام می دهیم.
در این قسمت تنها کافیست تا Clock Source را در حالت Internal Clock و Channel1 را در حالت PWM Generation CH1 تنظیم می نماییم.پس از آن پایه مورد نظر فعال می شود.
در ادامه می توانید در قسمت Configuration بقیه تنظیما مربوط به واحد PWM را تنظیم نمایید و در آن Prescaler ، Counter Period را تنظیم نمایید تا به فرکانس دلخواه خود برسیم. کلاک تایمرهای ۱ و ۸ از APB2 timer clocks تامین می شود و کلاک تایمر های ۲ و ۳ و ۴ و ۵ و ۶ و ۷ از APB1 Timer clocks تامین می شود. در این پروژه فرکانس این واحد ها ۸ مگاهرتز در نظر گرفته شده است.
پس از آن Prescaler و Counter Periodمطابق تصویر زیر تنظیم می نماییم.
پس از انجام این تنظیمات فرکانس موج PWM از رابطه زیر قابل محاسبه می باشد
پس از انجام تنظیمات می توانیم با انتخاب گزینه Generate Code کد برنامه را تولید نمایید. در جلسه بعد به معرفی دستورات مورد استفاده در پروژه می پردازیم و با دستورات مربوط به PWM بیشتر آشنا می شویم.
زندگی تون پر از نور و مسیرتون سبز
محمد هادی دشتی
لینک های مرتبط با آموزش:
جلسه اول_معرفی هسته آرم و میکروکنترلرهای ۳۲ بیتی شرکت ST
جلسه دوم_معرفی نرم افزارهای مورد نیازجهت برنامه نویسی و پروگرام
جلسه سوم _ آموزش نحوه دانلود آخرین نسخه از نرم افزار STM32CubeIDE
جلسه چهارم _نصب نرم افزار STM32CubeIDE و نصب کتابخانه
جلسه پنجم _ نحوه انجام تنظیمات در نرم افزار STM32CubeMX برای تولید کد برنامه چشمک زن
جلسه ششم _ برنامه نویسی یک چشمک زن ساده با استفاده از نرم افزار STM32CubeIDE
جلسه هفتم _ نحوه انجام تنظیمات پایه به صورت ورودی در نرم افزار STM32CubeMX و برنامه نویسی یک کلید
جلسه هشتم _ معرفی نرم افزار STM32 Flash Loader Demonstrator (پروگرامر سریال)
جلسه نهم _ نحوه راه اندازی ال سی دی کاراکتری (قسمت اول)
جلسه دهم _ نحوه راه اندازی ال سی دی کاراکتری _ افزودن کتابخانه (قسمت دوم)
جلسه یازدهم _ نحوه راه اندازی ال سی دی کاراکتری _ معرفی توابع (قسمت سوم)
جلسه دوازدهم _ دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد ADC(بخش اول)
جلسه سیزدهم_دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد ADC(بخش دوم)
جلسه چهاردهم_دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد تایمر(بخش اول)
جلسه پانزدهم_دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد تایمر(بخش دوم)
جلسه شانزدهم _ نحوه راه اندازی وقفه با تحریک خارجی(جلسه اول)
جلسه هفدهم _ راه اندازی وقفه با تحریک خارجی (بخش دوم)
جلسه هجدهم_دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی سون سگمنت(بخش اول)
جلسه نوزدهم _ نحوه راه اندازی سون سگمنت و برنامه آن در محیط STM32CubeIDE (بخش دوم)
جلسه بیستم _ نحوه راه اندازی واحد کانتر ونحوه انجام تنظیمات در محیط STM32CubeMX(بخش اول)
جلسه بیست و یکم _ نحوه راه اندازی کانتر و برنامه آن در محیط STM32CubeIDE (بخش دوم)
جلسه بیست و سوم _ نحوه راه اندازی واحد PWM (بخش دوم)
جلسه بیست و چهارم _ معرفی واحد UART و سطوح منطقی ولتاژ و انواع مبدل ها(بخش اول)
جلسه بیست پنجم _ نحوه راه اندازی واحد UART ونحوه انجام تنظیمات در محیط STM32CubeMX(بخش دوم)