نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
أَللّهُمَّ ارْزُقْنی شَفاعَةَ الْحُسَیْنِ یَومَ الْوُرُودِ
مهدی دمیرچیلو

آموزش جامع AVR جلسه ۱۵ Timer Counter FAST PWM Mode2

194

به نام خدا : سلام خدمت شما بزرگواران، قبلا یادمه یه مطلب درباره FAST PWM گزاشتم (آموزش جامع میکروکنترلر AVR جلسه۱۱)، که توی اون مطلب پروژه هایی از کنترل دور موتور DC با هر سه تایمر گزاشته بودم، حالا تو این مطلب از آموزش AVR، میخوام جلسه دوم مد FAST PWM رو بزارم و این بار بر خلاف جلسه قبل که همش پروژه بود، تو این جلسه علاوه بر گزاشتن پروژه های AVR ، میخوام توضیح هم تا جایی که میشه بدم، این مطلب آموزش تایمر رو دارم مینویسم تا حالا شده ۶ هزار تا واژه(حالا نمیدونم واژه با کلمه فرق داره یا نه sarcastic) این مطالبی که از تایمر میبینید پروژه های تایمر هستن و آموزشش جداس که دارم کم کم آمادش میکنم… heart
آموزش جامع AVR جلسه ۱۵ Timer Counter FAST PWM Mode2

آموزش جامع AVR جلسه ۱۵ Timer Counter FAST PWM Mode2


خب با نام خدا شروع میکنیم به نوشتن مطلب :
به نظرم اول پروژه ها رو بزارم و بعد شروع کنم به گفتن توضیحات و… این طور بهتره.

شماتیک هر سه پروژه یکسان هستش، ۳ پروژه = تایمر ۰ و ۱ و ۲
 آموزش جامع میکروکنترلر AVR

پروژه تغییر D.C با تایمر ۰ و مد FAST PWM

 

پروژه تغییر D.C با تایمر ۱ و مد FAST PWM

 

پروژه تغییر D.C با تایمر ۲ و مد FAST PWM

 

دانلود پروژه FAST PWM با Avr | سه پروژه این مطلب

 

محاسبه فرکانس و D.C در مد FAST PWM

خب رسیدیم به بحث جالبی، تو دیتاشیت مگا ۱۶ برا محاسبه فرکانس تایمر تو مد FAST PWM مثل این که دو تا فرمول دارم، یکی برا تایمر ۱۶ بیتی(تایمر۱) و یه فرمول هم برا تایمر های ۸ بیتی(تایمر ۰ و ۲)، حالا این که چرا دو تا فرمول دارم و نه یه دونه و این که از کجا اومدن این فرمول ها، در ادامه میخوام دربارش صحبت کنیم.
محاسبه فرکانس در مد FAST PWM
تو تایمر ۰ و ۲، تو مد FAST PWM تایمر از BOTTOM (همون ۰) میشموره تا MAX (همون ۲۵۶) و بعد دوباره مقدار تایمر ۰ شده و از BOTTOM میشموره ….
و تو این شمارش هر موقع مقدار تایمر (TCNTn) با مقدار ریجستر های مقایسه (OCRn) برابر بشه، پایه مقایسه ای(OCn) تغییر حلت داده(البته اگه روی toggle تنظیمش کرده باشین.) و تایمر به شمارش خودش ادامه میده و…
ولی نکته اینجاس که تو تایمر ۱۶ بیتی یعنی تایمر ۱، تایمر از BOTTOM میشموره تا TOP، که برا هر سه تایمر میتونید این موضوع رو تو ۳ جدول زیر(+توضیحات داده شده من cool) ببینید.

Waveform Generation Mode Bit Description
جدول تعیین مد تایمر ۰
همون طور که تو جدول تایمر ۰ و ۲ برا مد FAST PWM میبینید مقدار TOP برابر ۰XFF هستش؛ یعنی تو این مد تو تایمر ۰ و ۲ مقدار TOP با MAX برابره، لذا تو این مد برا این دو تایمر چه بگید شمارش از BOTTOM هستش تا MAX  و چه بگید BOTTOM تا TOP ، زیاد فرقی نداره.
به نظرم بگیم شمارش از BOTTOM هستش تا TOP بهتر باشه، چون تو تایمر ۱ هم شمارش از BOTTOM هستش تا TOP، این طور دیگه قاطی نمیکنید و میدونید که تنها فرق این تایمر های ۸ بیتی با اون ۱۶ بیتی در اینه که تو تایمر های ۸ بیتی مقدار TOP همیشه برابر ۰XFF (همون MAX) هستش ولی تو تایمر ۱۶ بیتی(تایمر۱) میشه مقدار TOP رو تعیین کرد.
اگه جدول مربوط به تایمر۱ رو در زیر ببینید، متوجه میشیدکه ۵ نوع حالت برا FAST PWM تو جدول هستش، و تفوت این ۵ حالت تو مقدار TOP شون هستش(همون طور که تو جدول انتخاب مد تایمر ۱ میبینید)، که در زیر هم براتون مینویسیم

  • حالت۱) TOP = ۰X00FF هستش (هشت بیت)
  • حالت۲) TOP = ۰X01FF هستش (نه بیت)
  • حالت۳) TOP = ۰X03FF هستش (ده بیت)
  • حالت۴) مقدار TOP برابر است با مقدار ریجستر ICR1
  • حالت۵) مقدار TOP برابر است با مقدار ریجستر OCR1A

