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

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

نکات برگزیده مقاله

  • تاریخچه میکروکنترلر AVR
  • ساختار و معماری میکروکنترلرهای AVR
  • تفاوت میکروپروسسورها و میکروکنترلرها
  • بررسی امکانات و دسته بندی های مختلف میکروکنترلر AVR
  • مقایسه میکروکنترلر AVR  با میکروکنترلر PIC

نگاهی کلی به تاریخچه و کارکردهای میکروکنترلر AVR و آشنایی با انواع آن

قبل از آنکه به بررسی میکروکنترلر AVR بپردازیم ابتدا می خواهیم شما را با تاریخچه و روند تولید میکروکنترلرها آشنا کنیم. سال های بسیاری (تا قبل از ۱۹۷۱) برای طراحی سیستم ها و دستگاه ها، سازندگان مجبور بودند سیستم هایشان را به کمپانی های میکروپروسسور بدهند تا آنچه مورد نظر طراحان بوده، طراحی و به مرحله تولید برسانند یا خود سازنده با استفاده از IC ها این کار را انجام دهند. در این میان کمپانی Zilog سعی کرد میکروپروسسورهایی را طراحی و تولید کند تا سازندگان سیستم، آن را مطابق با اهداف خود طراحی کنند. اولین محصولات این کمپانی در این زمینه میکروپروسسورهای Z80 بود که به همراه آن یک پروگرمر و کامپایلر ( به زبان اسمبلی) نیز طراحی کردند.

قیمت بالا و سخت افزار پیچیده ی میکروپرسورهای اولیه، موجب شد تا کمپانی های سازنده آن به فکر طراحی قطعاتی جدید باشند تا امکانات لازم و اضافی را در CPUها قرار دهند. این کار باعث شد تا قیمت تمام شده قطعه کاهش یافته و سخت افزار کمتری در آن به کار رود.  در نهایت در ۱۹۸۱ کمپانی اینتل تراشه هایی را با نام میکروکنترلر از گروه ۸۰۵۱ تولید و وارد بازار کرد. از ویژگی های این تراشه وجود CPU هشت بیتی، قرار دادن تایمر (کانتر)، امکان تبدیل سریال ها به یکدیگر، وجود حافظه فلش داخلی (Flash) و SRAMها می باشد. نمونه ابتدایی آن ها دارای حافظه PROM بود بعدها با گسترش امکانات آن، حافظه میکروکنترلرها به EPROM  تغییر کرد.

یکی از کاربردهای حافظه EPROM  در آن تراشه ها این بود که با قرار دادن آنها در برابر نور خورشید و یا اشعه فرابنفش به دلیل وجود پنجره ای شیشه مانند در قسمت فوقانی تراشه ، بعد از دقایقی حافظه آن پاک می شد. مسیر توسعه میکروکنترلرها ادامه یافت تا جایی که این شرکت -اینتل- حافظه هایی را برای تراشه ها طراحی کرد تا بتوان آنها را با ولتاژهای الکتریکی معین نوشته و با همین روش پاک کنند. این حافظه ها از Cxx 89 شروع می شوند که در حال حاضر نیز قابل استفاده هستند.

در همین راستا کمپانی Atmel، میکروکنترلرهای ۸۰۵۱ را طراحی و به بازار عرضه کردند. بعدها این کمپانی میکروکنترلرهای ۸۰۵۱ را توسعه داد و مجدداً آنها را با سری های AT89Sxx  وارد بازار کرد. بعد از آن نیز میکروکنترلر  PIC ساخته شد و در ادامه این مسیر کمپانی Atmel در ۱۹۹۷، موفق به ساخت میکروکنترلر AVR شد. در واقع طراح اصلی این میکروکنترلرها دو دانش آموز (Alf-Egil Bogen  و Vegard Wollan) از موسسه تکنولوژی نروژی بودند و علامت اختصاری میکروکنترلر AVR برگرفته از نام این دو شخص می باشد.

قبل از آن که به معرفی میکروکنترلر AVR بپردازیم و نحوه کار کردن با آنها را بررسی کنیم، بهتر است اول بطور کامل با این میکروکنترلر آشنا شوید و  جواب این سوال ها را بدانید تا با درک و ذهنیت پیدا کردن از این وسیله بتوانید به راحتی با آن کار کرده و کمتر دچار مشکل شوید:

  • ساختار میکروکنترلرها چگونه است؟
  • در چه وسایلی و برای چه مواردی قابل استفاده است؟
  • تفاوت میکروکنترلرها و میکروپروسسورها در چیست؟
  • بررسی و دسته بندی کلی انواع میکروکنترلر AVR
  • مقایسه میکروکنترلر AVR با میکروکنترلر PIC
  • میکروکنترلرهای AVR از نظر قیمت چه تفاوت هایی دارند؟

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

