Introduction

Second Opinionではここしばらく、Atmelの8bit MCUを搭載したArduinoという開発ボードで色々やらせていただいているが、世の中に開発ボードはArduinoだけという訳ではない。というよりも、主要なMCUベンダーはみな数種類の開発ボードをリリースしており、MCU自身の評価や製品のプロトタイピング製造、どうかすると最終製品への搭載まで幅広い用途に使えるように配慮している。

ただこうした目的そのものは一緒であっても、それを実現するための環境は各社各様であり、ソフトウェア開発環境(コンパイラやIDEのみならず、ローダやデバッガを含む)やハードウェア環境(プロトタイプボードにどんなMCUとどの程度の周辺回路を搭載し、どの程度の周辺回路をどんなオプションボードで提供するか)は各社大きく異なっている。

NXP Semiconductorが提供する「mbed」もこうした開発ボードの1つである。mbedには2種類あり、1つはARM7TDMIベースの「mbed 236x」、もう1つはCortex-M3ベースの「mbed 176x」である。今回ご紹介するのはこのmbed 176xシリーズ(具体的にいえばmbed NXP LPC1768)である(Photo01)。

Photo01:パッケージは非常に小さい。本体の他にはUSBケーブルと、簡単な説明書が同梱されるのみ

標準で搭載する周辺回路はLEDが4つとMini USB端子、それとリセットスイッチ(Photo02)のみで、これ単体ではどうにもならないといった感じに見える。ところが実際にはこんな具合

  • I2C×2、Serial×2、SPI×1、CAN×1、USB×1、Ethernet×1
  • Analog In×6、Analog Out×1、PWM Out×6、Digital I/O×26
  • 3.3V Out×1、5V Out×1

と、実は豊富な周辺回路を搭載しており、例えばEthernetとかUSB、SDIOなどはコネクタなりスロットなりを取り付ければすぐにでも使えるようになっている。

Photo02:本体サイズは52mm×26mm(実測値)と非常にコンパクト。裏面のピンは2.54mmピッチで20本×2という構成。ブレッドボードにも簡単に装着できる

また後述するが、mbedでは標準でWebベースの無償の開発環境が用意され、USBで接続できる(Internetに繋がった)PCさえあればすぐにアプリケーションを開発して実行させることが可能だ。「とは言っても自分ではんだ付けはちょっと…」という人向けに、mbedの評価用ベースボードとして☆board Orange(スターボードオレンジ)といったものも存在する。これはNXPとは無関係な1ユーザーがデザイン、開発したものであるが、きばん本舗あるいはスイッチサイエンスなどから入手できる。

mbed NXP LPC1768自体は5900円前後で入手可能で、☆board Orangeとあわせても1万円でおつりが来るという、ホビーユーザーにも優しい価格設定となっている。

ではmbedの欠点は? というと、業務で本格的に開発に使おうとした時に求められる、JTAG I/FとかICEのサポートが無いことだ。JTAGについては、ボード上に実装されたLPC1768のピンから直接はんだ付けなどでJTAGピンを引っ張りだして使うことは可能と思われるが、そうした使い方を想定していないのは明白だ。ICEへの対応も同様である。要するにデバッガが無い、というのがmbedの開発環境での欠点となるわけであるが、実際はPCをデバッグコンソールとしてprintf()デバッグが容易に実行できるので、業務ではともかくホビーでの開発にはそれほど大きく支障があるという訳ではない。

ちなみにNXPはこうした業務用途向けには、(mbedに似た)本体+オンボードJTAGデバッガという構成のLPCXpressoという製品を別に用意している。このLPCXpressoに付属するIDEを使ってmbed用のプログラムを作ることも不可能ではないのだが、あまりお勧めはできない(なぜか筆者が購入したmbed NXP LPC1768のパッケージには、このLPCXpressoの説明が同梱されていてちょっと混乱したのだが、そういうわけでLPCXpressoは無視して構わない)。

もう1つ、敢えて欠点を挙げれば日本語の資料がまだ少ないことだ。mbed自身はmbed.orgを通して様々な資料やサンプル、ライブラリやプログラムを配布しており、特にライブラリに関しては(後述するとおり)非常に使い勝手がいいのだが、ただしそのほとんどが英語である。もちろんmbed.orgの目的は世界中の開発者がリソースを共有することであり、この目的のためには日本語を使うのはむしろ好ましくない(他の言語を使う開発者にとってむしろ妨げになる)のだが、そうは言ってもちょっと敷居が高いという方もおられよう。ただ日本でもmbedの開発者の数が次第に増えてきており、日本語でのmbedの情報発信も増えつつあるので、今後に期待したいところだ。