به نام خدا

آردوینو Mega 2560

 آردوینو Mega 2560 R3 نمای مقابل  آردوینو Mega2560 R3 نمای پشت

 آردوینو Mega 2560 نمای مقابل  آردوینو Mega 2560 نمای پشت

 

معرفی

برد آردوینو Mega2560 یک برد میکروکنترلر بر پایه ATmega2560 می باشد(datasheet). این برد مجموعاً 54 پین ورودی/خروجی دیجیتال(که 15 تای آن می تواند به عنوان خروجی PWM استفاده گردد)، 16 ورودی آنالوگ، 4 پورت UART (پورت های سریال سخت افزاری)، یک نوسان ساز کریستال 16 مگاهرتز، یک پورت USB، یک پاورجک، یکICSP Header و یک دکمه ریست دارد. برد Mega 2560 شامل کلیه امکانات مورد نیاز جهت بکارگیری میکروکنترلر موجود برروی برد می باشد. برای شروع، تنها با یک کـابل USB، به سادگی برد را به کامپیوتـرتان وصل کنید، و یا آن را با یـک آداپـتور AC-to-DC و یا باتری راه اندازی نمایید.

برد Mega 2560 با اکثر شیلدهایی که برای آردوینو مدل Duemilanove یا Diecimila طراحی شده اند، همخوانی دارد. برد Mega2560 جایگزین Arduino Mega می باشد.

برد Mega2560 با بردهای پیشین متفاوت است؛ زیرا در آن از تراشه FTDI USB-to-serialاستفاده نشده است و به جای آن از یک ATmega16U2 ( یا ATmega8U2 در بردهای نسخه R1 و R2) که به عنوان مبدل USB-to-serialبرنامه ریزی شده، استفاده گردیده است.
نسخه R2 برد Mega2560 دارای یک مقاومت جهت پولینگ اتصال8U2 HWB میکروکنترلر به زمین می باشد که تغییر حالت به DFU را تسهیل می بخشد.
نسخه R3 این برد، ویژگی های جدیدی دارد که در ادامه آمده است:

  • 1.0 pinout: پین های SCL و SDA در نزدیکی پین AREF و همچنین پین های جدید دیگری در نزدیکی پین Reset اضافه شده اند. یکی از پین های جدید IOREF می باشد که اجازه می دهد شیلدها، خود را با ولتاژ خروجی برد تطبیق دهند. در آینده، شیلدها قادر خواهند بود خود را با بردهایی که از AVR  با ولتاژ 5 ولتی استفاده می کنند و همچنین بردهای آردوینو Due که از ولتاژ 3/3 ولت استفاده می کنند، تطبیق دهند.
  • مدار ریست قوی تر
  • ATmega16U2 جایگزین 8U2 شده است.

طرح کلی (شماتیک)، طرح مرجع، و نقشه پین

EAGLE files: arduino-mega2560_R3-reference-design.zip

Schematic: arduino-mega2560_R3-schemtic.pdf

Pinmapping: Pinmap2560 page

خلاصه

میکروکنترلر ATmega2560
ولتاژ عملیاتی 5 ولت
ولتاژ ورودی (پیشنهادی) 7-12 ولت
ولتاژ ورودی (محدوده) 6-20 ولت
پین های دیجیتال ورودی/خروجی 54 (15تای آن به عنوان خروجی PWM استفاده می شود.)
پین های آنالوگ ورودی 16
جریان DC هر پین ورودی/خروجی 40 میلی آمپر
جریان DC پین 3.3 ولتی 50 میلی آمپر
حافظه فلش 256 کیلوبایت (8 کیلوبایت  از آن توسط BootLoader استفاده می شود.)
SRAM 8 کیلوبایت
EEPROM 4 کیلوبایت
سرعت ساعت 16 مگاهرتز

Power

ولتاژ مورد نیاز آردوینو مدل Mega می تواند از طریق یک اتصال USB و یا یک منبع تغذیه خارجی همچون باتری یا آداپتور AC-to-DC تأمین گردد. منبع تغذیه به صورت خودکار انتخاب می شود.

آداپتور  (که سوکت آن از نوع center-positive با قطر 2.1 میلی متری باشد) می تواند به پاورجک موجود برروی برد متصل گردد و سیمهای باتری می توانند مستقیماً وارد پین های GND و Vin شوند.

برد می تواند با منبع تغذیه خارجی 6 تا 20 ولت کار کند. اگر ولتاژ منبع تغذیه پایین تر از 7 ولت باشد، روی ولتاژ پین ها نیز اثر خواهد گذاشت و ممکن است ولتاژ خروجی آنها کمتر از 5 ولت شود، و باعث نوسان گردد. ولتاژ بیش از 12 ولت نیز، می تواند موجب افزایش دمای رگولاتور و در نتیجه آسیب برد گردد. ولتاژ پیشنهادی مناسب بین 7 تا 12 ولت می باشد.

پین های مربوط به Power (منبع تغذیه) به شرح زیر است:

  • VIN: این پین، پین ورودی ولتاژ آردوینو است که در مواقع استفاده از منبع تغذیه خارجی (به جای منبع تغذیه تنظیم شده یا اتصال USB 5 ولتی) از آن استفاده می شود و چنانچه برد از طریق پاورجک به منبع تغذیه وصل شده باشد، می توانید از طریق این پین (به عنوان خروجی) به ولتاژ منبع تغذیه دسترسی داشته باشید.

  • 5V: این پین یک ولتاژ تنظیم شده 5 ولت را از طریق رگولاتور موجود بر روی برد فراهم می کند. برد می تواند از طریق پاورجک (12-7 ولت) DC، پورت(5 ولت) USB و یا پین VIN برد (12-7 ولت)، تغذیه گردد. ولتاژ پین های 5 ولت و 3/3 ولت از رگولاتور عبور می نماید و استفاده از ولتاژ این پین ها ممکن است باعث صدمه دیدن برد شود. از همین رو استفاده از این پین ها توصیه نمی گردد.

  • 3.3V :یک ولتاژ 3/3 ولتی، بوسیله ی رگولاتور روی برد فراهم می گردد که حداکثر جریان آن 50 میلی آمپر می باشد.

  • GND: پین های زمین.

  • IOREF:این پین میزان ولتاژ مرجعی را که میکروکنترلر با آن کار می کند، مشخص می نماید. یک شیلد که به درستی تنظیم شده باشد، می تواند مقدار ولتاژ را از پین IOREF خوانده و منبع تغذیه مناسب خود را انتخاب نماید و یا اینکه مبدل های ولتاژ را برای کار کردن با ولتاژهای 5 ولت یا 3/3 ولت، برروی خروجی ها فعال نماید.

حافظه

ATmega2560، جهت ذخیره کد، حاوی کیلوبایت256 حافظه فلش می باشد (که 8 کیلوبایت از آن، جهت BootLoader استفاده می گردد). 8 کیلوبایت مربوط به حافظه SRAM و4 کیلوبایت نیز مربوط به حافظه EEPROM می باشد (که با توابع کتابخانه ای EEPROM قابل خواندن یا نوشتن خواهد بود).

پین های ورودی و خروجی