ساختارهای انواع میکروکنترلرها از جمله میکروکنترلر AVR از تجمع یک سری مدار ( مدارهای مجتمع )  در کنار هم و یا همان چیپ های الکترونیکی ساخته می شوند. در واقع اینها مدارهای کریستالی کوچکی هستند که نیمه هادی بوده و با داشتن قطعه های الکترونیکی، اتصال های درونی لازم را در آن قرار دارد.

معمولا این مدارها داخل محفظه های پلاستیکی و در بعضی موارد سرامیکی جا گرفته و قسمت اتصال آنها با سیم طلایی رنگ بسیار نازکی به پایه ها در بیرون مدار لحیم می شوند. تعداد پایه های بیرون مدار متغیر بوده و می تواند ۱۴ تا ۱۰۰ و یا بیشتر باشد. از دیگر مشخصات این مدارها که عامل ساخت میکروکنترلرهاست آنالوگ و دیجیتال بودن آن ها می باشد.

میکروکنترلر در چه وسایلی و برای چه مواردی قابل استفاده است؟

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

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

شاید برخی کار و ویژگی های میکروکنترلر را با میکروپروسسورها یکی تصور کنند اما باید بدانید که میکروپروسسور از نوع ICهای پردازشگر بوده و مدارهای مربوط به حافظه و ورودی ها و خروجی های جانبی را ندارد و این خود باعث بیشتر شدن قیمت و پیچیده تر شدن آن خواهد شد. در حالی که میکروکنترلر این چنین نیست بلکه شامل CPU، دو نوع حافظه ( RAM و ROM) و یک سری ورودی ها و خروجی هاست که می توان برای کارهای مورد نظر برنامه ای متناسب با آن نوشت. میکروپروسسورها بیشتر برای ساختن کامپیوترهای رومیزی، لپتاب ها و تبلت ها مورد استفاده قرار می گیرند اما میکروکنترلر برای مواردی مثل دستگاه و سیستم هایی است که کاربردی معین و مشخص دارند.

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

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

طبقه بندی کلی میکروکنترلر AVR به صورت زیر می باشد:

  • AVRهای کلاسیک ( AT90SXXXX)
  • AVRهای تاینی (ATtinyXXXX)
  • AVRهای مگا (ATmegaXXXX)
  • AVRهای X مگا (ATXmegaXXXX )
  • AVRهای Application-specific
  • AVRهای ۳۲ بیتی

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

این میکروکنترلر تراشه ای با قدرت پایین است که بسیار کارآمد بوده و معماری آن RISC مجازی از نوع پیشرفته می باشد. از قابلیت های این معماری می توان به اجرای شش میلیون دستورالعمل ها در ثانیه اشاره کرد. این نوع AVR تراشه ای یکپارچه از ۴۰ پین بوده که ۳۲ پین آن مربوط به پین های ورودی و خروجی می باشد. ۴ قالب برای این پین ها با نام های ۱.PORTC.۳ PORTB.۲ PORTA و ۴.PORTD  در نظر گرفته شده است. مابقی پین های موجود در تراشه برای وصل کردن به زمین، ایجاد مرجع آنالوگ، بخش کریستال، ریست و منبع ولتاژ می باشند.  پورت های دو طرفه مربوط به ورودی و خروجی ها دارای هشت پین است که هر کدام از آنها به اندازه هشت Bit عرض دارند.

پین مربوط به ریست از نوع فعال بوده که با دادن ولتاژ صفر ولت فعالیت خود را شروع می کند. در واقع این ویژگی باعث شده تا این نمونه از میکروکنترلرها کار خود را از حالت پیش فرض آغاز کنند. به طور تقریب در محیط، سیگنال ها از نوع آنالوگ بوده و از طرفی تنها زبان قابل درک برای میکروکنترلر دیجیتال است از همین رو برای تبدیل کردن سیگنال آنالوگ به دیجیتال، از PORTA استفاده می شود که دارای پین هایی از A0 الی A7 می باشند. به غیر از این موارد، میکروکنترلر ATMEGA32  AVR دارای یک سری ویژگی های اساسی است که در زیر لیستی از آنها را آورده ایم:

  • ۳۲ کیلو بایت حافظه از نوع flash دارند.
  • دارای ۱۰۲۴ بایت حافظه از نوع EEPROM است.
  • دارای ۲ کیلو بایت حافظه از نوع SRAM است.
  • شامل هشت کانال بوده که هر کدام ۱۰ بیت ADC می باشد.
  • دارای ۳۲ رجیستر عمومی برای ورودی ها و خروجی ها است.
  • رابطی از نوع JTAG و TWI دارد.
  • این میکروکنترلرها این قابلیت را دارند که وقفه های خارجی و داخلی ایجاد کنند.
  • دارای سریال با قابلیت برنامه ریزی از نمونه USART هستند.
  • شامل ۴ کانال از نوع PWM است.
  • پورت های سریال آن SPI می باشد.
  • ولتاژی که با آن کار می کند از ۴.۵ ولت تا ۵.۵ ولت متغیر است.
  • فرکانس تقریبی که با آن کار می کند حدودا ۱۶MHz است.

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

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

بسته به اینکه کاربر شخصی حرفه ای است یا اینکه اولین بار است از میکروکنترلرها استفاده می کند راحتی کار کردن با این دو میکروکنترلرها متفاوت بوده و بهتر است افراد مبتدی برای آغاز کار خود، میکروکنترلر AVR  را به کار گیرند. طراحی و ساختمان داخلی میکروکنترلر PIC نمونه بهبود یافته همان هاروارد است و این امر موجب شده تا میکروکنترلر PIC در برابر نویزها حفاظت شود. از نظر پکیج ها می توان گفت هم میکروکنترلر PIC و هم میکروکنترلر AVR از دو نوع پکیج DIP و SMD استفاده می کنند. از جمله برتری های AVRها این است که Watchdog را می توان با داشتن نرم افزار از حالت On به حالت Off ببریم. اما این وضعیت کمی در PICها متفاوت است برای فعالیت Watchdog، از دستورالعملهای مربوط به SLEEP استفاده کرده و این خود موجب حالت خوابیدن می شود اما اگر این دستورالعملها را در  میکروکنترلر AVR به کار بریم میکروکنترلر reset می شود و این عمل کار با آنها را دشوارتر خواهد کرد.

از دیگر تفاوت های دو میکروکنترلر ذکر شده در برنامه نویسی (کدنویسی، زبان برنامه و غیره) و تعدادی از دستورهایی است که برای CPU قابل درک است. مثلا در زبان برنامه نویسی اسمبلی برای AVRها تقریبا ۱۳۰ دستورالعمل و برای PICها ۳۰ مورد می باشد و این تعداد کم موجب شده تا نسبت به AVR حافظه ی کمی اشغال شود. به عنوان یک شباهت بین این میکروکنترلرها می توان گفت از هر دو، نمونه ی ۱۶ و ۳۲ بیتی موجود است که از نظر کارایی و امکانات مورد نظر اختلاف چندانی نداشته و بسته به نوع کار ( مثلا چه تعداد مدار دارید و با توجه به آن، میکروی چند بیتی مورد نیاز است) و حداقل و حداکثر هزینه هایی که برای انجام آن در نظر گرفته می شود می توان یکی از آنها را انتخاب کرد.

* یک سری امکانات در میکروکنترلرهای PIC هست که درون میکروکنترلر AVR وجود ندارد، به طور مثال:

  • در PIC ها دستوری به نام DTMFOUT هست که با به کار بردن آن می توانید روی هر پایه ای که خواستید سیگنالهایی سازگار با خطوط تلفن ایجاد کنید.
  • دستوری دیگر به نام POT در این میکروکنترلر وجود دارد که با متصل کردن پتانسیومتر به پایه ی مورد نظر، می توان آنها را از نظر مقیاس دسته بندی کرد.
  • برای ایجاد موج های PWM یک دستور جدا گانه و مخصوص در میکروکنترلرهای PIC هست در حالی که برای ایجاد این موج در AVRها کار پیچیده تر است.
  • یک نکته دیگر در مورد موج هایی که در مورد بالا ذکر شد (PWM) این است که در PICها می توان آن را بر روی پایه ی دلخواه قرار داد چون هر کدام از پین های این میکروکنترلر توانایی انجام هر نوع عملی را دارد در حالی که AVRها به دلیل محدود بودن تنها برخی از پایه ها توانایی ایجاد این نوع موج را دارند.
  • در صنعت و مواردی که حساسیت بالاست اکثرا PICها به کار گرفته می شود.
توجه: در صورت داشتن دو میکروکنترلر AVR و PIC و شرایط و ویژگی های یکسان از نظر هزینه، میکروکنترلرهای AVR مقرون به صرفه تر بوده و بهتر است از آنها استفاده کنید.

