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

آموزش میکروکنترلر STM8 قسمت 19 : PWM

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

آموزش میکروکنترلر STM8 – قسمت نوزدهم:

سیسوگ در قسمت هجدهم آموزش میکروکنترلر 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

نمونه کد

این یک مثال بسیار ساده است. در اینجا هر 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 را مورد بررسی قرار می‌دهد. با سیسوگ همراه باشید.

 

منبع

نوشته های مشابه

2 دیدگاه در “آموزش میکروکنترلر STM8 قسمت 19 : PWM

  1. محمد گفت:

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

    1. N H N H گفت:

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

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

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