تنظیم ولتاژ در میکروکنترلر های avr
مدولاسیون عرض پالس در میکروکنترلر AVR
مدولاسیون عرض پالس (PWM) یک موج مربع با سیگنال دامنه کم و زیاد متفاوت است. یک سیگنال عمومی PWM در شکل زیر آورده شده است:
اصطلاحات مختلفی در رابطه با تعدیل عرض نبض (PWM) وجود دارد:
- Off-Time: مدت زمانی که سیگنال کم است.
- On-Time: مدت زمانی که سیگنال زیاد است.
- چرخه وظیفه: درصد دوره زمانی است که سیگنال در طول سیگنال مدولاسیون عرض پالس روشن می ماند.
- Period: مجموع زمان خاموش و زمان سیگنال مدولاسیون عرض پالس است.
چرخه ی وظیفه
محاسبه چرخه کار با محاسبه زمان روشن از کل مدت زمان انجام می شود. این یک نسبت بین زمان روشن و کل مدت سیگنال با استفاده از محاسبه دوره است ، چرخه کار محاسبه می شود همانطور که در معادله زیر نشان داده شده است:
Period
همانطور که در شکل بالا نشان داده شده است ، Toff زمان خاموش بودن و Ton نشان دهنده زمان روشن بودن یک سیگنال است. Period به منزله جمع شدن زمان روشن و خاموش است و محاسبه می شود که در معادله زیر نشان داده شده است:
PWM: تنظیم ولتاژ
سیگنال های PWM هنگامی که در چرخه کار مختلف کار می کنند ولتاژ متفاوتی را در خروجی ایجاد می کنند. روش تنظیم ولتاژ در مناطق مختلف کاربرد مانند موارد زیر استفاده می شود:
- سمعی
- کم نور LED
- تولید سیگنال آنالوگ
- تنظیم کننده های سوئیچینگ
- و خیلی بیشتر..
عملیات تنظیم ولتاژ با میانگین گیری سیگنال PWM انجام می شود. ولتاژ خروجی مطابق شکل زیر محاسبه می شود:
ولتاژ خروجی را می توان با تغییر زمان روشن سیگنال مدولاسیون عرض پالس مستقیم تغییر داد.
تایمرهای AVR به عنوان PWM:
عمدتا در میکروکنترلر AVR کانال PWM روی تراشه موجود است که استفاده از PWM را بسیار ساده تر و بسیار دقیق می کند. از تایمرها و شمارنده های AVR می توان بدون ایجاد مزاحمت در عملکرد اساسی تایمر ، در حالت عملکرد PWM استفاده کرد.
همانند مورد میکروکنترلر (AT90S8515) ، با تنظیم بیت های PWM10 و PWM11 در رجیستر TCCR1A می توان از Timer1 در حالت PWM استفاده کرد.
حالت های زیر در PWM میکروکنترلر AVR موجود است:
PWM10 | PWM11 | شرح |
---|---|---|
0 | 0 | عملکرد PWM از Timer / Counter1 غیرفعال است |
1 | 0 | تایمر / شمارنده 1 در حالت PWM 8 بیتی |
0 | 1 | تایمر / شمارنده 1 در حالت PWM 9 بیتی |
1 | 1 | تایمر / شمارنده 1 در حالت 10 بیتی PWM |
با استفاده از بیت های انتخاب ساعت در رجیستر TCCR1B می توان حالت پیش مقیاس را برای Counter1 / Timer انتخاب کرد.
عرض یک پالس در یک خروجی تایمر بارگیری می شود ثبات های مقایسه OCR1A (OCR1AL & OCR1AH) و OCR1B (OCR1BL و OCR1BH). شمارنده 1 / تایمر به عنوان یک شمارنده بالا / پایین عمل می کند ، از 0000 دلار به بالا حساب می شود ، همانطور که در جدول زیر نشان داده شده است:
وضوح PWM | ارزش برتر تایمر | فرکانس |
---|---|---|
10 بیتی PWM | 03FF $ (1023) | Ftck1 / 2046 |
9 بیتی PWM | $ 01FF (511) | Ftck1 / 1022 |
8 بیتی PWM | 00FF $ (255) | Ftck1 / 510 |
در اینجا قبل از تکرار چرخه شمارش می شود و دوباره به صفر می رسد. هنگامی که یک مقدار متغیر با محتوای 10 بیت کم اهمیت OCR1B یا OCR1A مطابقت دارد ، پین های OC1B / PD5 (OC1A) پاک می شوند یا مطابق تنظیمات بیت های COM1A0 / COM1A1 یا COM1B1 / COM1B0 در رجیستر کنترل زمان سنج / Counter1 تنظیم می شوند (TCCR1A) ) همانطور که در جدول زیر نشان داده شده است:
COM1X0 | COM1X1 | تأثیر بر OCX1 |
---|---|---|
0 | 0 | متصل نیست |
1 | 0 | متصل نیست |
0 | 1 | در مقایسه مسابقه ، شمارش مجدد پاک شد. تنظیم مقایسه کم شمارش مسابقه (PWM غیر معکوس) |
1 | 1 | در مقایسه مسابقه ، شمارش معکوس پاک شد. تنظیم مقایسه تعداد شمارش مطابقت (PWM معکوس) |
توجه: X می تواند ثبت کننده A یا B باشد.
AVR: کد اسمبلی برای اجرای PWM:
AVR: تنظیم PWM در C:
وقفه های خارجی در میکروکنترلر AVR
میکروکنترلرها می توانند ورودی های ورودی / خروجی را بپذیرند ، از وقفه ها برای پذیرش ورودی های تولید شده توسط رویدادهای خارجی استفاده می شود. رویداد وقفه جریان اجرای برنامه را با یک کد کاملا مستقل ، معروف به "زیر روال وقفه" هدایت می کند. منابع بسیاری از وقفه ها وجود دارد که برای میکروکنترلر در دسترس هستند. بیشتر آنها توسط ماژول های داخلی تولید می شوند و به عنوان وقفه داخلی نامیده می شوند.
برای اجرای زیر روال وقفه نیازهای زیر لازم است:
- منبع وقفه باید با تنظیم ماسک وقفه مربوطه / وقفه فعال کردن بیت فعال شود.
- بیت فعال در ثبت وضعیت AVR باید روی 1 تنظیم شود. برای این دستورالعمل با نام 'sei' (تنظیم قطع وقفه).
- زیر روال وقفه باید ارائه شود. اگر کدی برای اجرا وجود نداشته باشد ، باید یک زیرروالین خالی در حافظه خاص با فاصله از آن وقفه ایجاد شود.
- سرانجام این رویداد باید رخ دهد ، بنابراین اجرای معمول شروع می شود.
نوشتن زیرروال وقفه در AVR Studio:
استفاده از زیر روال وقفه در کد C میکروکنترلر مشکل است. بنابراین توسعه دهندگان AVR GCC از چند نماد برای نشان دادن وقفه ها و ماکروهایی استفاده می کنند که اندازه کد را در بسیاری از برنامه ها به حداقل می رساند.
زیرروال وقفه برای وقفه خارجی 0 و وقفه خارجی 1 در زیر آورده شده است:
ثبت های مرتبط با وقفه های خارجی:
جدول نشان دهنده ثبت واحد کنترل میکروکنترلر در زیر آورده شده است:
MCU Control Register- MCUCR | ||||||||
---|---|---|---|---|---|---|---|---|
بیت | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
نام بیت | میدانم | SM2 | SM1 | SM0 | ISC11 | ISC10 | ISC01 | ISC00 |
مقدار اولیه | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
بخوانید / بنویسید | RW | RW | RW | RW | RW | RW | RW | RW |
جدول نشان دهنده جدول حقیقت کنترل وقفه حس:
ISCx1 | ISCx0 | وقفه ایجاد شده پس از |
---|---|---|
0 | 0 | سطح پایین تر پین INTx |
0 | 1 | هرگونه تغییر منطقی در داخل پین INTx |
1 | 0 | در حال سقوط لبه پین INTx |
1 | 1 | لبه رو به افزایش پین INTx |
مدار:
کد منبع:
این فصل در یک نگاه:
LED - motor - GND - power - logicstate - صفر و یک - معرفی سه عملگر اصلی - معرفی آیسی های 74 - راه اندازی 7404، 7408 و 74…
مجموعه آموزش پروتئوس شامل 6 قسمت 8 الی 10 دقیقه ای است که به زبان فارسی از صفر تا صد این نرم افزار کارآمد را توضیح می دهد.هم چنین در کنار آن به آموزش عملگر های اصلی در محیط رنگارنگ پروتئوس …این فصل در یک نگاه:
آردوینو (Arduino) یک پلتفرم اوپن سورس الکترونیک است. بدین معنی که نرمافزار و طرح سختافزار آن به صورت آزاد در اختیار تم…
در دنیای الکترونیک برای یادگیری هرچه بهتر مدارها و بوردهایی که میتوان روی آنها برنامه نویسی کرد مثل بورد آردینو هیچ آموزشی و هیچ کتابی بهتر از آموزش های پروزه محوز و سریالی و پشت سرهم نیست و…این فصل در یک نگاه:
معرفی سنسور ها و قطعات خروجی…
توضیحات کلی مجموعه: ... با سلام خدمت شما کلیک سایتی های عزیز با جذاب ترین و کامل ترین دوره آموزش الکترونیک در خدمت شما هستیم. گاهی اوغات ایده ها یا اختراعی در حوزه الکترونیک به ذهن شما میرس…این فصل در یک نگاه:
کلام پایانی:-بازار کار-نحوه ی دیدن دوره-میکروکنترلر های مختلف-و...…
فصل اول: در این فصل: -ابتدا به گفتن مقدمه ای درمورد این دوره و میکروکنترلر Avr میپردازیم، -درمورد مباحث ریاضی مورد نیاز صحبت میکنیم، -درمورد مبنا های مختلف صحبت میکنیم، -درمورد تبدیل مبنا …