میکروکنترلر AVR چیست؟ انواع میکرو کنترلر AVR و کاربردش

میکروکنترلر AVR چیست؟ انواع میکرو کنترلر AVR و کاربردش

میکروکنترلر AVR نوعی میکروکنترلر تولید شده توسط شرکت Atmel است که مزایای خاصی نسبت به تراشه های رایج دیگر دارد، اما ابتدا باید روشن شود که میکروکنترلر AVR چیست ؟ میکروکنترلر AVR نوعی چیپ قابل برنامه ریزی جهت کنترل دستگاه هایی است که نیازمند ذخیره اطلاعات هستند. برای فهم بیشتر بهتر است یک میکروکنترلر AVR را با رایانه شخصی مقایسه کرد که مادربرد در آن به کار رفته است.

در مادربرد یک ریزپردازنده (تراشه های AMD یا اینتل) قرار دارد که از طریق آن می توان به هوشمندی، حافظه RAM و EEPROM و رابط های دیگر سیستم مانند پورت های USB، درایوهای دیسک و رابط های نمایشگر اشاره کرد. یک میکروکنترلر تمام یا بیشتر این ویژگی ها همچون CPU، پورت های ورودی و خروجی و حافظه RAM یا ROM را در یک تراشه داخلی دارد، بنابراین نیازی به مادربرد ندارند و بسیاری از اجزای سازنده، مانند LEDها، می توانند مستقیماً به میکروکنترلر AVR متصل شوند.

آموزش تعمیرات برد الکترونیکی

کاربرد میکرو کنترلر AVR

میکروکنترلرهای AVR بسته های مختلفی دارند که برخی برای نصب از طریق سوراخ و برخی نیز برای نصب روی سطح طراحی شده اند. AVRها با 8 پین تا 100 پین در دسترس هستند، اگرچه AVR از 64 پین بیشتر باشد فقط برای نصب روی سطح مناسب هستند. ریزپردازنده های رایانه های شخصی حداقل 32 بیتی هستند، البته امروزه رایانه ها اکثرا 64 بیتی ساخته می شوند.

این بدان معناست که آن ها می توانند داده ها را به صورت قطعه های 32 بیتی یا 64 بیتی پردازش کنند. AVR بسیار ساده تر است و با داده های 8 بیتی سروکار دارد، زیرا پهنای گذرگاه آن 8 بیتی است، اگرچه اکنون یک AVR32 با پهنای گذرگاه 32 بیتی و یک خانواده ATxmega با پهنای گذرگاه داده 16 بیتی وجود دارد.

کاربرد میکرو کنترلر AVR

یک رایانه شخصی دارای سیستم عامل (ویندوز یا لینوکس) است که برنامه های زیادی مانند Word یا Internet Explorer یا Chrome را اجرا می کند و کارهای زیادی را انجام می دهند. یک میکروکنترلر 8 بیتی AVR معمولاً سیستم عاملی ندارد، اگرچه در صورت نیاز می تواند یک سیستم ساده را اجرا کند و در عوض فقط یک برنامه یا دستور را اجرا می کند.

همانطور که اگر بروی رایانه خود هیچ برنامه ای را نصب نکنید ، رایانه شما بی فایده خواهد بود، باید بروی AVR نیز باید یک برنامه نصب کرده باشید تا از بتوانید از آن استفاده کنید. این برنامه بجای ذخیره در درایو خارجی در حافظه داخلی AVR ذخیره می شود. به عنوان مثال یک دستگاه گرمایشی را در دمای بالای خاصی خاموش کند و در دمای پایینی روشن کند.

تاریخچه میکروکنترلر ای وی ار

میکروکنترلر AVR خانواده ای از میکروکنترلرها است که در سال 1996 توسط Alf-Egil Bogen و Vegard Wollan دو محقق و دانشجوی نروژی طراحی شد و در شرکت ATMEL ساخته شد. نام این میکروکنترلر از مخفف نام طراحان آن گرفته شده است. اولین میکروکنترلری که بر اساس طراحی AVR تولید شد مدل AT90S8515 بود، با این حال در سال 1997 میکروکنترلر AT90S1200 وارد بازار شد، تا این زمان میکروکنترلر های avr هنوز کاملا شناخته شده نبود.

یکروکنترلر AVR در سال 2016 توسط Microchip Technology خریداری شد. AVR یکی از اولین خانواده های میکروکنترلر بود که برخلاف سایر میکروکنترلرها که از حافظه ROM ، EPROM یا EEPROM با قابلیت یک بار برنامه نویسی در آن زمان استفاده می کردند، از حافظه فلش بر روی تراشه برای ذخیره برنامه استفاده کرد.

ساختار میکروکنترلر AVR

میکروکنترلر AVR از اجزا و ساختار های مختلفی تشکیل شده است. واحد پردازش مرکزی که مغز میکروکنترلر خوانده می شود و وظیفه رمز گشایی داده را به عهده دارد. تمام کدها و برنامه ها در حافظه ذخیره می شود، حافظه میکروکنترلر ای وی ار از نوع RAM، ROM یا حافظه فلش است. پورت های ورودی و خروجی جهت اتصال به دستگاه ها به کار می روند، یک یا چند تایمر در میکروکنترلر زمان بندی و شمارش پالس خارجی، توابع کلاک، اندازه گیری فرکانس، عملیات اصلی تولید پالس و غیره را کنترل می کند.

مبدل آنالوگ به دیجیتال و برعکس، ADC سیگنال آنالوگ را به دیجیتال تبدیل کرده این سیگنال ها برای برنامه های جانبی استفاده می شود، در مقابل مبدل دیگری دیجیتال را به آنولوگ تبدیل می کند که در دستگاه های آنالوگ موتورهای DC کاربرد دارد. بخش کنترل کلاک ورودی، مقایسه آنالوگ، واحد کنترلر صفحه نمایش و بلوک های عملکرد خاص نیز اجزا دیگر میکروکنترلر هستند.

برنامه نویسی میکروکنترلر AVR

یک برنامه مجموعه ای از دستورالعمل ها است که هر کدام بسیار ساده هستند، داده ها را دریافت کرده و آن ها را دستکاری می کنند. در بیشتر وسایلی که از AVR استفاده می کنند، مانند کنترل کننده ماشین لباسشویی، این به معنای خواندن ورودی ها ، بررسی وضعیت آن ها و روشن کردن است.

برنامه نویسی میکروکنترلر AVR

بعضی اوقات ممکن است لازم باشد داده ها را تغییر داده یا دستکاری کنید، یا آن ها را به دستگاه دیگری مانند LCD یا پورت سریال منتقل کنید. برای انجام این کارهای اساسی از یک سری دستورالعمل های دودویی ساده استفاده می شود و هرکدام دارای یک دستورالعمل معادل زبان اسمبلی هستند که انسان می تواند آن ها را درک کند.

اصلی ترین روش نوشتن برنامه AVR استفاده از زبان اسمبلی است. استفاده از زبان اسمبلی به شما امکان می دهد در مورد عملکرد ” میکروکنترلر AVR ” و چگونگی ترکیب آن اطلاعات بیشتری کسب کنید. همچنین برنامه نویس کدهای بسیار کم و سریعی می نویسد. تنها ایراد آن این است که برنامه نویس باید همه کارها از جمله مدیریت حافظه و ساختار برنامه را انجام دهید، که بسیار خسته کننده خواهد بود. برای جلوگیری از این گونه مشکلات، زبان های سطح بالا به طور فزایندهای برای نوشتن کدهای میکروکنترلرAVR ، زبان C به طور خاص بلکه و همچنین جاوا و بیسیک استفاده می شود.

انواع میکروکنترلر avr

معمولا AVR در چهار گروه مگا (mega)، تاینی (tiny )، تک منظوره و کلاسیک دسته بندی می شوند، که انواع میکروکنترلرها عبارتند از:

  • میکروکنترلرهای Tiny
  • میکروکنترلر mega
  • میکروکنترلر Atmega8 AVR
  • میکروکنترلر Atmega16 AVR
  • میکروکنترلر Atmega32 AVR
  • میکروکنترلر Atmega328 AVR
  • میکروکنترلر سری کلاسیک

میکروکنترلرهای Tiny

میکرو کنترلر tiny در ابعاد مختلف 8، 20 و 28 پایه موجود هستند. این سری نسبت به سایر مدل ها از امکانات کمتر برخوردار است، اما با این حال CUP قوی دارد و بیشتر جهت عملیات های ساده و کم حجم مناسب است. تاینی سه حافظه فلش، SRAM و EEPROM را به کار می برد. برخی از انواع این میکروکنترلر عبارتند از ATtiny 2313، ATtiny11، ATtiny13 و ATtiny28 .

میکروکنترلر mega

سری میکرکنترلر mega دارای حافظه فلش 4 تا 512 کیلوبایتی است که نسبت به سری تاینی سطح بالاتری دارد. برخی از میکروکنترلرهای AVR که بیشتر مورد استفاده قرار می گیرند عبارتند از:

میکروکنترلر Atmega8 AVR

