راهنمای جامع میکروکنترلر AVR
بررسی معماری، خانوادهها و کاربردها
تاریخچه و معماری avr
میکروکنترلر AVR یکی از محصولات 8 بیتی با معماری هاروارد و RISC است که برای اولین بار در سال 1996 توسط شرکت Atmel به بازار عرضه شد. در سال 2016، این شرکت توسط Microchip خریداری شد. AVR بهعنوان اولین میکروکنترلری که از حافظه فلش برای ذخیرهسازی برنامهها استفاده کرد، شناخته میشود.
معماری این میکروکنترلر توسط Alf-Egil Bogen و Vegard Wollan، دانشجویان دانشگاه صنعتی نروژ، طراحی شده است. اگرچه شرکت Atmel اعلام کرده که AVR یک مخفف خاص نیست، احتمالاً از عبارت زیر برگرفته شده است:
(Alf and Vegard’s RISC processor)
مدلهای اولیه AVR
اولین مدل AVR با نام AT90S1200 در سال 1997 به بازار عرضه شد. این میکروکنترلرها در مدلهای مختلف از 8 تا 100 پین ارائه میشوند و مدلهای دارای بیش از 64 پین، در قالب SMD تولید میشوند. بهجز سریهای خاص AVR32 و Xmega، تمام این میکروکنترلرها دارای معماری 8 بیتی هستند.
خانوادههای میکروکنترلر AVR
1. سری TINY (ATtiny)
معرفی
سری ATtiny برای پروژههایی با نیاز به امکانات محدود طراحی شده است. این میکروکنترلرها تعداد پایهها و حافظه کمتری دارند و قیمت آنها نیز کمتر است. این سری از سال 1999 به بازار عرضه شده است.
مشخصات سری TINY:
- کلاک: حداکثر 20 مگاهرتز
- حافظه فلش: حداکثر 32 کیلوبایت
- حافظه RAM: حداکثر 3072 بایت
- حافظه EEPROM: حداکثر 256 بایت
- تعداد پایهها: 6 تا 32 پین
2. سری Mega (ATMega)
معرفی
سری ATMega از محبوبترین و پرکاربردترین میکروکنترلرهای AVR است. این خانواده تعادلی مناسب میان امکانات و سختافزار ارائه میدهد و برای طیف وسیعی از پروژهها مناسب است.
مشخصات سری Mega:
- کلاک: حداکثر 20 مگاهرتز
- حافظه فلش: 4 تا 256 کیلوبایت
- حافظه RAM: 256 بایت تا 16 کیلوبایت
- حافظه EEPROM: 256 بایت تا 4 کیلوبایت
- تعداد پایهها: 28 تا 100 پین
3. سری Dx
معرفی
این سری با نامگذاری AVRffDxpp مشخص میشود که در آن ff حجم فلش و pp تعداد پایهها را نشان میدهد.
مشخصات سری Dx:
- کلاک: حداکثر 24 مگاهرتز
- حافظه فلش: 4 تا 128 کیلوبایت
- حافظه RAM: 4 تا 16 کیلوبایت
- حافظه EEPROM: حداکثر 512 بایت
- تعداد پایهها: 14 تا 64 پین
زیرخانواده DA
- مجهز به ماژول داخلی تاچ خازنی
- دارای واحد آنالوگ پیشرفته
- عدم امکان اتصال کریستال فرکانس بالا
زیرخانواده DB
- دارای آپامپ داخلی
- پشتیبانی از MIVO برای ولتاژهای متغیر در ورودی و خروجی
- امکان اتصال به کریستال فرکانس بالا
زیرخانواده DD
- ارائه در پکیجهای کوچک
- پشتیبانی از MIVO روی سه یا چهار پین
4. سری Xmega
معرفی
این سری با امکانات پیشرفته و قیمت بالاتر، برای کاربردهای صنعتی طراحی شده است. این خانواده در معماریهای 8، 16 و 32 بیتی عرضه میشود.
ویژگیهای برجسته سری Xmega
- اضافه شدن امکانات پیشرفتهای مانند:
- DMA
- Event System
- LCD Controller
- USB
- Advanced ADC
- CAN
- Advanced PWM
5. زیرخانواده AVR32
معرفی
این خانواده با معماری 32 بیتی و طراحی کاملاً متفاوت از دیگر سریهای AVR ارائه شده است. AVR32 قابلیتهایی برای پردازش صوت و تصویر به همراه ویژگیهای سری دارد.
مشخصات زیرخانواده AVR32
- کلاک: حداکثر 32 مگاهرتز
- حافظه فلش: 16 تا 256 کیلوبایت
- حافظه RAM: 1 تا 32 کیلوبایت
- حافظه EEPROM: 512 بایت تا 2 کیلوبایت
- تعداد پایهها: 44 تا 100 پین
میکروکنترلر AVR به دلیل تنوع بالا و امکانات گسترده، انتخابی ایدهآل برای طیف وسیعی از پروژهها، از طراحیهای ساده تا کاربردهای صنعتی پیشرفته هستند. انتخاب بین سریهای TINY، Mega، Dx، Xmega و AVR32 باید با توجه به نیاز پروژه و بودجه انجام شود.
نمایی از ماژول های داخلی میکروکنترولر AVR
استفاده از زبانهای برنامهنویسی AVR
برنامهنویسی برای میکروکنترلرهای AVR از طریق زبانهای مختلف امکانپذیر است. یکی از گزینهها استفاده از زبان اسمبلی است، اما به دلیل پیچیدگی بالا و نیاز به مدیریت کامل حافظه، کمتر از آن استفاده میشود. امروزه، توصیه میشود که از زبانهای C و بیسیک برای برنامهنویسی AVR استفاده شود. زبان C به دلیل قابلیت انعطافپذیری و قدرت بیشتری که ارائه میدهد، انتخاب بهتری برای توسعه پروژههای حرفهای و پیچیده است. در مقابل، زبان بیسیک برای پروژههای سادهتر و سریعتر مناسب است، اما انتظار عملکرد حرفهای همچون زبان C را نباید داشت.
IDE ها و کامپایلرهای AVR
Atmel Studio
محیط توسعه رایگان که از کامپایلر AVR-GCC پشتیبانی میکند. این IDE علاوه بر AVR، میکروکنترلرهای با معماری ARM را نیز پشتیبانی مینماید.IAR Embedded Workbench AVR
محیط کامپایلر اختصاصی دارد و اکثر میکروکنترلرها را پشتیبانی میکند. این IDE رایگان نیست و معمولاً کمتر توسط توسعهدهندگان مورد استفاده قرار میگیرد.CodeVisionAVR C Compiler
از کامپایلر AVR-GCC استفاده میکند و برای برنامهنویسان زبان C پیشنهاد میشود. در ایران، غالباً از این محیط برای توسعه پروژههای AVR استفاده میشود.WinAVR
این محیط نیز از کامپایلر AVR-GCC بهره میبرد و رایگان است. حرفهایها در دنیا معمولاً از این محیط استفاده میکنند.MPLAB XC8 IDE
ارائه شده توسط شرکت میکروچیپ، که بیشتر برای میکروکنترلرهای PIC مورد استفاده قرار میگیرد و از کامپایلر XC8 استفاده میکند.Arduino IDE
مخصوص بوردهای آردوینو که از میکرو AVR استفاده میکنند. این محیط برنامهنویسی ساده و کاربردی با کتابخانههای بسیار گسترده دارد. هرچند برای پروژههای حرفهای مناسب نیست و ممکن است منجر به کاهش توانمندی شود.BASCOM
ترکیبی از ویژگیهای زبان آردوینو و C است که در ایران محبوبیت دارد. این محیط با داشتن کتابخانههای مفید، برنامهنویسی برای AVR را سادهتر کرده است.