آموزش میکروکنترلر ای وی آر (AVR)

دسته بندی: آموزش اینترنت اشیاء (IOT)

آموزش میکروکنترلر AVR

آنچه در این صفحه می خوانید:

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

میکروکنترلر AVR نوعی دستگاه تولید شده توسط Atmel است که دارای مزایای خاصی نسبت به سایر تراشه های معمول است. یک میکروکنترلر را با رایانه خود مقایسه کنید که دارای یک مادربرد در آن است. در این مادربرد، یک ریزپردازنده (تراشه های اینتل، AMD) است که حافظه های هوشمند، حافظه RAM و EEPROM را ارائه می دهد که به بقیه سیستم متصل می شود، مانند پورت های سریال (اغلب پورت های USB در حال حاضر)، درایوهای دیسک و رابط های صفحه نمایش. یک میکروکنترلر دارای تمام یا بیشتر این ویژگی ها در یک تراشه است، بنابراین نیازی به یک مادربرد نیست و بسیاری از اجزای آن، به عنوان مثال LED ها می توانند به طور مستقیم به AVR متصل شوند.

میکروکنترلر AVR که شرکت اتمل آن را روانه بازار کرده است در زمینه اینترنت اشیا بسیار کاربرد دارد. میکروکنترلرهای AVR بسیاری از برنامه ها را به عنوان سیستم های تعبیه شده پیدا می کنند. آنها بخصوص در برنامه های جاسازی شده سرگرمی و آموزشی رایج هستند، که با درج آنها در بسیاری از صفحات آردوینو (Arduino) از تخته های توسعه سخت افزار آزاد محبوبیت دارند.

میکروکنترلر AVR هشت بیتی در سال ۱۹۹۶ توسط شرکت اتمل تولید شد. از خانواده های اصلی AVR می توان به TinyAVR ،megaAVR ،Xmega و FPSLIC نام برد.

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

آموزش میکروکنترلر ای وی آر (AVR)

AVR ها طیف گسترده ای از ویژگی ها را ارائه می دهند:

  • پورت های I / O چند منظوره با مقاومت های قابل تنظیم
  • اسیلاتورهای داخلی چندگانه، از جمله اسیلاتور RC بدون قطعات خارجی
  • حافظه فلش داخلی و قابل برنامه ریزی داخلی تا 256 KB (384 KB در XMega)
    • قابلیت برنامه ریزی در سیستم با استفاده از پورت سریال / موازی اختصاصی ولتاژ کم یا JTAG
    • بخش بوت کد اختیاری با بیت های قفل مستقل برای محافظت
  • اشکال زدایی روی تراشه (OCD) از طریق JTAG یا debugWIRE در اکثر دستگاه ها پشتیبانی می کند.
    • سیگنال های JTAG (TMS ،TDI ،TDO و TCK) در GPIO چند برابر هستند. این پین ها بسته به تنظیم بیت فیوز که می توانند از طریق ISP یا HVSP برنامه ریزی شوند، به عنوان JTAG یا GPIO تنظیم می شوند. بصورت پیش فرض، AVR ها با JTAG با رابط JTAG فعال هستند.
    • debugWIRE از پین / RESET به عنوان کانال ارتباطی دو جهته برای دسترسی به مدار اشکال زدایی بر روی تراشه استفاده می کند. این دستگاه در دستگاه هایی با تعداد پین کمتر وجود دارد، زیرا فقط به یک پین نیاز دارد.
  • داده های داخلی EEPROM تا 4 KB
  • SRAM داخلی تا 16 KB (32 KB در XMega)
  • فضای داخلی 64 کیلوبایت خارجی در مدل های خاص از جمله Mega8515 و Mega162.
    • فضای داده خارجی با فضای داخلی داده پوشانده شده است، به گونه ای که فضای کامل آدرس 64 KB در گذرگاه خارجی نمایش داده نمی شود.
    • در برخی از اعضای سری XMega، فضای داده خارجی برای پشتیبانی از SRAM و SDRAM افزایش یافته است. همچنین، حالت های آدرس دهی گسترش یافته اند تا امکان دسترسی مستقیم به 16 مگابایت حافظه داده فراهم شود.
  • تایمرهای 8 بیتی و 16 بیتی
    • خروجی PWM (بعضی از دستگاه ها دارای PWM جانبی هستند که شامل یک ژنراتور است)
    • ضبط ورودی که یک تمبر زمانی ایجاد می کند که توسط یک لبه سیگنال ایجاد می شود.
  • مقایسه کننده آنالوگ
  • مبدل A / D 10 یا 12 بیتی، با چند کانال تا 16 کانال
  • مبدل های D / A 12 بیتی
  • انواع رابط های سریال از جمله
    • رابط دو سیم سازگار با I²C (TWI)
    • لوازم جانبی سریال همزمان یا ناهمزمان (UART / USART) (مورد استفاده با RS-232، RS-485 و موارد دیگر)
    • گذرگاه رابط سریال سریال (SPI)
    • رابط سریال جهانی (USI): یک ماژول ارتباطی سخت افزاری چند منظوره که می تواند برای اجرای یک رابط SPI ،I2C یا UART مورد استفاده قرار گیرد.
  • تشخیص Brownout
  • تایمر تماشاگر (WDT)
  • حالت خواب چندگانه صرفه جویی در مصرف برق
  • مدل های کنترل کننده نور و کنترل موتور (مخصوص PWM)
  • پشتیبانی از کنترلر USB
    • کنترلر سخت افزاری و هاب با سرعت کامل (12 مگابیت در ثانیه) و AVR تعبیه شده.
  • پشتیبانی از کنترل کننده اترنت
  • پشتیبانی از کنترل ال سی دی
  • دستگاه های دارای ولتاژ کم تا 1.8 ولت (به 0.7 ولت برای قطعات با پیش ساخته DC-DC داخلی)
  • دستگاه های picoPower
  • کنترل کننده های DMA و ارتباطات جانبی "سیستم رویداد".
  • پشتیبانی سریع رمزنگاری برای AES و DES

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

