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

PWM تایمر 1 در STM8 | قسمت بیستم آموزش STM8

آموزش میکروکنترلر STM8 - TIM1 PWM

سیسوگ در قسمت نوزدهم آموزش میکروکنترلر STM8 راه اندازی PWM با تایمر 2 در میکروکنترلر STM8 را توضیح داد و نتیجه عملکرد آن را با 3 عدد LED چشمک‌زن تست کرد. در این قسمت آموزش میکروکنترلر STM8 سیسوگ قصد دارد راه اندازی PWM با تایمر 1 را مورد بررسی قرار دهد. با سیسوگ همراه باشید.

PWM تایمر 1 :

تایمر 1 یک تایمر پیشرفته است، بنابراین PWM‌ هایی که با این تایمر تولید می‌شوند دارای ویژگی‌های اضافی نسبت به دیگر تایمر‌ها هستند. به عنوان مثال، امکان تولید PWM‌های مکمل با TIM1 وجود دارد. بیش از 3 مجموعه PWM مکمل در میکروکنترلر STM8  می‌توان تولید کرد. به عنوان مثال، PWM‌های مورد استفاده در طراحی مبدل سه فاز، یکسوکننده‌ها و … . PWM‌های تولید شده با TIM1 برای برنامه‌های کنترل موتور بسیار مفید هستند. هم‌چنین می‌توان dead_time و brake را نیز اضافه نمود. علاوه بر این‌ها، TIM1 می‌تواند PWM‌هایی را مانند PWM‌های ساخته شده توسط تایمر GP ایجاد کند. در این حالت، خروجی‌های PWM به صورت آزاد در دسترس نیست و تا چهار کانال PWM مستقل می‌تواند در دسترس قرار گیرد.

در این مثال، خواهیم دید که چگونه می‌توان PWM های مکمل را در کانال 1 TIM1 PWM ایجاد کرد.

 

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

اتصالات سخت‌افزاری برای PWM تایمر 1

نمونه کد PWM تایمر 1

 

توضیحات

این بار از تمام  16 مگاهرتز سرعت HSI برای کلاک داخلی و CPU استفاده می‌کنیم:

 

مانند مثال‌های قبل، پین‌های GPIO خروجی PWM به عنوان خروجی تنظیم می‌شوند.

 

تنظیم اولیه کانال TIM1 و OC درست همانند مثال قبلی با برخی تفاوت‌های جزئی است. به نظر می‌رسد که بخش تولید زمان نیاز به استدلال‌های اضافی دارد. به این دلیل است که:

  • بر خلاف تایمرهای دیگر، مقدار  precaler TIM1 مقدار ثابتی نیست و می‌تواند ضریبی از 2 باشد.
  • شمارنده علاوه بر شمارش رو به بالا ، شمارش به صورت معکوس را نیز دارد.
  • تایمر 1 شمارنده تکرار شونده نیز دارد.
  • به جز تایمر اصلی تمامی تایمرهای STM8 دارای 16 بیت هستند.

اگر فایل هدر تایمر 1 را باز کنید، توابع بسیاری را خواهید دید. بسیاری از این فانکشن‌ها منحصراً برای تایمر 1 هستند. که بیانگر قدرت این تایمر پیشرفته است.

به همین ترتیب، برخی از اطلاعات اضافی که در هنگام تنظیم کانال‌های OC مورد نیاز است وجود دارد. حتی اگر از کانال‌های مکمل استفاده نکنیم به اطلاعات آن‌ها نیاز داریم. می‌توان پلاریته را برای PWM در حالت پیش فرض قرار داد.

 

برای تغییر چرخه کار کانال، باید این تابع را فراخوانی کنیم:

خروجی‌ها به صورت جفتی اتفاق می‌افتند و آنها کاملاً به هم وابسته هستند. به همین دلیل هیچ عملکرد جداگانه‌ای برای خروجی با برچسب N وجود ندارد.

 

PWM TIM1

PWM TIM1

 

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

منبع

مطالب مرتبط

 

 

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

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