هر یک از 54 پین دیجیتال موجود بر روی برد Arduino Mega2560 با استفاده از توابع pinMode()، digitalWrite() و digitalRead() ، می تواند به عنوان ورودی یا خروجی مورد استفاده قرار گیرد. ولتاژ پین ها 5 ولت بوده و ظرفیت جریان هر پین حداکثر 40 میلی آمپر خواهد بود. همچنین هر یک از این پین ها دارای یک مقاومت داخلی (50-20 کیلو اهم) جهت Pull-Up می باشد (که به صورت پیش فرض غیرفعال است). به علاوه، برخی از این پین ها دارای عملکردهای منحصر به فردی هستند که شرح آن در ذیل آمده است:

  • Serial - (RX) 0 و (TX) 1; Serial 1 - (RX) 19 و (TX) 18; Serial 2 - (RX) 17 و (TX) 16; Serial 3 - (RX) 15 - (TX) 14; : پین RX برای دریافت و TX جهت انتقال اطلاعات به صورت سریال و با پروتکل TTL استفاده می شود. این پین ها به پین های مرتبط USB-to-TTL ATmega16U2 متصل هستند. .

  • External interrupts (وقفه های خارجی) - پین 2 (وقفه 0)، 3 (وقفه 1)، 18 (وقفه 5)، 19 (وقفه 4)، 20 (وقفه 3)، و 21 (وقفه 2): این پین ها می توانند به صورتی تنظیم شوند که یک وقفه را را براساس اندکی افزایش یا کاهش لبه، و یا هر نوع تغییر در مقدار، ایجاد نمایند. برای جزئیات بیشتر، تابع attachInterrupt() را مشاهده نمایید.

  • PWM - پین های 2 تا 13 و 44 تا 46 : امکان دسترسی به یک خروجی PWM 8 بیتی را با استفاده از تابع analogWrite() فراهم می کنند.

  • SPI-50 (MISO)، 51 (MOSI)، 52 (SCK) ، 53 (SS): با استفاده از توابع کتابخانه ای SPI این پین ها می توانند یک ارتباط SPI ایجاد نمایند. همچنین پین های SPI از طریق ICSP Header نیز قابل دسترسی هستند که به صورت فیزیکی با بردهای Uno، Duemilanove، و Dieimila همخوانی دارد.

  • LED- 13: یک LED آماده، به پین دیجیتال 13 متصل شده است. هنگامی که پین در حالت HIGH قرار دارد، LED روشن و زمانی که پین در حالت LOW قرار دارد، خاموش می شود.

  • TWI - 20 (SDA) - 21 (SCL): این پین ها، امکان ایجاد یک ارتباط TWI را با استفاده از توابع کتابخانه ای Wire مقدور می سازند. توجه کنید که محل قرارگیری این پین ها با محل پین های TWI در برد های Duemilanove یا Diecimila یکسان نیست.

برد Mega2560 16 ورودی آنالوگ دارد که میزان تفکیک پذیری هر یک از آنها 10 بیت (یعنی 1024 مقدار مختلف) می باشد. این پین ها به طور پیش فرض می توانند ولتاژی بین ولتاژ پایه (Ground) تا حداکثر 5 ولت را اندازه گیری نمایند. اگر چه با استفاده از پین AREF و تابع analogRefrence()  می توان حد بالای این تفکیک پذیری را تغییر داد .

سایر پین ها:

  • AREF:ولتاژ مرجع برای ورودی های آنالوگ، از طریق این پین و با استفاده از تابع analogReference() تأمین می گردد.

  • Reset:وضعیت لاین مرتبط را برای ریست میکروکنترلر در حالت Low قرار می دهد، معمولاً زمانی از این پین استفاده می شود که بخواهید بر روی شیلدتان دکمه ریست قرار دهید. زیرا استفاده از شیلدها از دسترسی به دکمه ریست موجود بر روی برد آردوینو جلوگیری می کند.

ارتباطات

برد Arduino Mega2560 شامل امکاناتی می باشد که ارتباط با کامپیوتر، سایر بردهای آردوینو، و یا دیگر میکروکنترلرها را مقدور می سازد. این برد، چهار سخت افزار UART را برای ارتباط سریال (5ولت) TTL فراهم می کند.ATmega16U2  ( یا ATmega8U2 در بردهای نسخه 1 و 2) موجود بر روی برد، یکی از این ارتباطات سریال را تبدیل به یک ارتباط USB نموده و در نهایت یک پورت سریال مجازی(COM) روی کامپیوتر شما ایجاد می کند. سیستمهای ویندوزی به یک فایل با پسوند .inf احتیاج خواهند داشت، اما سیستم های Linux و OSX، به طور خودکار، برد را به عنوان یک پورت COM شناسایی می کنند. نرم افزار آردوینو شامل یک بخش کنترل پورت سریال است که به شما اجازه می دهد داده های متنی را به آردوینو ارسال، یا از آن دریافت نمایید. چراغهای RX و TX موجود بر روی برد در زمان ارسال و دریافت اطلاعات از طریق تراشه ATmega8U2/ATmega16U2 و یا اتصال USB به کامپیوتر (به غیر از ارتباط سریالی پین های 0 و 1) در حالت چشمک زن قرار می گیرد.