جدول تعیین مد تایمر 0

جدول تعیین مد تایمر ۲
جدول تعیین مد تایمر 2

جدول تعیین مد تایمر ۱
جدول تعیین مد تایمر 1






2 سوال مهم و ۲ جواب !!!
سوال ۱ : چرا تو تایمر ۱ برا مد FAST PWM ما ۵ تا حالت FAST PWM داریم که فقط مقدار TOP شون فرق داره؟ چرا تو تایمر ۱ ما میتونیم مقدار TOP رو تعیین کنیم؟  و  حالا بشه مقدار TOP رو تعیین کرد، چه فایده ای داره و چه فرقی داره؟

جواب ۱ : علی یارت جون مرد، ترکوندی واقعا، رکورد طولانی ترین سوال المپیک رو زدی قهرمان، پلنگ مازندران laugh ، خوب سوال خوبی هستش، در زیر برات توضیح میدم :
۱) خوب ببین این که چرا تایمر ۱ ما ۵ تا حالت برا مد FAST PWM داریم و چرا ۶ تا و چرا ۴ تا و... نداریم رو نمیدونم.(اینو باس از سازنده AVR بپرسی sarcastic)

۲) حالا میپرسی فایده این که بشه مقدار TOP رو تعیین کرد چیه؟ این سوال خوبی هستش و در زیر توضیح میدم :
و همون طور که قبلا گفتم ما از مد FAST PWM برای تولید یه موج (که بشه به آسونی مقدار D.C اش رو تغییر داد) استفاده میکنیم.
ببین داش من یه کم فک کن، ما الان تو مد FAST PWM هستیم، مدی که تایمر از BOTTOM میشموره تا TOP و بعد مقدار تایمر صفر میشه و....
حالا این اتفاق یعنی چی؟ >>> مثلا مقدار TOP رو بالا پایین کنیم و تغییرش بدیم>>>چی میشه مگه؟
اگه با توجه به فرمول بخوام بگم : اون فرمولی که در بالا گزاشتم، فرمول مربوط به تایمر ۱، برید نگاش کنید، یه طرف فرکانس موج تولیدی توسط مد FAST PWM تایمر۱ هستش و اون طرف معادله تو مخرج، TOP رو مشاهده میکنید، لذا مقدار TOP بر فرکانس موج تولیدی توسط تایمر ۱(مد FAST PWM) تاثیر داره.
و با بالا پایین کردن مقدار TOP مقدا فرکانس موج ما هم تغییر میکنه.(طبق فرمول بالا)
حالا طبق محباسبات ذهنی : تایمر از BOTTOM میشموره تا TOP، حالا هر چی مقدار TOP بیشتر بشه، دوره تناوب(T) پالس تولیدی ما هم زیاد میشه، و با توجه به فرمول f=1/T میشه نتیجه گرفت که فرکانس کاهش پیدا میکنه و برعکس مقدار TOP کم بشه مقدار فرکانس زیاد میشه.

سوال ۲ : خوب فرکانس تغییر کنه، به چه درد ما میخوره، ما تو این مد D.C موج برامون مهمه و نه مقدار فرکانسش؟؟؟
جواب ۲ : جان داش میخواستم همین الان توضیحش بدم که سریع سوال پرسیدی dash  چقدر عجولی تو.... laugh
با تغییر TOP یه اتفاق دیگه هم میوفته که در زیر توضیح میدم.
همون طور که در بالا گفتم تایمر از bottom تا top میشموره و ت واین هین هر موقع مقدار TCNTn با OCRn  برابر بشه پایه مقایسه ای COn تغییر حالت میده(البته اگه رو toggle تنظیم شده باشه) و بعد تایمر به شمارش خودش ادامه میده.
و اینم حتما میدونید که با تغییر D.C در واقع ولتاژ موج ما تغییر میکنه، حالا به نظرتون تاثیر مقدار TOP بر D.C چیه؟
بله درست گفتید، تاثیرش اینه که هر چی مقدار TOP بیشتر بشه در واقع مقدار T(دوره تناوب) بیشتر شده و هر چی مقدار T بیشتر بشه مقدار f کمتر میشه(f = 1/T) و دقت ولتاژ تولیدی بیشتر میشه.(عکس زیر رو ببینید - فک کنم محاسبات زیر درست باشه، حالا اساتی اگه احیانا اشتباه گفتم لطف کنید و بگید....البته در عمل تست کردم و مشکلی نیست ولی...)
تولید ولتاژ با PWM




محاسبه دقت ولتاژ تولیدی با PWM