شامل 28 پین، 1کیلوبایتی ، SRAM، 8 کیلوبایت حافظه فلش، دارای دو رابط سیم، پین خارجی برای اتصال دو ولتاژ به دو ورودی مقایسه کننده است.

موارد استفاده: عمدتا برای ساخت پروژه های الکتریکی و الکترونیکی استفاده می شود.

میکروکنترلر Atmega16 AVR

از 40 پین تشکیل شده است. همچنین دارای یک نوع حافظه فلش، سرعت 16MIPS ، 1 کیلوبایت رم، شش حالت صرفه جویی در مصرف انرژی است.

موارد استفاده: توسط سیستم تعبیه شده بر روی موبایل کار می کند.

میکروکنترلر Atmega32 AVR

از 44 پین به همراه حافظه 32 بیتی تشکیل شده است. این نوع از حافظه فلش، سرعت 16 MIPS ، 2048 SRAM و دارای محدوده ولتاژ 7/2 تا 5/5 است.

موارد استفاده: در سیستم های بدون دخالت انسان استفاده می شود و توسط سیستم تعبیه شده در موبایل کار می کند.

میکروکنترلر Atmega328 AVR

معماری RISC شامل حافظه نوع فلش 32 کیلوبایتی، 2 کیلوبایت SRAM ، محدوده ولتاژ عملیاتی از 8/1 تا 5/5 و حافظه EEROM یک کیلوبایتی (حافظه فقط خواندنی با قابلیت پاک شدن) است.

موارد استفاده: به طور گسترده ای در سیستم های آردوینو، رباتیک، نظارت بر قدرت و مدیریت استفاده می شود.

میکروکنترلر سری کلاسیک

سری کلاسیک یا AT90S اولین سری تراشه های میکروکنترلر AVR است. از لحاظ امکانات در حد بین تاینی و mega قرار دارد. برخی از مدل های این خانواده عبارتند از AT90S1200، AT90S2313، AT90S2323 و AT90S8534 می باشد.

مفهوم پسوندها در میکروکنترلر ای وی ار

اگر به نام میکروکنترلرها توجه کرده باشید پسوند هایی را خواهید دید که این پسوندها در میکروکنترلر AVR هر کدام معنای خاصی را می رسانند و فقط یک نام خاص تلقی نمی شوند. این پسوند ها نشان دهنده محدوده ولتاژی و فرکانس میکروکنترلر هستند. درصورتی که بدون پسوند باشند محدوده تغذیه با تغییرات کم( v ~ 5.5 v) و فرکانس کلاک حداکثر 16 مگاهرتز را نشان می دهد.

مفهوم پسوندها در میکروکنترلر ای وی ار

همچنین پسوندL نشانگر محدودۀ تغدیه با تغییرات متوسط( v ~ 5.5 v7) و فرکانس کلاک تا 8 مگاهرتز است،پسوندA نیز خصوصیت های هر دو مورد قبلی را نشان می دهد .پسوند V نیز محدودۀ ولتاژ 8/1 ولت تا 5/5 ولت و فرکانس تا 4 مگاهرتز را نشان می دهد.

حافظه میکروکنترلر AVR

ذخیره برنامه میکروکنترلر AVR توسط حافظه ROM انجام می شود. گرچه 8 مگابایت فضای ROM در میکرکنترلر AVR تعبیه شده است اما این مقدار برای تمام اعضا AVR منظور نمی گردد. اندازه ROM از یک کیلوبایت تا 256 کیلوبایت برای انواع سری متغییر است. حافظه ROM در چند ثانیه پاک می شود، اما با اضافه شدن حافظه فلش بر روی آن این زمان بیشتر شده و 20 دقیقه زمان برای پاک شدن احتیاج است.

حافظه فلش جهت ذخیره سازی کد یا برنامه است. نوع دیگر حافظه ROM از نوع EEPROM است، این نوع از حافظه جهت ذخیره داده هایی که تغییر نمی کنند، داده ها در این حافظه با قطع برق و یا خاموش کردن میکروکنترلر پاک نمی شود.

یک حافظه دیگر به کار رفته در AVR، حافظه RAM است که برای ذخیره داده ها استفاده می شود. حافظه RAM حدود 64 کیلو بایت است که این میزان هم مانند ROM بر روی تمام تراشه های موجود نیست. اطلاعات در این حافظه به طور موقت ذخیره می شوند و با قطع برق حافظه پاک خواهد شد. سه بخش حافظه RAM عبارتند از رجیستر های همه منظوره که برای ذخیره سازی موقت داده ها برای محاسبات ریاضی و منطقی در AVR هستند.