معماری دستگاه

Flash ،EEPROM و SRAM همه در یک تراشه واحد ادغام شده و نیاز به حافظه خارجی را در اکثر برنامه ها برطرف می کنند. برخی از دستگاه ها دارای گذرگاه خارجی موازی هستند که امکان اضافه کردن حافظه داده های اضافی یا دستگاه های نقشه برداری شده را فراهم می کنند. تقریباً تمام دستگاه ها (به جز کوچکترین تراشه های TinyAVR) دارای رابط های سریالی هستند که می توان از آنها برای اتصال سریال های بزرگتر EEPROM یا تراشه های فلش استفاده کرد.

حافظه برنامه

دستورالعمل های برنامه در حافظه های فلش غیر فرار ذخیره می شوند. اگرچه MCU 8 بیتی است، اما هر دستورالعمل یک یا دو کلمه 16 بیتی طول می کشد. اندازه حافظه برنامه معمولاً در نامگذاری خود دستگاه مشخص می شود.

هیچ برنامه ای برای حافظه برنامه خارج از تراشه وجود ندارد. تمام کدهای اجرا شده توسط هسته AVR باید در فلاش درون تراشه باشند. اما این محدودیت در مورد تراشه های AT94 FPSLIC AVR / تراشه FPGA صدق نمی کند.

حافظه داده داخلی

فضای آدرس داده ها شامل فایل ثبات، ثبات های I / O و SRAM است. برخی از مدل های کوچک همچنین ROM برنامه را در فضای آدرس داده ها نقشه برداری می کنند، اما مدل های بزرگتر این کار را نمی کنند.

ثبات های داخلی

AVR ها دارای 32 رجیستر تک بایت هستند و به عنوان دستگاه های RISC 8 بیتی طبقه بندی می شوند. در انواع tinyAVR و megaAVR در معماری AVR، ثبت نام های کار شده به عنوان اولین آدرس های حافظه (000016–001F16) ترسیم می شوند و به دنبال آن 64 رجیستر I / O (002016–005F16). در دستگاه های دارای لوازم جانبی بسیاری، این رجیسترها 160 رجیستر "I / O" طولانی دارند که فقط به عنوان I / O با نقشه برداری از حافظه (006016–00FF16) قابل دسترسی هستند.

