ARM, آموزش, آموزش STM8, توصیه شده, مقاله های سیسوگ

PWM در STM8 | قسمت نوزدهم آموزش STM8

آموزش STM8 قسمت 19 - PWM

سیسوگ در قسمت هجدهم آموزش میکروکنترلر STM8 تایمر 4 را به شما معرفی کرد و برنامه آن را با هم بررسی کردیم. در این قسمت از مجموعه مقالات آموزش میکروکنترلر STM8  قصد دارد ویژگی پرکاربرد PWM را بررسی کند. با سیسوگ همراه باشید.

 

PWM :

تایمر 2 یا به عبارتی PWM جز ویژگی های مهم هر میکروکنترلر است. PWM کاربردهای بسیاری از جمله کنترل موتور، SMPS ها، کنترل روشنایی، تولید صدا، تولید موج و غیره را دارد. برخلاف دیگر میکروکنترلرها که کانال های PWM محدودی دارند، STM8 دارای چندین کانال PWM است، که تعدادی از آن ها به عنوان تایمر 2 (تایمر عمومی) هستند. به عنوان مثال، STM8S003F دارای سه کانال PWM مستقل است.

PWMهایی که توسط تایمر عمومی تولید می شوند، PWMهای اولیه هستند. این‌ها می توانند برای کارهای ساده ای همچون کنترل روشنایی LED، کنترل موتور سروو و غیره مورد استفاده قرار گیرند. که نیازی به ویژگی های پیشرفته مانند dead-time، brake یا تولید زمان موج را ندارد. در این بخش نحوه استفاده از تایمر 2 برای تولید PWMهای ساده را خواهیم دید.

توجه داشته باشید که در میکروکنترلرهای پیشرفته STM8  ورودی / خروجی های تایمر به عملکرد بیت های پیکربندی بستگی دارد. قبل از بارگذاری کد این بیت ها را بررسی کنید. در برخی میکروکنترلرهای STM8 ورودی / خروجی ها قابل انتقال هستند، بدین معنی که ورودی / خروجی را می توان در GPIO های مختلف مبادله کرد. در صورت نیاز می توانید از STM8CubeMx استفاده کنید.

اتصالات سخت افزاری 

اتصالات سخت افزاری PWM

نمونه کد PWM

این یک مثال بسیار ساده است. در اینجا هر 3 کانال تایمر 2 برای تغییر نور LED های متصل به کانال های تایمر استفاده می شود.

 

توضیحات

این بار نیز CPU و کلاک داخلی در 2 مگاهرتز تنظیم می شوند.

 

 

سپس باید PWM GPIOها را به عنوان خروجی تعریف کنیم.

 

 

درست مانند دیگر میکروکنترلرها، نسل PWM شامل یک تایمر است. همانطور که گفتیم TIM2 یک تایمر است. باید قبل از اینکه کانال PWM را تنظیم کنیم، در ابتدا زمان را تنظیم کنیم.

 

 

در کدهای بالا، تایمر 2 دارای پایه زمانی 16ms یا 62.5KHz است. این پایه زمانی مجدداً توسط واحد مقایسه کننده خروجی  (OC) تقسیم می‌شود. در اینجا پایه 62.5KHz به 1000 تقسیم می‌شود تا فرکانس PWM 62.5Hz حاصل شود. حداکثر چرخه کاری 1000 است. علاوه بر این، می توانیم پلاریته PWM را تنظیم کنیم و به کانال فرمان دهیم که به صورت معکوس عمل کند یا نه.

برای تغییر وظیفه PWM باید تابع زیر را فراخوانی کنیم:

 

 

توجه داشته باشید که در میکروکنترلرهای STM8 بین فرکانس کاری و فرکانس PWM تبادلی وجود دارد. اگر فرکانس کاری بزرگ باشد فرکانس PWM کوچک است و برعکس. این موضوع برای تمامی تایمرها صادق است.

PWM در STM8

سیسوگ در قسمت بیستم از مجموعه آموزش میکروکنترلر STM8 قسمت PWM تایمر 1 را مورد بررسی قرار می‌دهد. با سیسوگ همراه باشید.

 

منبع

مطالب مرتبط

 

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

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

3 دیدگاه در “PWM در STM8 | قسمت نوزدهم آموزش STM8

  1. Avatar for sajjad sajjad گفت:

    سلام. من از stm8s105k4c6 استفاده می کنم. در تایمر 2 کانال 3 به صورتی هست که برای فعال شدن نیاز به remap داره و چیزی تو اینترنت ندیدم. کسی تونسته حل کنه این مشکل رو؟

  2. Avatar for محمد محمد گفت:

    سلام مرسی از سیسوگ بابت این مطالب ارزشمند و شما نویسنده محترم که قطعا ساعت ها وقت گذاشتید تا این مطالب به سرانجام برسه تشکر میکنم..
    دوستان توجه کنید یادگیری تایمرخیلی مهمه و استفاده از اون منجر میشه تا شما بتونید پروژه و برنامه های بسیاره پیچیده رو پیاده سازی کنید ..منتظر اموزش های بعدی بخصوص twi هم هستم ..
    سیسوگ نگو بهترین بگو ههه موفق باشید

    1. Avatar photo electronic girl گفت:

      سلام
      ممنون از شما… حمایت دوستان باعث دلگرمی ما میشه.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *