
میکروکنترلر AVR چیست؟ انواع میکرو کنترلر AVR و کاربردش
میکروکنترلر AVR نوعی میکروکنترلر تولید شده توسط شرکت Atmel است که مزایای خاصی نسبت به تراشههای رایج دیگر دارد، اما ابتدا باید روشن شود که میکروکنترلر AVR چیست؟ میکروکنترلر AVR نوعی چیپ قابل برنامهریزی جهت کنترل دستگاههایی است که نیازمند ذخیره اطلاعات هستند. برای فهم بیشتر بهتر است یک میکروکنترلر AVR را با رایانه شخصی مقایسه کرد که مادربرد در آن به کار رفته است.
در مادربرد یک ریزپردازنده (تراشههای AMD یا اینتل) قرار دارد که از طریق آن میتوان به هوشمندی، حافظه RAM و EEPROM و رابطهای دیگر سیستم مانند پورتهای USB، درایوهای دیسک و رابط های نمایشگر اشاره کرد. یک میکروکنترلر تمام یا بیشتر این ویژگیها همچون CPU، پورتهای ورودی و خروجی و حافظه RAM یا ROM را در یک تراشه داخلی دارد، بنابراین نیازی به مادربرد ندارند و بسیاری از اجزای سازنده، مانند LEDها، میتوانند مستقیماً به میکروکنترلر AVR متصل شوند.
آموزشگاه پایتخت فناوری برگزار کننده دوره های آموزش طراحی برد الکترونیکی و آموزش تعمیرات برد الکترونیکی بصورت تخصصی و عملی در تهران می باشد. برای اطلاع از نحوه برگزاری دوره ها و دریافت مشاوره رایگان از طریق شماره 02166577378 با کارشناسان ما تماس بگیرید.
کاربرد میکروکنترلر AVR
میکروکنترلرهای AVR بستههای مختلفی دارند که برخی برای نصب از طریق سوراخ و برخی نیز برای نصب روی سطح طراحی شده اند. AVRها با 8 پین تا 100 پین در دسترس هستند، اگرچه AVR از 64 پین بیشتر باشد فقط برای نصب روی سطح مناسب هستند. ریزپردازندههای رایانههای شخصی حداقل 32 بیتی هستند، البته امروزه رایانهها اکثرا 64 بیتی ساخته میشوند.
این بدان معناست که آنها میتوانند دادهها را به صورت قطعههای 32 بیتی یا 64 بیتی پردازش کنند. AVR بسیار سادهتر است و با دادههای 8 بیتی سروکار دارد، زیرا پهنای گذرگاه آن 8 بیتی است، اگرچه اکنون یک AVR32 با پهنای گذرگاه 32 بیتی و یک خانواده ATxmega با پهنای گذرگاه داده 16 بیتی وجود دارد.
یک رایانه شخصی دارای سیستم عامل (ویندوز یا لینوکس) است که برنامههای زیادی مانند Word یا Internet Explorer یا Chrome را اجرا میکند و کارهای زیادی را انجام میدهند. یک میکروکنترلر 8 بیتی AVR معمولاً سیستم عاملی ندارد، اگرچه در صورت نیاز میتواند یک سیستم ساده را اجرا کند و در عوض فقط یک برنامه یا دستور را اجرا میکند.
همانطور که اگر بروی رایانه خود هیچ برنامهای را نصب نکنید، رایانه شما بی فایده خواهد بود، باید بروی AVR نیز باید یک برنامه نصب کرده باشید تا از بتوانید از آن استفاده کنید. این برنامه بجای ذخیره در درایو خارجی در حافظه داخلی AVR ذخیره میشود. به عنوان مثال یک دستگاه گرمایشی را در دمای بالای خاصی خاموش کند و در دمای پایینی روشن کند.
تاریخچه میکروکنترلر ای وی ار
میکروکنترلر AVR خانوادهای از میکروکنترلرها است که در سال 1996 توسط Alf-Egil Bogen و Vegard Wollan دو محقق و دانشجوی نروژی طراحی شد و در شرکت ATMEL ساخته شد. نام این میکروکنترلر از مخفف نام طراحان آن گرفته شده است. اولین میکروکنترلری که بر اساس طراحی AVR تولید شد مدل AT90S8515 بود، با این حال در سال 1997 میکروکنترلر AT90S1200 وارد بازار شد، تا این زمان میکروکنترلر های avr هنوز کاملا شناخته شده نبود.
یکروکنترلر AVR در سال 2016 توسط Microchip Technology خریداری شد. AVR یکی از اولین خانوادههای میکروکنترلر بود که برخلاف سایر میکروکنترلرها که از حافظه ROM ، EPROM یا EEPROM با قابلیت یک بار برنامهنویسی در آن زمان استفاده میکردند، از حافظه فلش بر روی تراشه برای ذخیره برنامه استفاده کرد.
ساختار میکروکنترلر AVR
میکروکنترلر AVR از اجزا و ساختارهای مختلفی تشکیل شده است. واحد پردازش مرکزی که مغز میکروکنترلر خوانده میشود و وظیفه رمزگشایی داده را به عهده دارد. تمام کدها و برنامهها در حافظه ذخیره میشود، حافظه میکروکنترلر ای وی ار از نوع RAM، ROM یا حافظه فلش است. پورتهای ورودی و خروجی جهت اتصال به دستگاهها به کار میروند، یک یا چند تایمر در میکروکنترلر زمانبندی و شمارش پالس خارجی، توابع کلاک، اندازهگیری فرکانس، عملیات اصلی تولید پالس و غیره را کنترل میکند.
مبدل آنالوگ به دیجیتال و برعکس، ADC سیگنال آنالوگ را به دیجیتال تبدیل کرده این سیگنالها برای برنامههای جانبی استفاده میشود، در مقابل مبدل دیگری دیجیتال را به آنولوگ تبدیل میکند که در دستگاههای آنالوگ موتورهای DC کاربرد دارد. بخش کنترل کلاک ورودی، مقایسه آنالوگ، واحد کنترلر صفحه نمایش و بلوکهای عملکرد خاص نیز اجزا دیگر میکروکنترلر هستند.
برنامهنویسی میکروکنترلر AVR
یک برنامه مجموعهای از دستورالعملها است که هر کدام بسیار ساده هستند، دادهها را دریافت کرده و آنها را دستکاری میکنند. در بیشتر وسایلی که از AVR استفاده میکنند، مانند کنترلکننده ماشین لباسشویی، این به معنای خواندن ورودیها، بررسی وضعیت آنها و روشن کردن است.
بعضی اوقات ممکن است لازم باشد دادهها را تغییر داده یا دستکاری کنید، یا آنها را به دستگاه دیگری مانند LCD یا پورت سریال منتقل کنید. برای انجام این کارهای اساسی از یک سری دستورالعملهای دودویی ساده استفاده میشود و هرکدام دارای یک دستورالعمل معادل زبان اسمبلی هستند که انسان میتواند آنها را درک کند.
اصلیترین روش نوشتن برنامه AVR استفاده از زبان اسمبلی است. استفاده از زبان اسمبلی به شما امکان می دهد در مورد عملکرد “میکروکنترلر AVR ” و چگونگی ترکیب آن اطلاعات بیشتری کسب کنید. همچنین برنامهنویس کدهای بسیار کم و سریعی مینویسد. تنها ایراد آن این است که برنامهنویس باید همه کارها از جمله مدیریت حافظه و ساختار برنامه را انجام دهید، که بسیار خسته کننده خواهد بود. برای جلوگیری از این گونه مشکلات، زبانهای سطح بالا به طور فزایندهای برای نوشتن کدهای میکروکنترلرAVR ، زبان C به طور خاص بلکه و همچنین جاوا و بیسیک استفاده می شود.
پیشنهاد ویژه: دوره های آموزش نصب دوربین مدار بسته و آموزش تعمیرات لپ تاپ با 30% تخفیف
انواع میکروکنترلر avr
معمولا AVR در چهار گروه مگا (mega)، تاینی (tiny)، تک منظوره و کلاسیک دستهبندی میشوند، که انواع میکروکنترلرها عبارتند از:
- میکروکنترلرهای Tiny
- میکروکنترلر mega
- میکروکنترلر Atmega8 AVR
- میکروکنترلر Atmega16 AVR
- میکروکنترلر Atmega32 AVR
- میکروکنترلر Atmega328 AVR
- میکروکنترلر سری کلاسیک
میکروکنترلرهای Tiny
میکرو کنترلر tiny در ابعاد مختلف 8، 20 و 28 پایه موجود هستند. این سری نسبت به سایر مدلها از امکانات کمتر برخوردار است، اما با این حال CUP قوی دارد و بیشتر جهت عملیاتهای ساده و کم حجم مناسب است. تاینی سه حافظه فلش، SRAM و EEPROM را به کار میبرد. برخی از انواع این میکروکنترلر عبارتند از ATtiny 2313، ATtiny11، ATtiny13 و ATtiny28 .
میکروکنترلر mega
سری میکرکنترلر mega دارای حافظه فلش 4 تا 512 کیلوبایتی است که نسبت به سری تاینی سطح بالاتری دارد. برخی از میکروکنترلرهای AVR که بیشتر مورد استفاده قرار می گیرند عبارتند از:
میکروکنترلر Atmega8 AVR
شامل 28 پین، 1کیلوبایتی ، SRAM، 8 کیلوبایت حافظه فلش، دارای دو رابط سیم، پین خارجی برای اتصال دو ولتاژ به دو ورودی مقایسه کننده است.
موارد استفاده: عمدتا برای ساخت پروژههای الکتریکی و الکترونیکی استفاده میشود.
میکروکنترلر Atmega16 AVR
از 40 پین تشکیل شده است. همچنین دارای یک نوع حافظه فلش، سرعت 16MIPS ، 1 کیلوبایت رم، شش حالت صرفهجویی در مصرف انرژی است.
موارد استفاده: توسط سیستم تعبیه شده بر روی موبایل کار میکند.
میکروکنترلر Atmega32 AVR
از 44 پین به همراه حافظه 32 بیتی تشکیل شده است. این نوع از حافظه فلش، سرعت 16 MIPS ، 2048 SRAM و دارای محدوده ولتاژ 7/2 تا 5/5 است.
موارد استفاده: در سیستمهای بدون دخالت انسان استفاده میشود و توسط سیستم تعبیه شده در موبایل کار میکند.
میکروکنترلر Atmega328 AVR
معماری RISC شامل حافظه نوع فلش 32 کیلوبایتی، 2 کیلوبایت SRAM ، محدوده ولتاژ عملیاتی از 8/1 تا 5/5 و حافظه EEROM یک کیلوبایتی (حافظه فقط خواندنی با قابلیت پاک شدن) است.
موارد استفاده: به طور گستردهای در سیستمهای آردوینو، رباتیک، نظارت بر قدرت و مدیریت استفاده میشود.
میکروکنترلر سری کلاسیک
سری کلاسیک یا AT90S اولین سری تراشههای میکروکنترلر AVR است. از لحاظ امکانات در حد بین تاینی و mega قرار دارد. برخی از مدلهای این خانواده عبارتند از AT90S1200، AT90S2313، AT90S2323 و AT90S8534 میباشد.
مفهوم پسوندها در میکروکنترلر ای وی ار
اگر به نام میکروکنترلرها توجه کرده باشید پسوندهایی را خواهید دید که این پسوندها در میکروکنترلر AVR هر کدام معنای خاصی را میرسانند و فقط یک نام خاص تلقی نمیشوند. این پسوندها نشاندهنده محدوده ولتاژی و فرکانس میکروکنترلر هستند. درصورتی که بدون پسوند باشند محدوده تغذیه با تغییرات کم( v ~ 5.5 v) و فرکانس کلاک حداکثر 16 مگاهرتز را نشان میدهد.
همچنین پسوند L نشانگر محدودۀ تغدیه با تغییرات متوسط( v ~ 5.5 v7) و فرکانس کلاک تا 8 مگاهرتز است،پسوندA نیز خصوصیتهای هر دو مورد قبلی را نشان میدهد . پسوند V نیز محدودۀ ولتاژ 8/1 ولت تا 5/5 ولت و فرکانس تا 4 مگاهرتز را نشان میدهد.
حافظه میکروکنترلر AVR
ذخیره برنامه میکروکنترلر AVR توسط حافظه ROM انجام میشود. گرچه 8 مگابایت فضای ROM در میکرکنترلر AVR تعبیه شده است اما این مقدار برای تمام اعضا AVR منظور نمیگردد. اندازه ROM از یک کیلوبایت تا 256 کیلوبایت برای انواع سری متغییر است. حافظه ROM در چند ثانیه پاک میشود، اما با اضافه شدن حافظه فلش بر روی آن این زمان بیشتر شده و 20 دقیقه زمان برای پاک شدن احتیاج است.
حافظه فلش جهت ذخیرهسازی کد یا برنامه است. نوع دیگر حافظه ROM از نوع EEPROM است، این نوع از حافظه جهت ذخیره دادههایی که تغییر نمیکنند، دادهها در این حافظه با قطع برق و یا خاموش کردن میکروکنترلر پاک نمیشود.
یک حافظه دیگر به کار رفته در AVR، حافظه RAM است که برای ذخیره دادهها استفاده میشود. حافظه RAM حدود 64 کیلو بایت است که این میزان هم مانند ROM بر روی تمام تراشههای موجود نیست. اطلاعات در این حافظه به طور موقت ذخیره میشوند و با قطع برق حافظه پاک خواهد شد. سه بخش حافظه RAM عبارتند از رجیسترهای همه منظوره که برای ذخیرهسازی موقت دادهها برای محاسبات ریاضی و منطقی در AVR هستند.
حافظه I/O داخلی که مقدار استاندارد آن 64 بایت است و جهت کارهای خاصی همچون تایمرها، پورتهای ورودی و خروجی، ثبات وضعیت و غیره استفاده میشود و در آخر SRAM داخلی که جهت ذخیره موقت دادههای AVR و کامپایلر است. SRAM دادههایی که از طریق پورتهای ورودی و سریال به CPU فرستاده میشوند را به طور موقت ذخیرهسازی میکند.
معماری میکروکنترلر AVR
-
معماری RISC
یک نوع معمای میکروکنترلر AVR، RISCبهبود یافته است. این معماری مجموعه دستورات و کدها ساده شده است که منجر به بازده بالا و سرعت بخشیدن در اجرای دستورات می شود.
-
معماری CISC
در این معماری تعداد کدها بیشتر و پیچیدهتر است. زیرا هدف معماری CISC میکروکنترلر AVR این بود که کد یا دستورالعملی برای هر عبارتی که در زبان سطح بالا نوشته شده& وجود داشته باشد. اما مسلما هر چه تعداد این کدها و آدرسدهی ها بیشتر باشد& مدارهای سختافزاری بیشتری برای اجرا و پشتیبانی آنها نیاز است و درنتیجه منجر به کاهش سرعت محاسبات میگردد. اما برنامهنویسی آن بخصوص اسمبلی سادهتر شده و از جهتی سرعت اجرا کدها و دستورات کم شده است.
ویژگیهای میکروکنترلر AVR
همانطور که هر میکروکنترلر کاربرد و ویژگی منحصر به فرد خود را دارد و در جایگاه خود میتواند به عنوان بهترین میکروکنترلر باشد بنابراین نمی توان یک میکروکنترلر را نسبت به سایر رقبا بهترین دانست. با این وجود ويژگیهای میکروکنترلر AVR نیز خاص هستند که به طور خلاصه میتوان گفت:
- بالاترین کارایی و اجرا در CPU
- سختافزار ضربکننده روی خود
- کدهایی کوچک
- هماهنگی بالای سیستم
- قابلیت به روزرسانی بالا
- حافظه خود برنامهریز
- دارای واسط JTAG سازگار با IEEE 1149.1
- حاوی بهترین MCU برای حافظه فلش
هدف از میکروکنترلر AVR در یک سیستم
هر میکروکنترلر را میتوان یک کامپیوتر کوچک در نظر گرفت. یک کامپیوتر با ورودیها، خروجیها، CPU و حافظه روی یک تراشه. هر میکروکنترلرAVR نیز مانند یک کامپیوتر برای ارتباط با ابزارهای الکترونیکی دیگر نیاز به پورتهای ورودی و خروجی دارد. میکروکنترلر برای انجام وظایف خود در یک سیستم، باید با دنیای بیرون ارتباط داشته باشد.
حتی اگر این وظیفه روشن و خاموش کردن یک LED یه یه سیستم تهویه باشد. کاربرد اصلی میکروکنترلرها در یک سیستم، کنترل و پردازش پارامترهای سیستم و پارامترهای در ارتباط با سیستم است. بدین صورت که پارامترهای ورودی پردازش شده و نتیجۀ آن نمایش داده میشود.
در یک سیستم کنترلکننده دمای هوا یک سنسور دما، یک میکروکنترلر، یک نمایشگر LCD و دو رله وجود دارد. در حافظه میکروکنترلر AVR برای دو دمای حداقل و حداکثر ذخیره شده است. هر گاه دما بین مقدار تعیین شده حداقل و حداکثر باشد، سیستم خنک کننده و سیستم گرمایشی خاموش میشوند. هرگاه دمای محیط افزایش یابد، سیستم خنک کننده روشن میشود. هر گاه دمای محیط کمتر شود، سیستم گرمایشی روشن میشود.
یک LCD نیز دما را نمایش میدهد. میکروکنترلرAVR روی دادههای خروجی سنسور دما پردازش انجام میدهد که خروجی را با قطع و وصل کردن رلهها نشان میدهد. برای ارتباط میکروکنترلر AVR با سنسورهای بیرونی، دریافت ورودیها و نشان دادن خروجیها، واحدهایی در درون میکروکنترلر تعبیه شدهاند.
علاوه تعمیرات و طراحی بردهای الکترونیکی ، برخی دیگر از سایر دوره های پرطرفدار که در اموزشگاه پایتخت فناوری برگزار می شود شامل آموزش PLC ، آموزش تعمیرات لوازم خانگی ، آموزش تعمیرات موبایل ، آموزش برق ساختمان ، آموزش برق صنعتی ، آموزش هوشمند سازی ساختمان و … می شود. اطلاع از نحوه برگزاری دوره ها و مشاوره رایگان از طریق شماره 02166577378 امکان پذیر است.
تازه وارد این بحث شدم برام جذابه
عالی
برنامه با چه زبانی نوشته می شود
زبان C