14 دیدگاه در “PWM تایمر 1 در STM8 | قسمت بیستم آموزش STM8

  1. Avatar for fatemeh fatemeh گفت:

    سلام من کد بالا رو در نرم افزار میزنم ارور هم نمیده اما pwm برام کار نمیکنه مشکل ازکجاس؟

    1. Avatar for Zeus ‌ Zeus ‌ گفت:

      قطعا جایی مشکل هست مثل فعال کردن تایمر یا کال کردن یه روتین یا همچین چیزی

  2. Avatar for mohsen mohsen گفت:

    سلام و عرض ادب. با تشکر از مطالب آموزشی مفید شما. در بخش تایمرها امکان این هست که توضیحاتی در مورد شمارش تعداد پالسهای ورودی هم داشته باشیم. بطور مثال یک شمارنده برای تعداد پالسهای ورودی به سیستم.

    1. Avatar for Zeus Zeus گفت:

      سلام دوست عزیز
      اگر آموزش ادامه پیدا کرد بله حتما چرا که نه !

  3. Avatar for سعید جنتی سعید جنتی گفت:

    واقعا نهایت تشکر رو از شما دارم، خیلی سایتتون آموزنده هست و این آموزش زمانی ارزش چند برابر به خودش میگیره که شما آموزش ها رو زحمت کشیدین و سپس رایگان در اختیار عموم قرار دادین، تجربه شخصی خودم در مورد آموزش stm8 اینکه آموزش متنی و رایگان شما از فیلم و سی دی بعضی از فروشگاه ها که حتی با تضمین صد در صد تبلیغ محصول خود را مینمایند و جوابگوی سوالات نیز نیستن و من نیز نام نمیبرم خیلی بهتر برام بوده و صمیمانه آرزوی بهترینها رو برایتان دارم.همچنین STM32 را نیز با کمک سایت شما فرا آموختم .

    1. Avatar for zeus zeus گفت:

      سلام دوست عزیز
      خیلی ممنونم برای کامنت انرژی بخشتون – ما رو برای پیمودن ادامه راه دلگرم میکنه 🙂
      خوشحالم که بخشی از آموزش ها تونسته براتون مفید باشه و باید تشکر کنم از تمام دوستانی که در این راه ما رو راهنمایی و کمک کردن

  4. Avatar for حمید رضا حمید رضا گفت:

    سلام
    توضیحات عالی هست فقط من خروجی pwm روی برد دست ساز خودم ندارم یه جا خوندم که می گفت باید byte option ها رو تنظیم کنید تا خروجی pwm داشته باشید لطفا راهنمایی کنید
    ممنون

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      تا اونجا که من اطلاع دارم – این میکروکنترلر آپشن بایتی برای این موضوع نداره و بیشتر بحث برمیگرده تنظیمات خود تایمر که همه به شکل نرم افزاری انجام میشه

  5. Avatar for عرفان عرفان گفت:

    با سلام و خدا قوت
    TIM 1 بنده کانال 1 و 2 اش کار نمیکنه ودر صورتی که PWM کانال 3 و 4 به خوبی کار میکنن .STM8S003
    ممنون میشم راهنمایی بفرمائید

    1. Avatar for کامین جلیلی کامین جلیلی گفت:

      سلام عرفان. اگه کدتون رو درست نوشته باشید ممکن است فیزیکالی این کانال‌ها دچار مشکل شده باشن.

  6. Avatar for Amir Amir گفت:

    لطفا مطلب بیشتری در این رابطه قرار بدین
    مثلا شما درباره I2C چیزی نگفتین. (راه اندازی یه E2PROM یا هر چیزی که با I2C کار میکنه)

    1. Avatar photo electronic girl گفت:

      سعی میکنیم مطالبی که بیان نشده را طی آموزش های دیگری منتشر کنیم.
      سپاس از همراهی شما

  7. Avatar for Amir Amir گفت:

    سلام خسته نباشید
    آموزش هاتون خیلی خوبه _ کاملا مفید هست _ امیدوارم ادامه دار باشه
    ممنون

    1. Avatar photo electronic girl گفت:

      سلام ممنون از لطف شما
      قسمت های آموزشی میکروکنترلر STM8 تقریبا رو به پایان است و در روزهای آینده قسمت بعدی را منتشر میکنیم.

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

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