پورت های GPIO

هر درگاه GPIO روی AVR کوچک یا مگا تا هشت پین حرکت می کند و توسط سه رجیستر 8 بیتی کنترل می شود: DDRx، PORTx و PINx که در آن x شناسه پورت است.

  • DDRx: Register Direction Register، پین ها را به عنوان ورودی یا خروجی پیکربندی می کند.
  • PORTx: ثبت درگاه خروجی. مقدار خروجی را روی پین های تنظیم شده به عنوان خروجی تنظیم می کند. مقاومت کشش در پین های تنظیم شده به عنوان ورودی را فعال یا غیرفعال می کند.
  • PINx: ثبت نام ورودی، برای خواندن سیگنال ورودی استفاده می شود. در برخی از دستگاه ها، از این رجیستر می توان برای ضربات پین استفاده کرد: نوشتن یک منطق یک به بیت PINx، بیت مربوط به PORTx را صرف نظر از تنظیم بیت DDRx می کند.

EEPROM

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

با این حال، برخی از دستگاه های خانواده SecureAVR (AT90SC) بسته به پیکربندی، از نقشه برداری ویژه EEPROM به داده یا حافظه برنامه استفاده می کنند. خانواده XMEGA همچنین به EEPROM اجازه می دهد تا در فضای آدرس داده ها نقشه برداری شود.

از آنجا که تعداد نوشتن ها به EEPROM محدود است - Atmel 100،000 چرخه نوشتن را در برگه اطلاعات خود مشخص می کند - یک روال مناسب برای EEPROM که به خوبی طراحی شده است باید محتویات یک آدرس EEPROM را با مطالب مورد نظر مقایسه کند و فقط در صورت نیاز به تغییر، نوشتن را انجام دهد.

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

آیا این نوشته را دوست داشتید؟
skillshare-foundation-of-microcontrollers-masterclass

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


این دوره از ابتدا با تمرکز بر اصول اولیه میکروکنترلر ساخته شده است و موارد اساسی را به شما یاد می دهد که معمولا هنگام یادگیری اصول این دستگاه ها، اغلب...

1399/01/29 2045 بازدید
udemy-raspberry-pi-project-fm-radio-station-no-coding-required

آموزش ساخت رادیو FM با Raspberry Pi


در این آموزش تصویری با ساخت رادیو FM با Raspberry Pi آشنا می شوید. این دوره نحوه کار سخت افزار ها ، نحوه تعامل و نحوه قالب بندیداده ها در Raspberry P...

1397/03/14 3505 بازدید
دانلود-فیلم-آموزش-avr-به-زبان-فارسی

دانلود فیلم آموزش AVR به زبان فارسی


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

1396/05/08 25055 بازدید
دانلود-بهترین-کتاب-های-میکروکنترلر

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


  یک مجموعه بسیار ارزشمند در خصوص آموزش میکروکنترلرها از جمله ARM و 8051  و PIC برای کاربران سایت آماده شده است که ساختار این میکروکنترلرها و بر...

1396/05/08 13209 بازدید
مجموعه-عظیم-کتابهای-الکترونیک-و-میکرو

مجموعه عظیم کتابهای الکترونیک و میکروکنترلر


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

1396/05/08 14485 بازدید
آموزش-مقدماتی-arduino-برد-الکترونیکی-رایگان

آموزش مقدماتی Arduino - برد الکترونیکی رایگان


Arduino یک برد الکترونیکی متن باز مبتنی بر میکروکنترلر  AVR است که به کمک آن می توانید با انواع سنسورها، نمایشگرها و ... کار کنید و به آسانی پروژه های...

1396/05/08 12040 بازدید
فیلم-آموزش-avr-studio

فیلم آموزش AVR Studio


