میکروکنترلر های AVR یکی از محبوب ترین میکروکنترلر ها برای انجام پروژه های مختلف هستند. شما میتوانید با توجه به نیاز خود یک میکروکنترلر سری AVR را تهیه کنید، آن را برنامه نویسی کنید و از پروژه خود لذت ببرید. در این مقاله به بررسی میکروکنترلر های AVR و معرفی مرجعی برای یادگیری حرفه ای آن میپردازیم.
میکروکنترلر AVR چیست؟
میکروکنترلر های AVR از میکروکنترلر های قدیمی بازار هستند که با گذشت سال ها هنوز هم در بسیاری از پروژه ها مورد استفاده قرار میگیرند. برنامه نویسی این میکروکنترلر ها در دانشگاه ها آموزش داده میشود. برنامه نویسی AVR اکثرا با کامپایلر حرفه ای اتمل استودیو یا کدویژن انجام میشود. این میکروکنترلر دارای CPU، پورت های ورودی و خروجی، حافظه RAM و ROM و قسمت های مهم دیگر است.
میکروکنترلر های AVR از قسمت ها و ساختارهای مختلفی تشکیل شده اند. واحد پردازش مرکزی یا همان CPU که مغز میکروکنترلر است وظیفه رمزگشایی داده ها را بر عهده دارد. کد و برنامه در حافظه ذخیره می شود، حافظه میکروکنترلر RAM، ROM یا FLASH است. پورتهای ورودی و خروجی برای اتصال به دیگر قطعه ها و دستگاه ها به کار می روند. چند تایمر در میکروکنترلر زمانبندی و شمارش پالس خارجی، توابع کلاک، اندازه گیری فرکانس و… را کنترل میکند.
شروع برنامه نویسی AVR
اگر علاقمند باشید حتما میخواهید بدانید که کجا میتوان برنامه نویسی AVR را به صورت حرفه ای گرفت. شما میتوانید از بخش آموزش AVR سایت آیرنکس برای یادگیری استفده کنید. در این سایت مطالب رایگان زیادی در زمینه برنامه نویسی میکروکنترلر های AVR با زبان سی در کامپایلر حرفه ای اتمل استودیو قرار داده شده است. همچنین اگر بخواهید میتوانید از دوره آموزش AVR که کامل ترین دوره 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
حالا که با میکرکنترلر 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 برای حافظه فلش
نکتهی مهم: این نوشته رپورتاژ آگهی میباشد و وبسایت Melec.ir هیچ مسئولیتی در قبال تبلیغ دهنده ندارد.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
سلام ببخشید من دیروز با یک دستگاهی آشنا شدم به اسم ترازو پیشرفته فزوشگاهی دیجی مدل sM5300Ev ، میخواستم بپرسم به عنوان برنامه نویس avr arm وظیفه ما توی همچین دستگاهی چیه ؟ ممنونم در ضمن من یه دوره آموزشی میخواستم تهیه کنم شما در زمینه آردینو یا lpc مجموعه ای آموزشی دارید ؟
ببخشید شما پروژه با بسکام avr انجام میدین ؟ اگر انجام میدین چطوری باید باهاتون در تماس باشم .
شماره وایمیلم میزارم اگرم ممکنه از این طریق به من جواب بدید تا باهم درارتباط باشیم . ممنونم
parsdetect@gmail.com