موضوع مقاله: ریزکنترل‌گر ای‌وی‌آر | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # ریزکنترل‌گر ای‌وی‌آر | مقدمه: این ریزکنترل‌گرهای 8 بیتی از پردازنده RISC مبتنی بر معماری هاروارد استفاده میکنند. | ## بخش 1: ریزکنترل‌گر ای‌وی‌آر | همچنین در این ریزکنترل‌گرها، از حافظه‌های کم مصرف و غیر فرار ای‌ای‌پی‌رام برای ذخیره سازی اطلاعات جانبی استفاده می‌شود. کامپایلرهایی به زبان بیسیک و C که زبان‌هایی پرکاربردی در دنیا محسوب می‌شوند، برای این نوع ریزکنترل‌گرها طراحی شده‌است. برای نمونه کامپایلر بسکام با زبان بیسیک برای برنامه‌نویسی این نوع از ریزکنترل‌گرها می‌تواند به کار رود. FPSLIC (اِی وی آر همراه با مدار مجتمع دیجیتال برنامه‌پذیر) مدار مجتمع دیجیتال برنامه‌پذیر ۵هزار تا ۴۰هزار گِیت حافظه SRAM برای کد برنامه اِی وی آر هسته اِی وی آر تا ۵۰ مگاهرتس AVR 32 بیت در سال ۲۰۰۶ شرکت اتمل میکرو کنترلرهایی را ارائه نمود که اساس معماری آن‌ها ۳۲ بیتی (AVR32) بود، که این سری از میکروکنترلرها شامل یک دستور چند داده(SIMD) و پردازشگر سیگنال دیجیتال(DSP) بود که به تنهایی قادر به پردازش صدا و تصویر می‌باشند. این میکروکنترلرهای ۳۲ بیتی به منظور رقابت با ریزپردازنده‌های بر اساس معماری ARM تولید شد، دستورالعمل‌های این میکرو بر اساس معماری هسته‌های RISC می‌باشد، در حالی که به هیچ وجه دستوارت میکروکنترلرها AVR32 و هیچ‌کدام از میکروهای ARM یکی نمی‌باشد. ساختار و بخش‌های میکروکنترلرهای AVR میکروکنترلرهای خانواده AVR بر اساس معماری ماشین تعدیل شدهٔ هاروارد (Modified Harvard) می‌باشد، جایی که برنامه اصلی میکروکنترلر و اطلاعات ذخیره می‌گردد در فضایی جداگانه و با آدرس‌های جدا از همدیگر می‌باشند اما میکروکنترلرهای آی وی آر قابلیت خواندن اطلاعات را از حافظه برنامه با استفاده از دستوارت مخصوصی دارا می‌باشد. بعضی از شماره‌های میکروکنترلرها دارای یک تعداد پایه خروجی به عنوان BUS برای اتصال موازی حافظه خارجی به میکرو کنترلر می‌باشند. حافظه برنامه پذیر(FLASH) حافظهٔ اطلاعات داخلی (SRAM) ریجیسترهای داخلی جهت برنامه‌ریزی پورت‌های ورودی و خروجی GPIO درگاه‌ها ورودی / خروجی (I/O )به سیگنال‌های دیجیتال بیرونی امکان می‌دهند که با میکرو کنترلر ارتباط پیدا کند. درگاه‌های I/O معمولاً به صورت گروه‌های هشت بیتی دسته‌بندی می‌شوند و به هر گروه نیز نام خاصی داده می‌شود. در برخی دیگر از میکروکنترلرها (از جمله میکروکنترلرهای AVR) درگاه‌های I/O به صورت دو طرفه می‌باشند. هر خط از درگاه I/O این گونه میکرو کنترلرها را می‌توان به صورت ورودی یا خروجی مورد استفاده قرار داد . معمولاً، این گونه خطوط خروجی، به همراه مقاومتهای بالا کش بیرونی به کار برده می‌شوند. | ## بخش 2: ریزکنترل‌گر ای‌وی‌آر | یک پورت از ۸ عدد پین تشکیل شده‌است که هر کدام از این پین‌ها دارای یک مقدار مشخص شده می‌باشد . مثلاً پورت B در میکرو از ۸ پایه تشکیل شده‌است که برای هر پایه نامی مشخص شده‌است. مثلاً:اگر شما به همه ۸ تا پین‌های پورت، صفر منطقی (صفر ولت ) وصل نمایید مقدار خوانده شده میکرو از این پورت ۰ است. به این صورت که میکرو ابتدا مقدار پایه PB0 را خوانده و در عددی که برای ان مشخص شده ضرب می‌کند که طبق جدول بالا این عدد مقدارش ۱ می‌باشد در نتیجه مقدار خوانده شده از ورودی که صفر است ( به دلیل وصل کردن این پایه به صفر ولت ) را در ۱ ضرب می‌کند و جواب صفر می‌شود. برای بقیه پایه نیز این عمل را انجام می دهد و سپس در مرحله اخر تمامی جواب‌ها را با هم جمع می‌کند. حافظه EEPROM سرعت پردازنده میکروکنترلر MUC SPEED سرعت پردازنده میکروکنترلرها به صورت معمول بین ۰تا۱۶ مگاهرتز می‌باشد همچنین در بعضی قابلیت افزایش تا ۲۰ مگاهرتز و در بعضی خانواده‌ها تا ۳۲ مگاهرتز را دارا می‌باشد. تا هنگامی که پایه های SPI ریزکنترل‌گر به چیزی که اختلال وارد کند وصل نشده، ریزکنترل‌گر AVR می‌تواند سرجای خود روی برد مدار چاپی باقی بماند. رابط برنامه‌ریزی و اشکال زدایی میکرو کنترلرها که یکی از خصوصیات میکروهای AVR برای برنامه‌ریزی به وسیله ابزارهای خارجی و اشکال زدایی و عیب یابی بر روی برد می‌باشد این واحد با بخش JTAG متفاوت می باشد و برای دستگاه های خانواده XMEGA می باشد. یک تراشه 8 پین بسیاری از ترکیبات منحصر به فرد سیگنال را برای قرار دادن AVR در حالت برنامه نویسی باقی نمی گذارد. با این حال، AVR فقط در زمان برنامه نویسی و هرگز در زمان کار عادی نباید در ولتاژ ۱۲ مشاهده شود. حالت ولتاژ بالا همچنین در برخی از دستگاه هایی که پایه تنظیم مجدد توسط فیوز غیرفعال شده است، قابل استفاده است. از این روش در مواقع محدود شدن دسترسی تراشه از spi و jtag کاربر مجبور به استفاده از این روش برای برنامه ریزی ریز پردازشگر می شود.بر خلاف سند spi که برای برنامه ریزی در کل به ۶ رشته کابل نیاز است ؛ در این روش تقریبا تمام پایه های تراشه مورد نظر به کار گرفته میشود. | ## بخش 3: ریزکنترل‌گر ای‌وی‌آر | اتمل استودیو (با نام کنونی میکروچیپ استودیو) یک پلتفرم توسعه یکپارچه(IDP) می باشد که با استفاده از آن می توانید برنامه میکروکنترلرهای AVR و ARM را عیب یابی یا اشکال زدایی کرده و توسعه دهید. علاوه بر میکروکنترلرهای AVR این کامپایلر توانایی برنامه ریزی میکروکنترلرهای ARM را نیز داراست شرکت میکروچیپ این نرم افزار از کامپایلر و زنجیره ابزار AVR-GCC استفاده می کند. سازندگان میکروکنترلرها معمولاً مثال هایی که در کد منبع هایشان دارند به این زبان است. سایت سازنده تفاوت بین این نسخه ها را به طور کامل توضیح داده است این نرم افزار از کامپایلر و زنجیره ابزار AVR-GCC استفاده می کند. WinAVR یکی از قدرتمندترین محیط های توسعه برای میکروکنترلرهای AVR می باشد و طرفداران بسیاری را در دنیا دارد وکاملا رایگان است. در حالت کلی می توان گفت که بیشتر برنامه نویسان حرفه ایی میکروکنترلرهای AVR از این کامپایلر استفاده می کنند. این کامپایلر به دلیل اینکه کد HEX کمتری تولید می کند در آخر برنامه بهینه و سریع تری را نتیجه می دهد آردوینو Arduino IDE نرم افزار منبع باز آردوینو، کدنویسی و بارگذاری کد بر روی مدار را آسان می سازد. همچنین نرم افزار آردوینو با تمامی بردهای آردوینو سازگاری داشته و می توان از این نرم افزار آردوینو بر روی تمامی بردهای آردوینو استفاده کرد. این محیط برنامه نویسی با استفاده از زبان جاوا و بر پایه پراسسینگ، avr-gcc و سایر نرم افزارهای منبع باز تولید شده است اصول برنامه نویسی در نرم افزار آردوینو، تا حد زیادی مشابه برنامه نویسی به زبان C و ++C است؛ اگرچه در برخی از دستورها، فرمان ها، تابع ها، کتابخانه ها و غیره تغییراتی مختص آردوینو ایجاد شده است. روند کلی کار با نرم افزار آردوینو به این صورت است که ابتدا دستورها در پنجره ویرایش متن نوشته می شوند. قبل از شروع بارگذاری، لازم است بورد آردوینو از طریق درگاه USB یا درگاه سریال، به رایانه متصل شده باشد.. | ## جمع‌بندی | نسخه تجاری این کامپایلر قابلیت این را دارا می باشد که تا ۱۲۸ کیلو بایت را کامپایل کند.