概要
Arduino Dueは、Atmel SAM3X8E ARM Cortex-M3 CPUをベースにしたマイクロコントローラ・ボードです。
32ビットARMコアマイクロコントローラをベースにした初のArduinoボードです。
54本のデジタル入出力ピン(うち12本はPWM出力として使用可能)、12本のアナログ入力、4個のUART(ハードウェアシリアルポート)、84MHzクロック、USB OTG対応接続、2個のDAC(digital to analog)、2個のTWI、電源ジャック、SPIヘッダー、JTAGヘッダー、リセットボタン、消去ボタンを備えています。
警告 :ほとんどのArduinoボードとは異なり、Arduino Dueボードは3.3Vで動作します。
I/Oピンが許容できる最大電圧は3.3Vです。I/Oピンに3.3V以上の電圧を印加すると、ボードが破損する恐れがあります。
ボードには、マイクロコントローラーをサポートするために必要なすべてのものが含まれています。マイクロUSBケーブルでコンピューターに接続するか、AC-DCアダプターまたはバッテリーで電源を供給するだけで、すぐに使用できます。
Dueは、3.3Vで動作するすべてのArduinoシールドと互換性があり、1.0 Arduinoピンアウトに準拠しています。
- Dueは、1.0のピンアウトに準拠しています。
- TWI: AREFピンの近くにあるSDAとSCLピンを使用します。
- IOREF:適切な構成で取り付けられたシールドが、ボードから提供される電圧に適応できるようにします。これにより、Dueのような3.3Vのボードと、5Vで動作するAVRベースのボードとのシールドの互換性が可能になります。
- 将来の使用に備えた未接続のピンがあります。
技術スペック
MICROCONTROLLER | AT91SAM3X8E |
OPERATING VOLTAGE | 3.3V |
INPUT VOLTAGE (RECOMMENDED) | 7-12V |
INPUT VOLTAGE (LIMITS) | 6-16V |
DIGITAL I/O PINS | 54 (of which 12 provide PWM output) |
ANALOG INPUT PINS | 12 |
ANALOG OUTPUT PINS | 2 (DAC) |
TOTAL DC OUTPUT CURRENT ON ALL I/O LINES | 130 mA |
DC CURRENT FOR 3.3V PIN | 800 mA |
DC CURRENT FOR 5V PIN | 800 mA |
FLASH MEMORY | 512 KB all available for the user applications |
SRAM | 96 KB (two banks: 64KB and 32KB) |
CLOCK SPEED | 84 MHz |
LENGTH | 101.52 mm |
WIDTH | 53.3 mm |
WEIGHT | 36 g |
Arduino Dueはオープンソースのハードウェアです。以下をクリックし公式サイトよりファイルをダウンロードし自分のボードを作ることができます。
▶電子回路[EAGLE FILE ZIP]
▶電子回路[PDF]
▶ボード図面[.PDF]
▶FRITZIFG「FZPZ]
Pinout Diagram
▶pinout diagramのダウンロードはこちらをクリック (PDF)
電源について
Arduino Dueは、USBコネクターまたは外部電源から電力を供給することができます。
電源は自動的に選択されます。
外部電源(USB以外)は、AC-DCアダプター(ウォール・ワート)またはバッテリーから供給されます。アダプターは、2.1mmのセンターポジティブプラグをボードの電源ジャックに差し込んで接続します。電池のリード線は、POWERコネクタのGndおよびVinピンヘッダに挿入できます。
本ボードは、6~20Vの外部電源で動作します。ただし、7V未満の場合は、5V端子の供給電圧が5V未満となり、基板が不安定になることがあります。また、12V以上を使用した場合、電圧レギュレータが過熱してボードが破損することがあります。推奨範囲は7~12Vです。
電源端子
Vin. | 外部電源を使用しているときのArduinoボードへの入力電圧です(USB接続やその他の調整された電源からの5ボルトとは異なります)。このピンから電圧を供給することができます。電源ジャックから電圧を供給する場合は、このピンからアクセスします。 |
5V | ボード上のレギュレーターからレギュレートされた5Vを出力します。基板への電源供給は、DC電源ジャック(7〜12V)、USBコネクタ(5V)、基板のVIN端子(7〜12V)のいずれかから行います。5Vや3.3Vの端子から電圧を供給すると、レギュレータがバイパスされるため、ボードが破損する恐れがあります。お勧めできません。 |
3V3 | オンボードのレギュレータによって生成される3.3Vの電源。最大消費電流は800mAです。このレギュレータは、SAM3Xマイクロコントローラにも電源を供給します。 |
GND | グラウンド端子 |
IOREF | Arduinoボード上のこのピンは、マイクロコントローラが動作するための電圧基準を提供します。適切に構成されたシールドは、IOREFピンの電圧を読み取って適切な電源を選択したり、出力の電圧変換器を有効にして5Vまたは3.3Vで動作させることができます。 |
メモリ
SAM3Xは、コードを格納するために512KB(256KB×2ブロック)のフラッシュメモリを備えています。
ブートローダーは、Atmelの工場であらかじめ焼かれ、専用のROMメモリに格納されています。
利用可能なSRAMは96KBで、64KBと32KBの2つの連続したバンクに分かれています。
利用可能なすべてのメモリ(フラッシュ、RAM、ROM)は、フラットなアドレス空間として直接アクセスできます。
SAM3Xのフラッシュメモリーは、オンボードの消去ボタンで消去することができます。
これにより、現在ロードされているスケッチがMCUから削除されます。消去するには、ボードの電源が入っている間に、消去ボタンを数秒間押し続けます。
入力と出力
デジタルI/O | 0から53までのピン 54本のデジタル・ピンは、pinMode()、digitalWrite()、digitalRead()関数を使用して、入力または出力として使用できます。ピンは3.3ボルトで動作します。各ピンは、ピンによって3mAまたは15mAの電流を供給(ソース)したり、6mAまたは9mAの電流を受信(シンク)したりできます。また、100KOhmの内部プルアップ抵抗(デフォルトでは非接続)を備えています。さらに、いくつかのピンは特殊な機能を持っています。 |
Serial | シリアル:0(RX)および1(TX) |
Serial1 | 19(RX)と18(TX) |
Serial2 | 17(RX)と16(TX) |
Serial3 | 15(RX)および14(TX) TTLシリアルデータ(3.3Vレベル)の受信(RX)および送信(TX)に使用します。ピン0と1は、ATmega16U2 USB-TTLシリアルチップの対応するピンに接続されています。 |
PWM | (2)~(13) analogWrite()関数で8ビットのPWM出力を提供します。 PWMの解像度はanalogWriteResolution()関数で変更できます。 |
SPI | SPIヘッダー(他のArduinoボードではICSPヘッダー) これらのピンは、SPIライブラリを使用したSPI通信をサポートしています。SPIピンは中央の6ピンヘッダーに分けられており、Uno、Leonardo、Mega2560と物理的に互換性があります。SPIヘッダーは、他のSPIデバイスとの通信にのみ使用でき、SAM3XをIn-Circuit-Serial-Programming技術でプログラミングするためには使用できません。また、DueのSPIには、Due用の拡張SPI方式で使用できる高度な機能があります。 |
CAN | CANRX and CANTX これらのピンは、CAN通信プロトコルをサポートしていますが、※Arduino APIではまだサポートされていません。 |
LED | (13) デジタルピン13に接続されたLEDが内蔵されています。ピンがHIGHのときにはLEDが点灯し、ピンがLOWのときには消灯します。デジタルピン13はPWM出力でもあるので、LEDを暗くすることも可能です。 |
TWI 1 | (20)SDAと(21)SCL |
TWI 2 | SDA1とSCL1。 Wireライブラリを使ったTWI通信に対応。SDA1とSCL1は、Wireライブラリが提供するWire1クラスを使って制御できます。SDAとSCLには内部プルアップ抵抗がありますが、SDA1とSCL1にはありません。Wire1を使用するには、SDA1およびSCL1ラインに2つのプルアップ抵抗を追加する必要があります。 |
AnalogInput | (A0)~(A11) Dueには12個のアナログ入力があり、それぞれが12ビットの分解能(つまり4096通りの値)を提供できます。デフォルトでは、他のArduinoボードとの互換性のため、読み取り値の解像度は10ビットに設定されています。ADCの解像度は、analogReadResolution()で変更することができます。Dueのアナログ入力ピンは、グランドから最大値3.3Vまでを測定します。3.3V以上の電圧をDueのピンに印加すると、SAM3Xチップが破損します。analogReference()関数はDueでは無視されます。 |
AREF | 抵抗ブリッジを介してSAM3XのanalogReferencePinに接続されています。 AREF ピンを使用するには、抵抗 BR1 を PCB から外しておく必要があります。 |
DAC1/DAC2 | analogWrite() 関数により、12 ビットの分解能 (4096 レベル) の真のアナログ出力を提供します。 これらのピンは、Audioライブラリを使用してオーディオ出力を作成するために使用できます。 ※なお、DACの出力範囲は、実際には0.55V~2.75Vのみとなります。 |
AREF | アナログ入力の基準電圧です。analogReference()で使用します。 |
Reset | このラインをLOWにすると、マイクロコントローラがリセットされます。通常、ボード上のリセットボタンをブロックするシールドにリセットボタンを追加するために使用します。 ArduinoのピンとSAM3Xのポートのマッピングも参照してください。 |
通信機能
Arduino Dueには、コンピュータや他のArduinoや他のマイクロコントローラー、電話やタブレット、カメラなどのさまざまなデバイスと通信するための機能が数多く搭載されています。
SAM3Xは、TTL(3.3V)シリアル通信用に、1つのハードウェアUARTと3つのハードウェアUSARTを備えています。
プログラミングポートにはATmega16U2が接続されており、接続されたコンピューター上のソフトウェアに仮想COMポートを提供します(デバイスを認識するために、Windowsマシンには.infファイルが必要ですが、OSXおよびLinuxマシンはボードをCOMポートとして自動的に認識します)。
16U2は、SAM3XのハードウェアUARTにも接続されています。
RX0およびTX0ピンのシリアルは、ATmega16U2マイクロコントローラを介してボードをプログラミングするためのシリアル-USB通信を提供します。
Arduinoソフトウェアにはシリアルモニターが含まれており、簡単なテキストデータをボードとの間で送受信することができます。ATmega16U2チップとコンピューターへのUSB接続を介してデータが送信されると、ボード上のRXおよびTX LEDが点滅します(ただし、ピン0および1のシリアル通信はできません)。
ネイティブUSBポートは、SAM3Xに接続されています。
これにより、USBでのシリアル(CDC)通信が可能になり、シリアルモニターやコンピュータ上の他のアプリケーションへのシリアル接続が可能になります。
また、接続されたコンピュータにUSBマウスやキーボードをエミュレートすることもできます。
これらの機能を使用するには、Mouse and Keyboardライブラリのリファレンス・ページを参照してください。
ネイティブUSBポートは、マウスやキーボード、スマートフォンなどの周辺機器を接続するUSBホストとしても機能します。これらの機能を使用するには、USBHostのリファレンスページを参照してください。
SAM3Xは、TWIおよびSPI通信もサポートしています。
Arduinoソフトウェアには、TWIバスの使用を簡単にするWireライブラリが含まれていますので、詳細についてはマニュアルをご覧ください。詳細はドキュメントを参照してください。 SPI通信には、SPIライブラリを使用します。
プログラミング
Dueは、Arduino Arduino Software (IDE)でプログラミングできます。詳
SAM3Xへのスケッチのアップロードは、他のArduinoボードに搭載されているAVRマイクロコントローラとは異なり、フラッシュメモリを消去してから再プログラムする必要があります。
チップへのアップロードは、SAM3XのROMによって管理され、チップのフラッシュメモリが空になったときにのみ実行されます。
どちらのUSBポートもボードのプログラミングに使用することができますが、チップの消去方法を考慮して、プログラミングポートを使用することをお勧めします。
プログラミングポート | このポートを使用するには、Arduino IDEでボードとして「Arduino Due (ProgrammingPort)」を選択します。 Dueのプログラミング・ポート(DC電源ジャックに最も近いポート)をコンピュータに接続します。 プログラミング・ポートでは、16U2をUSB-シリアル・チップとして使用し、SAM3Xの1番目のUART(RX0とTX0)に接続します。 16U2には、SAM3XのResetピンとEraseピンに接続された2つのピンがあります。1200bpsで接続されたプログラミングポートを開閉すると、SAM3Xチップの「ハードイレーズ」手順が開始され、UARTと通信する前にSAM3XのEraseピンとResetピンが有効になります。 これは、Dueのプログラミングに推奨されるポートです。Nativeポートで発生する「ソフトイレーズ」よりも信頼性が高く、メインMCUがクラッシュしても動作するはずです。 |
Nativeポート | このポートを使用するには、Arduino IDEでボードとして「Arduino Due (NativeUSBPort)」を選択してください。 Native USBポートは、SAM3Xに直接接続されます。 DueのNative USBポート(リセットボタンに最も近いポート)をコンピュータに接続します。 Nativeポートを1200bpsで開閉すると、「ソフト消去」が行われます。フラッシュメモリが消去され、ブートローダでボードが再起動されます。MCUが何らかの理由でクラッシュした場合、ソフトイレーズ手順はSAM3Xのソフトウェアですべて行われるため、動作しない可能性があります。ネイティブポートを異なるボーレートで開閉しても、SAM3Xはリセットされません。 アップロードにavrdudeを使用する他のArduinoボードとは異なり、Dueはbossacに依存しています。ATmega16U2ファームウェアのソースコードはArduinoリポジトリで公開されています。ISPヘッダを外部プログラマで使用することができます(DFUブートローダを上書きします)。詳細は、このユーザー投稿のチュートリアルを参照してください。 |
USB過電流保護
Arduino Dueには、コンピュータのUSBポートを短絡や過電流から保護するリセット可能なポリヒューズが搭載されています。ほとんどのコンピュータは独自の内部保護機能を備えていますが、ヒューズはさらなる保護層を提供します。USBポートに500mA以上の電流が流れた場合、ショートや過負荷が解消されるまで、ヒューズが自動的に接続を遮断します。
物理的特性とシールドの互換性
Arduino Due PCBの最大の長さと幅はそれぞれ4インチと2.1インチで、USBコネクターと電源ジャックは前者の寸法よりも長くなっています。3つのネジ穴により、基板を表面やケースに固定することができます。なお、デジタルピン7と8の間隔は160mil(0.16インチ)で、他のピンの間隔である100milの偶数倍ではありません。
Arduino Dueは、Uno、Diecimila、Duemilanove用に設計されたほとんどのシールドと互換性があるように設計されています。デジタルピン0~13(および隣接するAREFおよびGNDピン)、アナログ入力0~5、電源ヘッダー、および「ICSP」(SPI)ヘッダーは、すべて同等の位置にあります。さらに、メインのUART(シリアルポート)も同じピン(0と1)に配置されています。なお、I2CはDuemilanove / Diecimilaと同じDueのピン(20と21)にはありません。