یک تابع کتابخانه ای SoftwareSerial (برای ایجاد پورت سریال نرم افزاری) امکان ارتباط سریال را برروی هریک از پین های دیجیتال فراهم می کند.

ATmega2560 ارتباط SPI و TWI را نیز مقدور می سازد. نرم افزار آردوینو شامل یک کتابخانه Wire می باشد تا کار با درگاه TWI را آسان کند. جهت کسب اطلاعات بیشتر، به مستندات مراجعه کنید. برای ارتباط SPI از کتابخانه SPI استفاده نمایید.

برنامه نویسی

برد آردوینو Mega با نرم افزار آردوینو قابل برنامه نویسی است (دانلود). برای کسب اطلاعات بیشتر، راهنمای مراجع و منابع آموزشی را مشاهده کنید.

ATmega2560 ATMega2560 موجود بر روی برد Arduino Mega دارای یک bootloader از پیش آماده می باشد که به شما این امکان را می دهد تا بدون نیاز به پروگرامر جانبی، کدهای جدید خود را آپلود و اجرا نمایید. این ارتباط بر اساس پروتکل STK500 بر قرار می شود (راهنمای مرجع، C header files ).

همچنین شما می توانید BootLoader را نادیده گرفته و مستقیماً از طریق ICSP header (مخفف In-Circuit Serial Programming) برد را برنامه ریزی نمایید. برای مشاهده ی دستورالعمل ها اینجا کلیک کنید.

سورس کد firmware مربوط به پردازشگر ATmega16U2 (یا 8U2 در بردهای نسخه ی Rev1 و Rev2) موجود می باشد. همچنین ATmega16U2/8U2 با یک DFU bootloader بارگزاری شده است، که می تواند به شیوه های زیر فعال شود:

  • نسخه Rev1:جامپر مربوطه را در پشت برد (نزدیک نقشه چایی ایتالیا) متصل نمایید و سپس ATmega8U2 را ریست نمایید.
  • نسخه Rev2 به بعد: برد Mega2560دارای یک مقاومت جهت پولینگ اتصال HWB میکروکنترلر ATmega8U2/16U2 به زمین می باشد که تغییر حالت به DFU را آسان تر می کند. همچنین شما می توانید از نرم افزار FLIP شرکت Atmel (سیستم عامل ویندوز) یا یک پروگرامر DFU (سیستم عامل MaC OS X و لینوکس) و یا یک پروگرامر جانبی از طریق پورت جهت بارگزاریFirmware جدید استفاده نمایید (تا DFU bootloader بازنویسی شود). برای اطلاعات بیشتر بخش آموزش ها را مشاهده نمایید.

ریست خودکار (نرم افزاری)

برد آردوینو Mega2560 به صورتی طراحی شده است که در صورت اتصال به کامپیوتر، قبل از آپلود کد جدید، امکان ریست بوسیله ی نرم افزار آردوینو را به جای فشار دکمه ریست داشته باشید. یکی از خطوط سخت افزاری کنترل جریان (DTR) در میکروکنترلر ATmega8U2 از طریق یک خازن 100 نانوفارادی، به پایه ریست ATmega2560 متصل شده است. زمانی که این خط آزاد می شود (در حالت LOW قرار می گیرد) پایه ریست در وضعیتی قرار می گیرد که باعث ریست پردازنده می شود. با استفاده از این خازن نرم افزار آردوینو به شما اجازه می دهد که به راحتی و با فشردن دکمه Uploadدر محیط نرم افزاری آردوینو، کد خود را آپلود نمایید. بدین معنی که در وضعیت Low قرار گرفتن DTR همزمان با شروع آپلود، هماهنگی خوبی برای داشتن Time out کوتاهتر توسط BootLoader ایجاد می نماید.

