قطعات الکترونیک مدارهای الکترونیک میکروکنترلر AVR

آموزش میکروکنترلر AVR با کامپایلر Atmel Studio بخش اول: معرفی خانواده AVR

نوشته شده توسط علی زاهدی

میکروکنترلر های خانواده ی AVR سال هاست که جزء محبوب ترین میکروکنترلر های بازار هستند. این خانواده به دلیل قیمت مناسب، همچنین پشتیبانی از پریفرال های مختلف و موارد دیگر ورد توجه قرار گرفته اند. بسیاری از برد های آردوینو بر پایه میکروکنترلر های AVR طراحی شده اند. تمامی میکروکنترلر های سری ATtiny، ATmega و Xmega در خانواده میکروکنترلر های AVR قرار میگیرند. در این سلسله آموزش قصد داریم بر روی میکروکنترلر های سری ATmega تمرکز کنیم و با بخش های مختلف این میکروکنترلرها آشنا شویم. در ادامه با با مرجع تخصصی بردهای امبدد به زبان فارسی، دیجی اسپارک همراه باشید.

 


خانواده AVR میکروکنترلر


خانواده AVR از جمله ریزپردازنده های ۸ بیتی هستند که در سال ۱۹۹۶ توسط شرکت ATMEL معرفی شدند. این میکروکنترلر ها از معماری RISC برخوردار هستند. میکروکنترلر های AVR دارای ۳۲ ثبات همه منظوره هستند. این خانواده به دلیل دارا بودن کامپایلر زبان های برنامه نویسی سطح بالا بسیار مورد توجه قرار گرفته اند. در ادامه با مفهوم کامپایلر و  همچنین زبان های برنامه نویسی میکروکنترلر های AVR  و همچنین مفاهیم دیگر مربوط به میکروکنترلرهای AVR را مورد بررسی قرار می‌دهیم.

شناخت خانواده میکروکنترلرهای AVR - دیجی اسپارک

 


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


در ابتدای آموزش اشاره کوچکی به انواع میکروکنترلر های AVR شد. اما در این بخش قصد داریم تا میکروکنترلر های زیر مجموعه خانواده AVR را عمیق تر مورد بررسی قرار دهیم. شرکت اتمل میکروکنترلر های خود را در سه سری جداگانه که تمامی این سری ها زیر مجموعه خانواده AVR هستند، به کاربران ارائه می‌دهد. دسته بندی میکروکنترلر های AVR به صورت زیر است.

  • سری TinyAVR (ATtiny)

این سری از میکروکنترلر های خانواده AVR بسیار کوچک و عموما برای کاربرد های ساده مورد استفاده قرار میگیرند. قیمت این سری از میکروکنترلر های AVR بسیار ارزان است. این سری بسته به میکروکنترلری که مورد استفاده قرار می‌دهید منابع سخت افزاری در اختیار شما‌ می‌گذارد. در جدول زیر برخی از مشخصات این میکروکنترلر به صورت کلی بیان شده است.

میکروکنترلرهای سری TinyAVR (ATtiny) - دیجی اسپارک

 

  • سری MegaAVR (ATmega)

یکی از پر طرفدار نریم سری های میکروکنترلر های AVR که هم دارای پریفرال های مختلف و همچنین IO های بیشتری نسبت به سری Tiny دارند. میکروکنترلر های ATmega8، ۱۶، ۳۲، ۳۲۸ همگی در این سری از میکروکنترلر های AVR جای میگیرند. این سری از میکروکنترلر های AVR میزان حافظه های مختلفی دارند که در پروژه های مختلف بسیار کاربردی خواهند بود.در جدول زیر برخی از مشخصات این میکروکنترلر به صورت کلی بیان شده است.

میکروکنترلرهای سری MegaAVR (ATmega) - دیجی اسپارک

 

  • سری XMEGA

این سری از میکروکنترلر های AVR بسیار با سری های قبل متفاوت است و عملکرد بسیار بهتری نسبت به میکروکنترلر سری Tiny و Mega دارد. میتوان گفت که سری XMEGA آپدیتی از سری ATmega است. این سری از میکرو کنترلر های AVR از DMA، سیستم رویداد (Event) و رمزنگاری پشتیبانی میکنند. سری XMEGA تقریبا عملکردی مشابه به میکروکنترلر های ARM دارد.

میکروکنترلرهای سری XMEGA - دیجی اسپارک

 

میکروکنترلر های AVR به این سه نوعی که در این آموزش معرفی شد محدود نمی‌شوند و انواع مختلفی دارند. اما این ۳ دسته از میکروکنترلر های AVR که در این آموزش معرفی شد. از سری های دیگر بسیار محوب تر بوده و در بازار به وفور یافت می‌شوند.

 


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


ثبات ها حافظه های ویژه ای با ظرفیت ۸ بیت هستند که از R0 تا R31 نام گزاری شده اند. این ثبات ها در زبان برنامه نویسی اسمبلی مورد استفاده قرار میگیرند. البته زمانی که برنامه ای با زبان های سطح بالا نوشته می‌شود نیز به اسمبلی تبدیل خواهد شد. اما در زبان های برنامه نویسی سطح بالا مانند C کاربر مستقیم با ثبات های R0 تا R31 سر و کار ندارد. ثبات های موجود در میکروکنترلر های AVR شبیه به تصویر زیر هستند.

ثبات ها در میکروکنترلرهای AVR - دیجی اسپارک

 

از جمله ویژگی های ثبات های میکروکنترلر های AVR میتوان به موارد زیر اشاره نمود.

  1. آنها را می توان به طور مستقیم در دستورات اسمبلر به کار برد.
  2. انجام عملیات برروی محتوای آنها تنها نیاز به یک دستور تک کلمه ای دارد.
  3. آنها به طور مستقیم به واحد پردازش مرکزی که Accumulator یا انباره نامیده می شود متصل هستند.
  4. آنها ورودی-منبع و خروجی- مقصد اعمال محاسباتی هستند.

 


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


میکروکنترلر های مختلفی در بازار موجود است، حتی برخی میکروکنترلر ها مانند STM32 بسیار پردازنده های قوی تری نسبت به میکروکنترلر های AVR هستند و از پریفرال های بیشتری نیز پشتیبانی میکنند. حالا ممکن است این سوال برای شما به وجود بیاید که، چرا با توجه به این که میکروکنترلر های بسیار قوی تری نسبت به خانواده AVR در دسترس است، بایستی از به سراغ میکروکنترلر های AVR برویم؟

 

در جواب این سوال بایستی گفت که، این مسئله کاملا به پروژه ای که قصد انجام آن را دارید، خواهد داشت. در بسیاری از پروژه هایی که نیاز است تبدیل به محصول شده و وارد بازار شوند. مسئله هزینه تمام شده محصول بسیار مهم است. میکروکنترلر های AVR در وضعیت فعلی بازار قیمت پایین تری تسبت به میکروکنترلر هایی مانند STM32 دارند. بنابراین در صورتی که امکان ساخت محصول با میکروکنترلر های AVR وجود داشته باشد. استفاده از این میکروکنترلر در محصول هزینه تمام شده محصول را بسیار کاهش خواهد داد.

 


جمع بندی


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

 

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

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی از وبسایت دیجی اسپارک حمایت کنید.

 

درباره نویسنده

علی زاهدی

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

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

تبادل نظر و رفع عیب با ثبت دیدگاه