قسمت بیستم : PWM تایمر 1

قسمت بیستم : PWM تایمر 1

قسمت بیستم : PWM تایمر 1
قسمت بیستم : PWM تایمر 1

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

منبع

لینک‌های دانلود

مطالب مرتبط

 

 

 

حمایت از electronic girl

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

0 نفر

پــــســنــدیـده انـد

توجه

electronic girl
electronic girl

دوستدار الکترونیک

دیدگاه ها

14 دیدگاه

  • fatemeh
    ۲۲ آذر ۱۴۰۰

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

    • Zeus ‌
      Zeus ‌
      ۲۱ اردیبهشت ۱۴۰۱

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

  • mohsen
    ۱۷ مهر ۱۴۰۰

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

    • Zeus ‌
      Zeus
      ۲۵ مهر ۱۴۰۰

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

  • سعید جنتی
    ۱۶ اردیبهشت ۱۴۰۰

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

    • Zeus ‌
      zeus
      ۴ خرداد ۱۴۰۰

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

  • حمید رضا
    ۹ دی ۱۳۹۹

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

    • Zeus ‌
      زئوس Zeus
      ۲۰ دی ۱۳۹۹

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

  • عرفان
    ۱۷ آذر ۱۳۹۹

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

    • کامین جلیلی
      ۲۲ فروردین ۱۴۰۰

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

  • Amir
    ۱۱ آذر ۱۳۹۷

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

    • Nasim Hematian
      electronic girl
      ۱۱ آذر ۱۳۹۷

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

  • Amir
    ۱۰ آذر ۱۳۹۷

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

    • Nasim Hematian
      electronic girl
      ۱۱ آذر ۱۳۹۷

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

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

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

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

Zeus ‌ Zeus ‌
  • 5 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

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

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 11 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

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

Zeus ‌ Zeus ‌
  • 1 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک