تفاوت میکروکنترلر AVR با Arm به همراه مزایا و معایب

تفاوت میکروکنترلر avr با arm

تفاوت میکروکنترلر avr با arm چیست؟ میکروکنترلر نوعی تراشه است که روی برد مدار چاپی نصب می شود و قابلیت برنامه نویسی دارد. دو نوع میکروکنترلر AVR و ARM وجود دارد که به مقایسه و بررسی هریک می پردازیم. برای انتخاب بهترین میکروکنترلر باید مزایا و معایب این دو گزینه را بررسی کرد تا با توجه به نیاز پروژه و بازار کار، انتخاب مناسبی داشت.

میکروکنترلر چیست؟

Microcontroller واحدی کنترلی برای کنترل یک عملیات خاص در یک سیستم خاص است. میکروکنترلر ها شامل میکروپروسسر (CPU)، حافظه جانبی (Memory)، لوازم جانبی (Peripheral) هستند که در یک تراشه (Chip) گنجانده شده و با برنامه نویسی به راحتی قابل استفاده می باشد.

میکروکنترلر

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

در سال 1996 توسط Alf-Egil Bogen و Vegard Wollan در شرکت Atmel توسعه پیدا کرد.

اتمل اولین میکروکنترلر سری AVR را با شماره AT90S8515 به بازار الکترونیک عرضه کرد که با توجه به حافظه داخلی Flash و EEPROM با فروش خوبی همراه شد.

دیاگرام AVR

خانواده های AVR

به طور کلی میکرو های ای وی آر در سری های زیر طبقه بندی می شوند:

  • ATtiny
  • ATmega
  • EA
  • DA
  • DD
  • DB

نکته: صرفا برخی از اعضای خانواده ATtiny، ATmega و Xmega در ایران وارد می شود.

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

  • شرکت Arm (Advanced RISC Machines) در سال 1990 به صورت مشارکتی توسط Acorn Computers, Apple و NXP Semiconductors با سرمایه 3 میلیون دلار در کشور انگلستان تاسیس شد.
  • حوزه فعالیت این شرکت، طراحی و توسعه معماری های پردازنده با نام arm است.
  • امروزه بیش از 270 میلیارد دستگاه از پردازنده هایی با معماری آرم استفاده می کنند.

arm میکروپروسسر است یا میکروکنترلر؟

  • هیچکدام! Arm یک معماری برای ریز پردازنده ها است. برخی شرکت ها از انواع این معماری برای ساخت CPU استفاده می کنند. به عنوان مثال پردازنده M1 شرکت اپل بر پایه معماری ARM64 است.
  • برخی شرکت های مانند STMicroelectronics اقدام به ساخت میکروکنترلر داری پردازنده بر مبنای معماری arm کرده اند. به عنوان مثال STM32F0 از پردازنده Cortext-m0 استفاده می کند.

انواع میکروکنترلر بر مبنای معماری arm (Arm-based microcontrollers)

در بازار قطعات الکترونیک ایران، موارد زیر رایج است:

  • Stm32 توسط شرکت STMicroelectronics
  • LPC توسط شرکت NXP
  • AT91SAM توسط شرکت microchip

مقایسه  ARMو AVR

در عمل نمی توان یک “معماری پردازنده” به نام arm با یک خانواده میکروکنترلر به نام AVR مقایسه کرد! منظور، مقایسهAVR با میکروکنترلر بر مبنای معماری arm (مانند LPC1768) است. به طور میانگین، میکروهای مبتنی بر Arm عملکرد و سرعت بهتری با تنوع قیمت بالاتر نسبت به AVR دارند. این موضوع باعث کاربرد گسترده arm در اینترنت اشیاء، پردازش همزمان و … شده است.

مورد مقایسه ARM AVR
عملکرد عملکرد بالا عملکرد متوسط
تلفات توان پایین. خصوصا در سری های کم مصرف مانند stm32L پایین
محیط های برنامه نویسی و توسعه keil, iar, stm32cubeide , … codevision, Bascom-avr, microchip studio, …
هزینه محدوده گسترده قیمت با توجه به شرکت سازنده و امکانات عموما پایین
یادگیری با توجه به پیچیدگی بیشتر و 32 بیتی بودن، زمان بیشتری برای یادگیری نیاز است. یادگیری آسان تری دارد و گزینه مناسب برای ورود به دنیای میکروکنترلر هاست.

پکیج ها

  • رایج ترین پکیج ها برای AVR شامل TQFP, UFBGA, VQFN, MLF, PDIPاست.
  • همچنین پکیج های VQFPN, UFQFPN, LQFP, BGA, UFBGA, برای میکرو های آرم متداول است.
  • نکته: میکروکنترلر های arm دارای پکیج DIP نیستند و برای تست روی برد بورد، باید از هدربورد استفاده کرد.