در میان کامپایلرهای میکروکنترلر AVR قدرتمندترین آن Avr Studio می باشد.نرم افزاری که شباهت زیاد به Visual Studio دارد.این کامپایلر همانند ویژوال استدیو...

1396/05/08 22779 بازدید
فیلم-آموزش-codevision-avr

فیلم آموزش Codevision AVR


نرم افزار Codevision Avr یکی از محبوب ترین کامپایلرهای میکروکنترلر AVR است که در ایران طرفداران زیادی دارد.زبان این نرم افزار C می باشد و امکانات فوق ...

1396/05/08 17809 بازدید
آموزش-آشنایی-با-arduino-ایجاد-پروژه-های-تعام

آموزش آشنایی با Arduino - ایجاد پروژه های تعاملی


Arduino یک برد الکترونیکی متن باز مبتنی بر میکروکنترلر AVR است که به کمک آن می توانید با انواع سنسورها، نمایشگرها و … کار کنید و به آسانی پروژه های ...

1396/05/08 4658 بازدید
ساخت-پروژه-های-سخت-افزاری-با-raspberry-pi

ساخت پروژه های سخت افزاری با Raspberry Pi


در این آموزش تصویری با نحوه ساخت پروژه های سخت افزاری با استفاده از برد الکترونیکی Raspberry Pi آشنا می شوید. این دوره آموزشی محصول موسسه Udemy می ...

1396/05/08 4303 بازدید
lynda-up-and-running-with-raspberry-pi

آموزش کار با Raspberry Pi


در این آموزش تصویری با تکنیک های کار با برد الکترونیکی Raspberry Pi آشنا می شوید. برای دانلود آموزش های بیشتر در خصوص این برد می توانید به این صفحه...

1396/05/08 4137 بازدید
lynda-up-and-running-with-arduino

آموزش کار با Arduino


در این آموزش تصویری با تکنیک های کار با برد Arduino آشنا می شوید. چند دوره دیگر در این زمینه در سایت موجود است که با جستجو می توانید به آنها دسترسی...

1396/05/08 3202 بازدید
udemy-introduction-to-internet-of-thingsiot-using-arduino

پیاده سازی فناوری اینترنت اشیاء با استفاده از Arduino


در آموزش های قبلی با نحوه پیاده سازی اینترنت اشیاء در  Raspberry Pi 2 آشنا شدید. در این آموزش تصویری با پیاده سازی فناوری اینترنت اشیاء با استفاده ...

1396/05/08 6894 بازدید
udemy-drones-step-by-step-to-build-and-fly-a-racing-quadcopter

آموزش گام به گام ساخت کوادکوپتر


در این آموزش تصویری با ساخت کوادکوپتر به صورت گام به گام آشنا می شوید. این دوره هدایت هواپیمای بدون سرنشین را شبیه سازی می کند. هدایت این هواپیما با...

1396/05/08 9743 بازدید
udemy-electronic-circuit-board-layout-designing-using-fritzing

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


این دوره نحوه طراحی مدارهای الکترونیکی را با FRITZING آموزش می دهد. این ویدئو به معرفی ابزارها و ویژگی ها ، ساخت PCB ، نحوه خطایابی ، تست و اجرای مد...

1396/05/08 4019 بازدید
udemy-learn-to-create-circuit-boards

آموزش طراحی مدار


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

1396/05/08 3530 بازدید
udemy-circuit-design-analysis-and-spice-modeling-using-multisim

طراحی ، تجزیه و تحلیل و مدل سازی مدار با Multisim


Multisim یکی از جامع ترین نرم افزار های برق به شمار میرود که مانند برنامه Spice دارای امکان طراحی مدار می باشد به این صورت که تمام دستگاه های اندازه...

1396/05/08 2956 بازدید
udemy-circuit-creationanalysis-and-simulation-using-multisim

شبیه سازی و طراحی مدار با استفاده از MULTISIM


این دوره شبیه سازی و نحوه ایجاد مدار را با استفاده از MULTISIM آموزش می دهد. این فیلم آموزشی به معرفی پلت فرم multisim ، کار با ولتاژ و طراحی مدارها...

1396/05/08 2856 بازدید