حافظه I/O داخلی که مقدار استاندارد آن 64 بایت است و جهت کارهای خاصی همچون تایمرها، پورت های ورودی و خروجی، ثبات وضعیت و غیره استفاده می شود و در آخر SRAM داخلی که جهت ذخیره موقت داده های AVR و کامپایلر است. SRAM داده هایی که از طریق پورت های ورودی و سریال به CPU فرستاده می شوند را به طور موقت ذخیره سازی می کند.

معماری میکروکنترلر AVR

  • معماری RISC

یک نوع معمای میکروکنترلر AVR ، RISC بهبود یافته است. این معماری مجموعه دستورات و کدها ساده شده است که منجر به بازده بالا و سرعت بخشیدن در اجرای دستورات می شود.

  • معماری CISC

در این معماری تعداد کدها بیشتر و پیچیده تر است. زیرا هدف معماری CISC میکروکنترلر AVR این بود که کد یا دستورالعملی برای هر عبارتی که در زبان سطح بالا نوشته شده& وجود داشته باشد. اما مسلما هر چه تعداد این کدها و آدرس دهی ها بیشتر باشد& مدارهای سخت افزاری بیشتری برای اجرا و پشتیبانی آن ها نیاز است و درنتیجه منجر به کاهش سرعت محاسبات می گردد. اما برنامه نویسی آن بخصوص اسمبلی ساده تر شده و از جهتی سرعت اجرا کدها و دستورات کم شده است.

ویژگی های میکروکنترلر AVR

همانطور که هر میکروکنترلر کاربرد و ویژگی منحصر به فرد خود را دارد و در جایگاه خود می تواند به عنوان بهترین میکروکنترلر باشد بنابراین نمی توان یک میکروکنترلر را نسبت به سایر رقبا بهترین دانست. با این وجود ويژگی های میکروکنترلر AVR نیز خاص هستند که به طور خلاصه می توان گفت:

  1. بالاترین کارایی و اجرا در CPU
  2. سخت افزار ضرب کننده روی خود
  3. کدهایی کوچک
  4. هماهنگی بالای سیستم
  5. قابلیت به روزرسانی بالا
  6. حافظه خود برنامه ریز
  7. دارای واسط JTAG سازگار با IEEE 1149.1
  8. حاوی بهترین MCU برای حافظه فلش

هدف از میکروکنترلر AVR در یک سیستم

هر میکروکنترلر را می توان یک کامپیوتر کوچک در نظر گرفت. یک کامپیوتر با ورودی ها، خروجی ها، CPU و حافظه روی یک تراشه. هر میکروکنترلرAVR نیز مانند یک کامپیوتر برای ارتباط با ابزارهای الکترونیکی دیگر نیاز به پورت های ورودی و خروجی دارد. میکروکنترلر برای انجام وظایف خود در یک سیستم، باید با دنیای بیرون ارتباط داشته باشد.

هدف از میکروکنترلر AVR در یک سیستم

حتی اگر این وظیفه روشن و خاموش کردن یک LED یه یه سیستم تهویه باشد. کاربرد اصلی میکروکنترلرها در یک سیستم، کنترل و پردازش پارامترهای سیستم و پارامترهای در ارتباط با سیستم است. بدین صورت که پارامترهای ورودی پردازش شده و نتیجۀ آن نمایش داده می شود.

در یک سیستم کنترل کننده دمای هوا یک سنسور دما، یک میکروکنترلر، یک نمایشگر LCD و دو رله وجود دارد. در حافظه میکروکنترلر AVR برای دو دمای حداقل و حداکثر ذخیره شده است. هر گاه دما بین مقدار تعیین شده حداقل و حداکثر باشد، سیستم خنک کننده و سیستم گرمایشی خاموش می شوند. هرگاه دمای محیط افزایش یابد، سیستم خنک کننده روشن می شود. هر گاه دمای محیط کمتر شود، سیستم گرمایشی روشن می شود.

یک LCD نیز دما را نمایش می دهد. میکروکنترلرAVR روی داده های خروجی سنسور دما پردازش انجام می دهد که خروجی را با قطع و وصل کردن رله ها نشان می دهد. برای ارتباط میکروکنترلر AVR با سنسورهای بیرونی، دریافت ورودی ها و نشان دادن خروجی ها، واحدهایی در درون میکروکنترلر تعبیه شده اند.

5/5 - (2 امتیاز)


دیدگاه ها
اشتراک در
اطلاع از
4 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
noori
2 سال قبل

تازه وارد این بحث شدم برام جذابه

Se
3 سال قبل

عالی

حسین
3 سال قبل

برنامه با چه زبانی نوشته می شود

محمد سجاد تواضعی
پاسخ به  حسین
2 سال قبل

زبان C

02166577378
02166577378