STM32F103C8T6-Board

ولتاژ کاری

محدوده ولتاژ کاری متداولAvr 2.7 تا 5.5 ولت است و در مقابل arm در محدوده 2 تا 3.6 ولت کار می کند. این موضوع باعث شده است تا برای ارتباط و کنترل تجهیزات 5 ولت توسط arm نیاز به استفاده از مدارات واسط باشد.

محیط های برنامه نویسی و توسعه ARM

نرم افزار stm32CubeIde برای میکرو های stm32 به طور رسمی توسط شرکت STMicroelectronics ارائه شده است که شامل امکانات زیر است:

  • یکپارچگی با stm32CubeMX
  • انجام تنظیمات اولیه Peripheral ها به صورت گرافیکی
  • خطایابی پیشرفته با قابلیت مشاهده مقادیر متغیر ها، رجیستر ها و …
  • پشتیبانی از ST-LINK و J-Link
  • اسناد و راهنما کامل شرکت st

محیط های برنامه نویسی و توسعه ARM

stm32CubeIde فقط برای stm32 قابل استفاده است در حالی که نرم افزار Keil MDK-ARM با پشتیبانی اکثر میکروهای مبتنی بر arm، محبوبت زیادی در ایران دارد.

برنامه نویسی arm با استفاده از رجیستر ها، کتابخانه CMSIS (برای تمام میکروهای مبتنی بر arm) یا HAL (فقط stm32) ممکن است.

محیط برنامه نویسی AVR

نرم افزار microchip studio (Atmel studioسابق) برای AVR و SAM به طور رسمی توسط شرکتmicrochip  ارائه شده است.

نرم افزار CodeVision AVR با قابلیت CodeWizard در ایران محبوبیت بالایی دارد.

نرم افزارBASCOM-AVR با پشتیبانی از زبان برنامه نویسی Basic توسط شرکت MCS Electronics پشتیبانی می شود.

برنامه نویسی AVR در سطح رجیستری یا توسط کتابخانه avr-libc ممکن است.

با توجه به رایگان بودن و جامعه پشتیبانی قوی تر،  microchip studio پیشنهاد بهتری است.

آیاAVR  منسوخ شده است؟

  • خیر! هنوز از AVR در پروژه های دانشجویی یا صنعتی استفاده می شود و برخی از برد های آردوینو بر پایه AVR است.
  • همچنین با توجه فراوانی و محبوبیت خانواده ATmega در ایران، برد ها و کتاب های آموزشی زیادی برای آن وجود دارد. به علت سادگی یادگیری AVR، گزینه مناسبی برای شروع برنامه نویسی است.
  • اما با توجه به قیمت مناسب تر و امکانات بیشتر میکروکنترلر های بر پایه معماری آرم (مانند STM32)، کاربرد avr کاهش پیدا کرده است.

برد AVR

باید توجه داشت که بسیاری از محصولات باavr  توسعه پیدا کردند و پشتیبانی، به روزرسانی و … این محصولات و برد های الکترونیکی نیاز به تسلط بر برنامه نویسی avr دارد.

اولویت بسیاری از شرکت های الکترونیک فعال در ایران، جذب مهندسین مسلط به arm و avr به طور همزمان است.

کدام میکروکنترلرarm  بهتر است؟

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

با این حال نمی توان جواب قطعی به سوال داد و باید به نیازمندی-اولویت های پروژه توجه کرد.

 برد arm

جمع بندی

به طور خلاصه در سال های اخیر، میکرو های مبتنی بر arm خصوصا Stm32 با ارائه عملکرد بهتر و قیمت مناسب تر، به انتخاب اول مهندسین الکترونیک تبدیل شده است. اما به علت سهولت بیشتر یادگیری AVR, کتب و منابع مناسب می تواند گزینه بهتری برای ورود به برنامه نویسی embedded در مقایسه با arm باشد. همچنین بسیاری از شرکت ها، جذب افراد مسلط همزمان به avr و arm را برای پشتیبانی و بروزرسانی محصولات خود یا حتی طراحی برد جدید در اولویت قرار داده اند.

در حال حاضر به عنوان مدیر تولید خط چاپ و مونتاژ در کارخانه مرصا فعالیت می کنم. مدرک کارشناسی رو در رشته مهندسی رباتیک از دانشگاه صنعتی شاهرود گرفتم و ارشد رو در رشته مدیریت در دانشگاه تهران ادامه دادم. از سال 1396 رسما فعالیتم رو در شرکت مرصا شروع کردم و تجربیات و مطالعات شخصیم رو به اشتراک می گذارم.