概要
Arduino Mega 2560は、ATmega2560をベースにしたマイクロコントローラボードです。
54本のデジタル入出力端子(うち15本はPWM出力として使用可能)、16本のアナログ入力端子、4個のUART(ハードウェアシリアルポート)、16MHz水晶発振器、USB接続端子、電源ジャック、ICSPヘッダー、リセットボタンを備えています。
マイコンをサポートするために必要なものがすべて含まれており、USBケーブルでコンピュータに接続したり、AC-DCアダプタやバッテリーで電源を供給するだけですぐに使用できます。
Mega 2560ボードは、Uno用に設計されたほとんどのシールドや、以前のボードであるDuemilanoveやDiecimilaと互換性があります。
Mega 2560は、Arduino Megaの後継機種としてアップデートされたものです。
関連ボード
- Uno Rev 3
- Arduino Nano
- Arduino DUE (ヘッダーなし)
技術スペック
MICROCONTROLLER | ATmega2560 |
OPERATING VOLTAGE | 5V |
INPUT VOLTAGE (RECOMMENDED) | 7-12V |
INPUT VOLTAGE (LIMIT) | 6-20V |
DIGITAL I/O PINS | 54 (of which 15 provide PWM output) |
ANALOG INPUT PINS | 16 |
DC CURRENT PER I/O PIN | 20 mA |
DC CURRENT FOR 3.3V PIN | 50 mA |
FLASH MEMORY | 256 KB of which 8 KB used by bootloader |
SRAM | 8 KB |
EEPROM | 4 KB |
CLOCK SPEED | 16 MHz |
LED_BUILTIN | 13 |
LENGTH | 101.52 mm |
WIDTH | 53.3 mm |
WEIGHT | 37 g |
▶電子回路[EAGLE FILE ZIP]
▶電子回路[PDF]
▶ボード図面[.DXF]
Pinout Diagram
完全なピン配置図をPDFでダウンロードできます。
プログラミング
Mega 2560ボードは、Arduinoソフトウェア(IDE)を使ってプログラミングすることができます。詳しくは、リファレンスやチュートリアルをご覧ください。
Mega 2560に搭載されているATmega2560には、ブートローダーがあらかじめプログラムされており、外部のハードウェア・プログラマーを使用せずに新しいソースコードをパソコンからUSB経由で簡単にアップロードすることができます。
USB経由でアップロードする場合、オリジナルのSTK500プロトコルを使用して通信します。
もちろんブートローダーを使用せず、Arduino ISPなどを使ってICSP(In-Circuit Serial Programming)ヘッダーからマイコンをネイティブコードプログラムすることもできます。
USB通信に使用するATmega16U2(rev1およびrev2ボードでは8U2)のファームウェアのソースコードはArduinoリポジトリで公開されています。
ATmega16U2/8U2にはDFUブートローダが搭載されており、以下の方法で起動することができます。
- Rev1ボード:ボード裏面のはんだジャンパー(イタリア地図の近く)を接続してから、8U2をリセットする。
- Rev2以降のボード:8U2/16U2のHWBラインをグランドに引き込む抵抗があり、DFUモードにするのが簡単です。その後、AtmelのFLIPソフトウェア(Windows)またはDFUプログラマ(Mac OS XおよびLinux)を使用して新しいファームウェアをロードできます。または外部プログラマでISPヘッダを使用することもできます(DFUブートローダを上書きします)。
注意事項
Mega 2560には、コンピュータのUSBポートを短絡や過電流から保護するリセット可能なポリヒューズが搭載されています。ほとんどのコンピュータは独自の内部保護機能を備えていますが、ヒューズはさらなる保護層を提供します。USBポートに500mA以上の電流が流れた場合、ショートや過負荷が解消されるまでヒューズが自動的に接続を遮断します。
電源について
Mega 2560の電源は、USB接続または外部電源から取ることができます。電源は自動的に選択されます。
外部電源(USB以外)には、AC-DCアダプター(ウォールワート)またはバッテリーを使用します。アダプターは、2.1mmのセンターポジティブプラグをボードの電源ジャックに差し込んで接続します。電池のリード線は、POWERコネクタのGNDおよびVinピンヘッダに挿入できます。
本ボードは、6~20Vの外部電源で動作します。ただし、7V未満の場合は、5V端子の供給電圧が5V未満となり、基板が不安定になることがあります。また、12V以上を使用すると電圧レギュレータが過熱して基板が破損することがあります。推奨範囲は7~12Vです。
電源端子
Vin | 外部電源を使用しているときのボードへの入力電圧です(USB接続やその他の安定した電源からの5ボルトではありません)。このピンから電圧を供給することができます。また、電源ジャックから電圧を供給する場合は、この端子に接続します。 |
5V | この端子は、基板上のレギュレータから、レギュレートされた5Vを出力します。 ボードの電源は、DC電源ジャック(7 – 12V)、USBコネクタ(5V)、またはボードのVINピン(7 – 12V)のいずれかから供給することができます。5Vや3.3Vの端子から電圧を供給すると、レギュレータがバイパスされるため、ボードが破損する恐れがあるためお勧めできません。 |
3V3 | オンボードのレギュレータによって生成される3.3Vの電源。 最大消費電流は50mAです |
GND | グラウンド端子 |
IOREF | ボード上のこのピンは、マイクロコントローラが動作するための電圧基準を提供します。適切に構成されたシールドは、IOREFピンの電圧を読み取って適切な電源を選択したり、出力の電圧変換器を有効にして5Vまたは3.3Vで動作させることができます。 |
メモリ
ATmega2560は、コードを格納するための256KBのフラッシュメモリ(うち8KBはブートローダに使用)と8KBのSRAM、4KBのEEPROM(EEPROMライブラリで読み書き可能)を備えています。
入力と出力
ArduinoのピンとAtmega2560のポートのマッピングをご覧ください。
メガの54本のデジタルピンはそれぞれ、pinMode()、digitalWrite()、digitalRead()関数を使って、入力または出力として使用できます。
これらは5ボルトで動作します。
各ピンは推奨動作条件として20mAを供給または受信することができ、20~50kΩの内部プルアップ抵抗(デフォルトでは切断されている)を備えています。
マイクロコントローラーの損傷を避けるためには、最大40mAを超えないように使います。
Serial | 0(RX), 1(TX)ピン0と1は、ATmega16U2 USB-TTLシリアルチップの対応するピンにも接続されています。 |
Serial1 | 19(RX), 18(TX) |
Serial2 | 7(RX), 16(TX) |
Serial3 | 15(RX), 14(TX) |
外部割込み | 2(INT0),3(INT1),18(INT5),19(INT4),20(INT3),21(INT2) これらのピンは、ローレベル、立ち上がりまたは立ち下がりエッジ、またはレベルの変化で割り込みをトリガするように設定できます。詳細は,attachInterrupt()関数を参照してください。 |
PWM | 2~13および44~46 analogWrite()関数で8ビットのPWM出力 |
SPI | 50 (miso), 51 (mosi), 52 (sck), 53 (ss) SPIライブラリを用いたSPI通信に対応しています。SPIピンはICSPヘッダーにも分けられており、Arduino /Genuino Unoや、古いDuemilanoveやDiecimilaのArduinoボードと物理的に互換性があります。 |
LED | 13 LEDが内蔵されています。ピンがHIGH値の時にはLEDが点灯し、ピンがLOWの時には消灯します。 |
TWI | 20(SDA)、21(SCL) Wireライブラリを使用したTWI通信をサポートします。これらのピンは、古いDuemilanoveやDiecimila ArduinoボードのTWIピンと同じ場所にないことに注意してください。 |
Analog In put | 16個のアナログ入力があり、それぞれが10ビットの分解能(つまり1024通りの値)を持っています。デフォルトでは、グランドから5ボルトまでを測定しますが、AREFピンとanalogReference()関数を使用して、範囲の上限を変更することができます。 |
通信機能
Mega 2560ボードには、コンピュータ、他のボード、または他のマイクロコントローラと通信するための多くの機能があります。
ATmega2560はTTL (5V) シリアル通信用に4つのハードウェアUARTを提供しています。ボード上のATmega16U2(リビジョン1およびリビジョン2のボードではATmega8U2)は、これらのうちの1つをUSB経由でチャネルし、コンピュータ上のソフトウェアに仮想COMポートを提供します(Windowsマシンでは.infファイルが必要ですが、OSXおよびLinuxマシンではボードをCOMポートとして自動的に認識します)。
Arduinoソフトウェア(IDE)にはシリアルモニターが搭載されており、簡単なテキストデータをボードとの間で送受信することができます。ATmega8U2/ATmega16U2チップとコンピュータへのUSB接続を介してデータが送信されると、ボード上のRXとTXのLEDが点滅します(ただし、ピン0と1のシリアル通信はできません)。
SoftwareSerialライブラリを使用すると、Mega 2560のデジタルピンのいずれかでシリアル通信を行うことができます。
また、Mega 2560はTWIおよびSPI通信にも対応しています。Arduinoソフトウェア(IDE)には、TWIバスの使用を簡略化するWireライブラリが含まれていますが、詳細についてはマニュアルを参照してください。SPI通信については、SPIライブラリを使用します。
物理的特性とシールドの互換性
Mega 2560 PCBの長さと幅はそれぞれ4インチと2.1インチで、USBコネクターと電源ジャックは前者の寸法よりも長くなっています。3つのネジ穴により、基板を表面やケースに固定することができます。なお、デジタルピン7と8の間隔は160ミル(0.16インチ)で、他のピンの間隔である100ミルの偶数倍ではありません。
Mega 2560は、Uno用に設計されたほとんどのシールドや、旧式のDiecimilaまたはDuemilanove Arduinoボードと互換性があるように設計されています。
デジタルピン0~13(および隣接するAREFおよびGNDピン)、アナログ入力0~5、電源ヘッダー、ICSPヘッダーは、すべて同等の位置に配置されています。
さらに、メインのUART(シリアルポート)も同じピン(0と1)に配置されており、外部割込みの0と1(それぞれ2と3)も同じピンに配置されています。SPIは、Mega 2560とDuemilanove / Diecimilaボードの両方で、ICSPヘッダーから利用できます。I2Cは、Mega 2560ボードの同じピン(20と21)とDuemilanove / Diecimilaボードの同じピン(アナログ入力4と5)に配置されていないことに注意してください。
ソフトウェアによる自動リセット
アップロードの前に物理的にリセットボタンを押す必要はありませんが、Mega2560は接続されたコンピュータ上で動作するソフトウェアによってリセットできるように設計されています。
ATmega8U2のハードウェアフローコントロールライン(DTR)の1つは、100ナノファラッドのコンデンサを介してATmega2560のリセットラインに接続されています。このラインがアサートされる(ローになる)と、リセットラインはチップをリセットするのに十分な時間落ちます。
Arduinoソフトウェア(IDE)はこの機能を利用して、Arduino環境でアップロードボタンを押すだけでコードをアップロードすることができます。つまり、DTRの低下とアップロードの開始をうまく調整できるので、ブートローダのタイムアウトを短くすることができるのです。
この設定には他にも意味があります。
Mega 2560ボードをMac OS XまたはLinuxのコンピュータに接続すると、ソフトウェアから(USB経由で)接続されるたびにリセットされます。
その後の約半秒間、ATMega2560上でブートローダが動作しています。ブートローダは不正なデータ(新しいコードのアップロード以外のもの)を無視するようにプログラムされていますが、接続が開始された後にボードに送信される最初の数バイトのデータを傍受します。
ボード上で実行されているスケッチが最初の起動時にワンタイム・コンフィギュレーションやその他のデータを受信する場合、通信相手のソフトウェアが接続を開始した後、このデータを送信する前に1秒待つことを確認してください。
ATMega2560のボードには、自動リセットを無効にするためのトレースがあります。
トレースの両側のパッドをはんだ付けすると、再び有効になります。これは “RESET-EN “と表示されています。また、5Vから110Ωの抵抗をリセットラインに接続することで、自動リセットを無効にすることができるかもしれません。
リビジョン
ATMega 2560は、過去のデザインで使用されていたFTDI USB-to-serialドライバチップを使用していません。代わりに、USB-シリアルコンバーターとしてプログラムされたATmega16U2(リビジョン1およびリビジョン2のArduinoボードではATmega8U2)が搭載されています。
ATMega2560ボードのリビジョン2では、8U2のHWBラインをグランドに引き込む抵抗があり、DFUモードにするのが容易になっています。
Arduinoボードのリビジョン3と現行のGenuino Mega 2560には、以下の改良された機能があります。
- 1.0のピンアウト。SDAおよびSCLピン(AREFピンの近く)、およびRESETピンの近くに配置された他の2つの新しいピン、IOREFにより、シールドはボードから供給される電圧に適応することができます。将来的には、シールドは、5Vで動作するAVRを使用するボードと、3.3Vで動作するATSAM3X8Eを使用するボードの両方と互換性があります。2番目のピンは未接続で、将来の目的のために予約されています。
- より強力なRESET回路。
- ATmega16U2が8U2に置き換わりました。