دوستان میتونن دو مطلب زیر رو بخونن، حتما برید یه بار هم که شده نگاه کنید، خداییش مطالب خوبی هستن. heart
PWM چیست؟!
بررسی نحوه تولید امواج DTMF بوسیله خروجی PWM میکروکنترلر

مطلب طولانی شد و طبق معمومل من باز غاط! زدم، اگه چیزی رو جا انداختم لطفا بگید.
آها یادم اومد، این که اون فرمول بالا از کجا اومد رو نگفتم، در زیر الان توضیح میدم :









 

فرمول محاسبه فرکانس در PWM

تو بالا یه فرمولی(عکس) گزاشتم که در زیر هم میبینیدش، حالا میخوام نحوه محاسبه این فرمول رو بگم و این که این فرمول از کجا اومده و…
محاسبه فرکانس در مد FAST PWM
در زیر محاسبات رو انجام دادم(رو کاغذ) و براتون میزارم در زیر تا برید حالشو ببرید، میبینید چقدر به فکرتون هستم heart
در شکل زیر منظور از
Fm = فرکانس میکرو
FT = فرکانس تایمر
TT = دوره تناوب تایمر
N = ضریب تقیسم فرکانسی
TOP = تو تایمر ۰ و ۲ برابر MAX هستش و تو تایمر ۱ میشه تعینش کرد.
فرمول محاسبه فرکانس در PWM

بازم فک میکنم یه چیز رو جا انداختم laugh ، اگه فهمیدید بگید.  rtfm
خب دیگه مطلب طولانی شد، منم حوصلم بیشتر از شما سر رفته. crazy
اگه از این مطلب خوشتون اومد و مفید بود برا تعجیل در فرج آقا و سلامتی رهبر و علمای اسلام و مسئولین خدمت گزار به کشور و اسلام، ۳ تا صلوات بفرستید.
زیاد مزاحمتون نمیشم.
یا علی.

تعداد مطالب : 367 تا
جنگ ما فتح قدس را به همراه خواهد داشت. [ امام خمینی (ره) ]
ارسال دیدگاه
14
نظرات این مطلب بسته شده است.
  1. فروهر

    مهمان

    فروهر

    سلام و درود..مهدی جان من تازه واردم و AVR رو شروع کردم بر همین نمیتونم نظر بدم فقط میتونم بگم دمت گرم خدا خیرت بده تا همین الانشم خیلی استفاده کردم از مطالبت…جواب خیلی از سوالاتی رو که توی کتابا و جاهای دیگه نتونستم پیداکنم اینجااز شما یاد گرفتم
    mail معلم خوبی هستی..بهترازاین نمیتونم تشکرکنم
    ok

  2. مهدی

    مهمان

    مهدی

    سلام اگر بخوایم یک سیگنال که دیوتی سایکلش تغییر میکنه رو اندازه گیری کنیم باید چکار کنیم

  3. ساقی

    مهمان

    ساقی

    جزاکم الله خیرا

  4. علی

    مهمان

    علی

    آقا مهدی سلام
    در مورد مدل ال سی دی گرافیکی که امر فرمودی KS0108 ممنوننت میشم راه اندازیش را داخل اردوینو هر وقت که فرصت داشتی یادم بدی
    با تشکر

  5. علی

    مهمان

    علی

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      چه مدلی؟
      فعلا که دانشگاه هستم و قطعاتش پیشم نیست متاسفانه
      ولی رفتم خونه چشم
      فعلا شما مدل LCD رو بگید

  6. علی قهرمانی

    مهمان

    علی قهرمانی

    آقا مهدی (رئیس بزرگ) سلام دوباره
    آقا آرم رو که یادمون ندادی .یه دردسر دیگه برات دارم.چه جوری میشه تو آردوینو ال سی دی گرافیکی را راه انداخت؟با توجه به کمبود پایه برد UNO چه کارش کنیم؟از برد مگا استفاده بشه؟ به چه صورت؟
    الهی تب کنم شاید پرستارم تو باشی
    با تشکر

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

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

  7. mbta

    مهمان

    mbta

    هیچ منبع فارسی به این حجم کم ، کامل و عالی توضیح نداده است . ممنون ادامه دهید . من شخصا هر ۲ روز یک بار به سایت شما سر می زنم . شما عالی هستید . پردازش تصویر و کار با نرم افزار QT را هم کار کنید .

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      والا چند روز نور بالا زده بودیم پی کاراش بودیم(البته الان هم نور بالا میزنیم)…..لذا وقت نکردم مطلب بزارم تو سایت
      اون دو تایی هم که گفتید توی برنامم هستش. laugh ….. فعلا دارم انگلیسیم رو قوی میکنم….چون مطلب فارسی برا دو مورد فوق کم هستش ب زبون فارسی

  8. رضا

    مهمان

    رضا

    تشکر

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      خواهش

  9. محمد

    مهمان

    محمد

    آقا مهدی کلا دستخطت داره شنا میکنه!^_^

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      laugh