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