میکروکنترلر های AVR یکی از محبوب ترین میکروکنترلر ها برای انجام پروژه های مختلف هستند. شما میتوانید با توجه به نیاز خود یک میکروکنترلر سری AVR را تهیه کنید، آن را برنامه نویسی کنید و از پروژه خود لذت ببرید. در این مقاله به بررسی میکروکنترلر های AVR و معرفی مرجعی برای یادگیری حرفه ای آن میپردازیم.
میکروکنترلر AVR چیست؟
میکروکنترلر های AVR از میکروکنترلر های قدیمی بازار هستند که با گذشت سال ها هنوز هم در بسیاری از پروژه ها مورد استفاده قرار میگیرند. برنامه نویسی این میکروکنترلر ها در دانشگاه ها آموزش داده میشود. برنامه نویسی AVR اکثرا با کامپایلر حرفه ای اتمل استودیو یا کدویژن انجام میشود. این میکروکنترلر دارای CPU، پورت های ورودی و خروجی، حافظه RAM و ROM و قسمت های مهم دیگر است.
میکروکنترلر های AVR از قسمت ها و ساختارهای مختلفی تشکیل شده اند. واحد پردازش مرکزی یا همان CPU که مغز میکروکنترلر است وظیفه رمزگشایی داده ها را بر عهده دارد. کد و برنامه در حافظه ذخیره می شود، حافظه میکروکنترلر RAM، ROM یا FLASH است. پورتهای ورودی و خروجی برای اتصال به دیگر قطعه ها و دستگاه ها به کار می روند. چند تایمر در میکروکنترلر زمانبندی و شمارش پالس خارجی، توابع کلاک، اندازه گیری فرکانس و… را کنترل میکند.
شروع برنامه نویسی AVR
اگر کنجکاو هستید که نام AVR از کجا برگرفته شده است باید بدانید که دقیقا مشخص نیست اما برخی معتقد هستند که مخفف نام سازندگان آن و RISC یعنی Alf and Vegard’s RISC Processor است. میکروکنترلر AVR ابتدا توسط شرکت Atmel طراحی شد و از اولین میکروکنترلرهایی بود که در آن از حافظه Flash برای ذخیره سازی برنامهها استفاده شد.
میکروکنترلر های AVR برپایه معماری RISC هستند که در این معماری مجموعه دستورات و کدها ساده شده است که منجر به بازده بالا و سرعت بخشیدن در اجرای دستورات می شود.
انواع میکروکنترلر ها
میکروکنترلرهای زیادی از خانوادهی AVR وجود دارند و هرکدام در برق و الکترنیک برای کاربردهای خاصی استفاده میشوند. میکروکنترلر های سری AVR دارای چندین خانوادهاند که در زیر ذکر شدهاست:
- ATTiny AVR
- AT90S
- Atmega AVR
- Xmega AVR
شما میتوانید پروژه های AVR را با ویژگیهای مورد نظرتان طراحی کنید. محبوب ترین خانواده، خانواده Atmega است که با قیمت کم، امکانات مناسبی را در اختیار برنامه نویس قرار میدهند.
میکرو کنترلر های خانواده tiny به صورت 8، 20 و 28 پایه موجود هستند. این خانواده نسبت به سایر خانواده ها از امکانات کمتری برخوردار هستند، اما با این حال CUP قدرتمندی دارند و بیشتر جهت عملیاتهای ساده و کم حجم مناسب استفاده هستند. تاینی سه حافظه Flash، SRAM و EEPROM را در خود دارد. برخی از میکروکنترلر های خانواده Tiny عبارتند از ATtiny 2313، ATtiny11، ATtiny13 و ATtiny28
تایمر ها در AVR
در زندگی روزمره ما برنامه ریزیهایی داریم که با توجه به زمان انجام میشوند. یعنی چه کاری را در چه زمانی و به چه مدت انجام میدهیم. وظیفه واحد تایمر/کانتر هم مثل همین کارهاست. برنامه ای که شما برای میکروکنترلر مینویسید همه زیر نظر واحد Timer/Counter انجام میشود.
بخش تایمر/کانتر از CPU میکروکنترلر جدا است تا محاسبات زمانی دقیق تر انجام شود و تحت تاثیر فعالیت پردازنده میکروکنترلر قرار نگیرد. توجه داشته باشید با این که از CPU جدا است اما پردازنده آن را کنترل میکند. تایمر مانند یک رجیستر است که مقادیر آن به صورت اتوماتیک کم و زیاد میشود. میکروکنترلر AVR دارای تایمر بسیار دقیقی است. نحوه کار تایمر / کانتر به این صورت است که اغلب از صفر شروع میکند به شمارش و ترتیب میشمارد تا به مقدار حداکثری که برای آن تعریف شده است برسد.
بخش های مختلف یک میکروکنترلر AVR
حالا که با میکرکنترلر AVR آشنا شدیم، بیایید بخش های مختلف آن را نیز بررسی کنیم.
- حافظه برنامه (Flash)
- حافظه داده (EEPROM) & (SRAM)
- واحد ورودی و خروجی (input/output)
- بخش کنترل کلاک ورودی
- مبدل آنالوگ به دیجیتال (ADC) / (Analog to Digital Converter)
- بخش ارتباط سریال (TWI)، (SPI)، (USART)
- واحد پردازش مرکزی (CPU)
- تایمر/کانتر (Timer/Counter Blocks)
- مقایسه آنالوگ (Analog comparator)
- واحد کنترلر صفحه نمایش (LCD Controller)
حافظه ها در میکروکنترلر
- حافظهی فلش: فلش EEPROM یا حافظهی فلش برای ذخیرهسازی دادهها استفاده میشود و به راحتی به میتوان به صورت الکتریکی آن را پاکسازی کرد. این حافظه بدون وجود اتصال الکتریکی نیز اطلاعات را در خود نگه میدارد. میکروکنترلر ATmega16 دارای ۱۶ کیلوبایت حافظهی فلش EEPROM است.
- Byte Addressable EEPROM: این حافظه نیز مانند حافظهی فلش، اطلاعات را بدون اتصال الکتریکی در خود نگه میدارد. ATmega16 دارای ۵۱۲ بایت از این نوع حافظه است.
- SRAM: حافظهی SRAM یا حافظهی ثابت، حافظهای است که با قطع شدن جریان برق اطلاعات آن پاک میشود. میکروکنترلر ATmega16 دارای یک کیلوبایت SRAM داخلی است که توسط CPU و برخی قطعات دیگر میکروکنترلر استفاده میشود.
کاربرد های AVR در آردوینو
میکروکنترلرهای AVR در بسیاری از پروژههای ساده و صنعتی استفاده میشوند. شما میتوانید در بسیاری از دستگاه های امبدد این میکروکنترلرهای را مشاهده کنید. یکی از کاربردهای جذاب این میکروکنترلر در بردهای آردوینو است. آردوینو یک پلتفرم است که دارای سخت افزار و نرم افزار است. سخت افزار در حقیقت همان برد های آردوینو هستند که اکثرا از میکروکنترلرهای AVR به عنوان مغز استفاده میکنند. شما میتوانید برنامه نویسی آردوینو را هم در سایت آیرنکس آغاز کنید و به یادگیری آن بپردازید.
برخی از پروژههایی که میتوان با این میکروکنترلر راه اندازی کرد در زیر ذکر شده است:
- استفاده در پروژههای برق و الکترونیک
- نوشتن متن با استفاده از ماتریسهای LED
- اندازهگیری شدت نور با استفاده از LDR
- زنگهای خطر
چرا میکروکنترلر AVR را انتخاب کنیم؟
هر کدام از میکروکنترلر ها دارای ویژگی های خاص خود هستند و شما باید خودتان تصمیم بگیرید از کدام میکروکنترلر استفاده کنید. اما در حالت کلی ویژگی های میکروکنترلر AVR که آن را از بقیه متمایز میکند در زیر ذکر شده است:
- بالاترین کارایی و اجرا در CPU
- سختافزار ضربکننده روی خود
- کدهایی کوچک
- هماهنگی بالای سیستم
- قابلیت به روزرسانی بالا
- حافظه خود برنامهریز
- دارای واسط JTAG سازگار با IEEE 1149.1
- حاوی بهترین MCU برای حافظه فلش
منبع: میکرودیزاینرالکترونیک