Arduino DUEを早めに入手できたのでいろいろ触ってみた。
("DUE"って伊語でいう"2"ってことで合ってるのかな…)
本家のページ
Atmel社のCortex-M3(AT91SAM8X3E)を搭載している。20mm角の144ピンパッケージなので、MEGA互換の基板の中でけっこう存在感がある。
I/O
ADC、GPIOのほか、UARTが4ch、SPI1つ、I2Cバスが2ch、DACが2ch、CAN(まだライブラリなし)と、MEGAと比べてもだいぶ増えた。
注意として、I/Oは3.3レベルなので、従来のシールド資産とはあまり互換性が無いらしい。 個人的にはほとんどシールドを持っていないのと、使う部品の多くが3.3V系なのであまり影響ないけれど…。
将来出るシールドでは、Leonardあたりから追加された IOREFピンを使うことで、シールド側で電圧を自動的に切替えられるようにする計画のようだ。 2電源レベルシフタを使うんだろうな。
消費電力
クロックが最初から84MHzなので、気になる消費電流を測ってみると、0.67Wほどだった。 結構大喰い。
とある計画でMEGA互換機を製作しているので、その代替候補になるか見る目的もあって購入した。電力的にはそのまま載せるにはちと厳しいので、ダウンクロックできるかどうか、ちょっと遊んでみよう…。
USBまわり
2つあるMicroUSBポートのうち、片方は従来と同じUSBシリアル変換ポート、もう片方はSAM3X8Eが持つホスト機能もあるUSBポート。どちらからもスケッチの書き込みは可能。
スケッチをアップロードするために一旦ROMが完全に消去される必要があるらしく、そのためのEraseという信号線がある。
プログラム専用のUSBシリアル変換用IC(AVR 16U4)につながっている。おそらく過去の8U4とはまた違うのだろう。
このErase信号線にはハードウェアスイッチも用意されていて、電源投入時に長押しでROMを消去することが可能。
マイコン自体のUSBポートで書き込む場合は、ROM消去をソフトウェアで行うようになっているが、万一消去に失敗したり、応答しなくなったときはこのハードウェアボタンで対応しろ、とのこと。
LeonardをHIDデバイスとして使う時のようなスリルを味わうことはなくなったようだ。
せっかくなのでケースをつけた。(TAKACHI SW-120)
DUE向けのIDEとして、ベータ版のバージョン1.5.1を試している。
DACをつかったSDカードからのオーディオ再生、簡単なタスク並列動作などのサンプルがあった。
ソフトウェアまわり
DUEはARMベースなので、Arduino API以外の互換性は今のところ無い。 なので、AVRのIOポートマクロを使用するスケッチ/ライブラリはAPIを使うように書き換える などの対策が必要になる。