این راه اندازی ملزومات دیگری نیز دارد، زمانی که برد Mega2560 به کامپیوتری که سیستم عامل آن Mac OS X یا لینوکس است، متصل باشد در هر بار ارتباط نرم افزار با برد (از طریق کابل USB) عمل ریست اتفاق می افتد. بعد از گذشت نیم ثانیه یا بیشتر BootLoader برد Mega2560 در حال اجرا می باشد. از آنجا که Mega2560 طوری برنامه نویسی شده است که داده های ناقص (به عنوان مثال داده ای در حاشیه آپلود کد جدید) را نادیده بگیرد، چند بایت اول هر داده ای را که بعد از ایجاد ارتباط به برد ارسال می گردد، جدا می نماید. چناچه برنامه ای بر روی برد در حال اجرا باشد، در زمان شروع برنامه می تواند تنظیمات اولیه و یا سایر داده ها را دریافت کند. توجه داشته باشید نرم افزاری که قرار است با برد آردوینو ارتباط برقرار کند، می بایست حداقل بعد از یک ثانیه تأخیر پس از برقراری ارتباط، نسبت به ارسال اطلاعات اقدام نماید.

برد Mega2560 شامل یک مسیر می باشد که با قطع آن می توانید ریست خودکار را غیر فعال نمایید. این دو نقطه در طرفین این مسیر می توانند دوباره با لحیم کاری به یکدیگر متصل شوند، تا مجدداً ریست خودکار فعال گردد. این قسمت با برچسب « RESET-EN» مشخص شده است. همچنین شما می توانید با اتصال یک مقاومت 110 اهم از پین 5 ولت به پین ریست، سیستم ریست خودکار را غیرفعال نمایید. برای کسب اطلاعات بیشتر به این موضوع در انجمن مراجعه نمایید.

محافظت پورت USB از جریان بیش از حد

برد آردوینو Mega2560 دارای یک پلی فیوز قابل ریست جهت محافظت از پورت USB کامپیوتر شما در مقابل افزایش یا کاهش جریان می باشد. علاوه بر این بیشتر کامپیوترها سیستم محافظت داخلی خودشان را دارند و این فیوز صرفاً یک لایه حفاظتی مجزا را فراهم می نماید. چناچه بیش از 500 میلی آمپر جریان از پورت USB گرفته شود، فیوز به صورت خودکار تا زمان متعادل شدن جریان ارتباط را قطع می نماید.

مشخصه های فیزیکی و سازگاری شیلدها

حداکثر طول و عرض PCB برد Mega2560، به ترتیب 10/16 و 5/33 سانتی متر است که البته این ابعاد با احتساب پورت USB و پاور جک، افزایش می یابد. سه سوراخ موجود بر روی برد به شما اجازه می دهد که برد را برروی یک سطح یا جعبه پیچ نمایید. توجه کنید که فاصله بین پین های دیجیتال 7 و 8 برابر 160 میلی متر (0/16 اینچ) و فاصله بین سایر پین ها 100میلی متر می باشد.

برد Mega2560 به گونه ای طراحی شده است که با اکثر شیلدهای طراحی شده برای برد های Uno، Diecimila یا Duemilanove سازگار باشد. پین های دیجیتال شماره 0 تا 13 ( و پین های GND و AREF مجاور)، پین های ورودی آنالوگ شماره 0 تا 5، هدر منبع تغذیه، وICSP Header ، همگی در موقعیت مساوی قرار دارند. به علاوه، UART (پورت سریال) اصلی، روی همان پین هایی (0 و 1) قرار گرفته است که به عنوان وقفه خارجی 0 و 1 (به ترتیب پین های 2 و 3) استفاده می شوند. SPI به واسطه ی ICSP Header در هر دو برد Mega2560 و Duemilanove/Dieimila موجود است. لطفا به خاطر داشته باشید که پین I2C که روی Mega (شماره 20 و 21) می باشد، منطبق با پین های بردهایDuemilanove/Diecimilia (ورودی های آنالوگ 4 و 5) نیست.