میکروکنترلرهای AVR از نظر قیمت چه تفاوت هایی دارند؟

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

  1. میکروکنترلر AVR سری ATMEGA16A (پکیج DIP):
  • طبقه بندی محصولات: از نوع میکروکنترلرهای ۸ بیتی – MCU
  • طریقه نصب کردن: از طریق ایجاد سوراخی بر روی آن
  • جحم حافظه: ۱۶ کیلو بایت از نوع فلش
  • کمترین و بیشترین دمایی که توانایی کار کردن با آن را دارد: حدودا از منفی ۴۰ تا مثبت ۸۵ درجه سانتی گراد متغیر است
  • مقدار ولتاژی که از منبع تغذیه می توان به آن وصل کرد: از ۲.۷ تا ۵.۵ ولت متغیر است
  • بیشترین فرکانس: تقریبا شانزده مگا هرتز
  • نام تجاری: Microchip Technology / Atmel
  • قیمت خرید: ۲۲۶ هزار ریال
  • تعداد تایمرها: سه عدد
  • رابط های قابل استفاده: SPI ، TWI و USART

  1. میکروکنترلر AVR سری ATMEGA8A-AU (پکیج SMD):
  • طبقه بندی محصولات: از نوع میکروکنترلرهای ۸ بیتی – MCU
  • جحم حافظه: ۱۶ کیلو بایت از نوع فلش
  • بیشترین و کمترین دما: ۴۰- تا ۸۵+ درجه سانتی گراد
  • بیشترین و کمترین ولتاژ منبع تغذیه: ۲.۷ تا ۵.۵ ولت
  • نام تجاری: Microchip Technology / Atmel
  • تعداد تایمرها: سه عدد
  • اندازه طول و عرض: ۷میلیمتر
  • قیمت خرید: ۸۵۵۰۰ ریال
  1. میکروکنترلر AVR سری ATMEGA8A-PU (پکیج DIP):
  • طبقه بندی محصول: از نوع میکروکنترلر ۸ بیتی – MCU
  • طریقه نصب: همانند نمونه ATMEGA16A با سوراخ کردن آن امکان پذیر است
  • گستره دمایی که با آن کار می کند: از منفی ۴۰ درجه تا مثبت ۸۵ درجه می باشد
  • فرکانس: ۱۶ مگا هرتز
  • جحم حافظه: ۸ کیلو بایت از نوع فلش
  • اندازه رام داده های مربوطه: ۵۱۲ بایت
  • اندازه رم: یک کیلو بایت
  • بیشترین و کمترین ولتاژ منبع تغذیه: ۲.۷ تا ۵.۵ ولت
  • نام تجاری محصول: Microchip Technology / Atmel
  • قیمت تمام شده محصول: ۱۲۸ هزار ریال
  1. میکروکنترلر AVR سری ATxmega128A1U:
  • دسته بندی محصول: از نوع میکروکنترلرهای ۸ بیتی – MCU
  • تولید کننده: میکروچیپ
  • سری پردازنده: AVR XMEGA
  • حداکثر دما: ۸۵ درجه سانتی گراد
  • حداقل دما: منفی ۴۰ درجه سانتی گراد
  • نام تجاری: Microchip Technology / Atmel
  • نوع رابط هایی که می توان استفاده کرد: I2C ، SPI ، UART
  • مقدار ولتاژی که از منبع تغذیه می توان به آن وصل کرد: از ۱.۶ تا ۳.۶ ولت متغیر است
  • اندازه حافظه و نوع آن: ۱۲۸ کیلو بایت از نوع Flash
  • تعداد تایمرهای به کار رفته: ۸ عدد
  • قیمت تمام شده محصول: ۴۶۱ هزار ریال

  1. میکروکنترلر AVR نمونه ATTINY13A-SSU (پکیج SMD):
  • دسته بندی محصولات: ۸ بیتی – MCU
  • حداکثر و حداقل ولتاژ منبع تغذیه: ۱.۸ ولت تا ۵.۵ ولت
  • سری پردازنده: tinyAVR
  • نام تجاری: Microchip Technology / Atmel
  • بیشترین و کمترین میزان دما در حین کار: ۴۰- الی ۸۵+ درجه
  • فضای حافظه: یک کیلو بایت( نوع: Flash)
  • حداکثر فرکانسی که با آن می تواند کار کند: ۲۰ مگا هرتز
  • نوع رابطی که برای آن قابل استفاده است: SPI
  • تعداد تایمر: یک عدد
  • قیمت خرید محصول در بازار: ۴۶ هزار ریال

 

به این مقاله امتیاز دهید:

امتیاز کاربران: اولین نفر باشید!
برچسب ها
نمایش بیشتر

محسن چهرازی

من محسن چهرازی، دانش آموخته رشته مهندسی برق- الکترونیک هستم. در زمینه های کنترل تابلو فرمان آسانسور، برنامه نویسی میکروکنترلرها (زبان C) و MATLAB، کدنویسی VHDL برای FPGA ها و تا حدودی نانو الکترونیک تخصص دارم. این وبسایت رو درست کردم تا با هم یاد بگیریم تحلیلی به مسائل الکترونیک نگاه کنیم و کمی از بخاطر سپردن دریای فرمول ها فاصله بگیریم.

دیدگاه خود را بنویسید. (این مقاله بر اساس نظرات شما به روز رسانی خواهد شد.)

avatar
  مشترک شدن  
اطلاع رسانی کن

همچنین ببینید

بستن
دکمه بازگشت به بالا
بستن
بستن