Electronics

2010.01.25

Arduino対Maple:ファーストインプレッション

Text by kanai

mapleAndArduino_cc.jpg
LeafLabのMapleを知らなかったという人のために説明しておこう。このボードはSTM32 ARM Cortex-M3チップをベースにしたArduino互換のマイクロコントローラープラットフォームだ。仕様は以下のとおり。

  • マイクロコントローラー: STM32 F103RB
  • クロック: 72 MHz
  • 動作電圧: 3.3V
  • 入力電圧(推奨): 3.0V-18V
  • デジタル I/O ピン: 39
  • アナログ入力ピン : 16
  • フラッシュメモリー: 128 KB
  • SRAM: 20KB
  • 64チャンネルのネスト化されたベクター割り込みハンドラー(GPIOの外部割り込みも含む)
  • SPI/I2CインターフェースとDMA7チャンネル
  • 最大800mA@3.3vを供給
  • 低電圧とスリープモードに対応(< 500uA)
  • サイズ: 2.05×2.1インチ(約5.2×5.3ミリセンチ)

この新しいボードをつい最近手に入れた。完全動作版のMaple IDEの発売はまだ先だが、プロジェクトのレポジトリーから必要なソースを自分でコンパイルして、(OS XのParallelsを通して)Windows XPからスケッチをアップロードできるようにした。
私のスケッチのサンプルは、shiftOutを使って、MCP4921 DACチップで正弦波を作り出すものだ。同じテストをArduino Duemilanove(ATMega328p)でもやってみた。下の写真は2つの波形を重ねて表示させたところだ。
arduinoVSMaple-sine.jpg
Arduino Duemilanove(ATmega328p)が青い線。LeafLabs Maple(STM32F103RB)が緑の線。
注意 – DAC VREFが違うので(5Vと3.3V)、電圧レンジが違っている。
期待どおり、MapleのSTM32(72MHz)は、ArduinoのATMega328p(16MHz)よりも更新がうんと速い。クロックの速度から推察していた4.5倍程度という予測は大きく裏切られた。クロック周波数に不満を持っていたArduinoユーザーにとって、これは朗報だ。だけど、全体的に見ればDuemilanoveのほうが利点は多い。とくに次の点は明らかだ。

  • Maple IDEソフトウェアはまだ試験段階。
  • ATmega328pはDIPパッケージを簡単に利用できる。
  • Arduinoで使われている低レベルのコード(たとえば、ポート操作やタイマー割り込みなど)はSTM32用に書き換えが必要。
  • Arduinoはいろいろなスタイルのものが入手可能で、ユーザーコミュニティーも大きい。

とはいえ、Arduinoコミュニティーに選択肢が増えることはいいことだ(スピードもね) 。Mapleと今度発売予定の親戚たちで物事がどう変化するかが楽しみだ。
– Collin Cunningham
原文