اِیویآر (به انگلیسی: AVR)، خانوادهای از ریزکنترلگرهای جدید است که شرکت اتمل، آن را روانهٔ بازار الکترونیک کرده است. این ریزکنترلگرهای هشت بیتی به خاطر دارا بودن قابلیت برنامهنویسی توسط کامپایلر زبانهای برنامه نویسی سطح بالا، مورد توجه قرار میگیرند. این ریزکنترلگرها از معماری ریسک برخوردارند. همچنین شرکت اتمل کوشیدهاست تا با استفاده از معماری پیشرفته و دستورهای بهینه، حجم کد تولید شده را پایین آورده و سرعت اجرای برنامه را بالا ببرد. یکی از مشخصات این نوع ریزکنترلگرها دارا بودن ۳۲ ثبات همه منظوره است. همچنین در این ریزکنترلگرها، از حافظههای کم مصرف و غیر فرار فلش و ایایپیرام استفاده میشود.
کامپایلرهایی به زبان بیسیک و C که زبانهایی پرکاربردی در دنیا محسوب میشوند: برای این نوع ریزکنترلگرها طراحی شدهاست.البته در حال حاضر استفاده از کامپایلر بسکام BAScom که نسبت به زبان c بسیار راحت تر و سریع تر عمل می کند جایگزین زبان c شده است . همچنین زبان اسمبلی را نیز میتوان برای برنامهنویسی به کار برد. برای نمونه کامپایلر بسکام با زبان بیسیک برای برنامهنویسی این نوع از ریزکنترلگرها میتواند به کار رود. همچنین نرمافزار CodeVision، برای برنامهنویسی به زبان C ( سازگار با این ریزکنترلگرها) بسیار رایج است(البته این برنامه بیشتر میان کاربران ایرانی رواج دارد، در میان کاربرهای خارجی کمتر دیده شده و بیشتر از برنامه ی رسمی شرکت Atmel استفاده می شود).
میکروکنترلر ایویآر در سال ۱۹۹۶ توسط شرکت اتمل ساختهشد. معماری ریزکنترلگر توسط Alf-Egil Bogen و Vegard Wollan دانشجویان دانشگاه صنعتی نروژ طراحی شد.[۱] واحد میکروکنترلگر اصلی ایویآر در خانه ASIC محلی تروندهایم نروژ که Nordic VLSI نامیده میشد (اکنون Nordic Semiconductor) جایی که Vegard و Bogan به عنوان دانشجو فعالیت میکردند طراحی گردید.
شرکت اتمل میگوید نام ایویآر یک مخفف نیست به نام خاصی اشاره نمیکند. سازندگان ایویآر پاسخ مشخصی به این پرسش ندادند. اما به هر صورت به نظر میرسد که این نام مخفف (بهانگلیسی: Alf (Egil Bogen) and Vegard (Wollan)'s RISC processor) است
میکروکنترلر های خانواده AVR بر اساس معماری ماشین تعدیل شده ی هاروارد (Modified Harvard) می باشد، جایی که برنامه اصلی میکروکنترلر و اطلاعات ذخیره میگردد در فضایی جداگانه و با آدرس های جدا از هم دیگر می باشند اما میکروکنترلر های آی وی آر قابلیت خواندن اطلاعات را از حافظه برنامه با استفاده از دستوارت مخصوصی دارا می باشد.
در سال 2006 شرکت اتمل میکرو کنترلر هایی را ارائه نمود که اساس معماری آنها 32 بیتی (AVR32) بود، که این سری از میکروکنترلر ها شامل یک دستور چند داده(SIMD) و پردازشگر سیگنال دیجیتال(DSP) بود که به تنهایی قادر به پردازش صدا و تصویر می باشند. این میکروکنترلر های 32 بیتی به منظور رقابت با ریزپردازنده های بر اساس معماری ARM تولید شد، دستورالعمل های این میکرو بر اساس معماری هسته های RISC می باشد، در حالی که به هیچ وجه دستوارت میکروکنترلرها AVR32 و هیچکدام از میکرو های ARM یکی نمی باشد.
در تمامی میکرو کنترهای AVR بخشهای Flash و SRAM و EEPROM همگی در یک چیپ آی سی قرار دارند و برای انتخاب و اتصال حافظه های خارجی نیازمند برنامه نویسی می باشد. بعضی از شماره های میکروکنترلر ها دارای یک تعداد پایه خروجی به عنوان BUS برای اتصال موازی حافظه خارجی به میکرو کنترلر می باشند. همچنین اکثر میکروهای AVR ( به غیر از بعضی شماره های ATtiny ) دارای رابط سریال می باشند که از آنها می توان برای اتصال میکرو به EEPROM و یا حافظه خارجی سریال با ظرفیت بیشتر استفاده نمود.
سرعت پردازنده میکروکنترلر ها بصورت معمول بین 0تا16 مگاهرتز می باشد همچنین در بعضی قابلیت افزایش تا 20 مگاهرتز و در بعضی خانواده ها تا 32 مگاهرتز را دارا می باشد.
راه های زیادی برای برنامه ریزی (پروگرم) کردن میکروکنترلرهای AVR وجود دارد و هر خانواده روش خاص خود را دارد:
روش برنامه ریزی درون مجموعه (به انگلیسی: In-system programming) (مخفف انگلیسی: ISP) توسط پروتکل گذرگاه ارتباط جانبی سریال به علاوه کمی ور رفتن با پین RESET کار می کند و پر استفاده ترین روش است. تا هنگامی که پین های SPI میکروکنترلر به چیزی که اختلال وارد کند وصل نشده، ریزپردازنده AVR می تواند سرجای خود روی PCB باقی بماند. تنها چیزی که نیاز داریم یک کانکتور 6-پایه و مبدل برنامه ریزی است.
مبدل Atmel AVR ISP mkII به درگاه USB متصل به گذرگاه سری یا مستقیم به گذرگاه سری رایانه وصل شده و توسط نرم افزار ATMEL Studio از پروتکل ISP قطعه را پروگرم می کند.
همچنین نرم افزارAVRDUDE (مخفف AVR Downloader/UploaDEr) که روی سیستم عامل های لینوکس، فری بی اس دی، ویندوز و Mac OS X اجرا می شود، برای مبدل های گوناگون رسمی و غیر رسمی (DIY) کار می کند.
سیستم برنامه ریزی و دیباگ کردن میکرو کنترلر ها که یکی از خصوصیات میکروهای AVR برای برنامه ریزی به وسیله ابزارهای خارجی و دیباگ و عیب یابی بر روی برد می باشد