mbed 開発記 #2 ハードウェア設計――自作 mbed ボードでLチカ(LEDチカチカ)させる(前編)

自作 mbed ver.1.0

前回の記事では、オンラインの mbed 開発環境のサインアップまでを行いました。今回は、mbed の開発ボードを自作して、Lチカ(LEDをチカチカ)させるところまで行きたいと思います(余談:自分はソフトウェア系の人間なので「Lチカ」という言葉に馴染みがなかったのですが、ソフトウェア業界で言うところの「Hello, World」が電気電子業界で言うところの「Lチカ」なのだそうですね)。特に今回の開発で重要な点は、市販の mbed ボードを使わずに、mbed ボード自体を自作するということです。mbed ボードを自作することのメリットはいくつかあると思います。

  • ARM マイコン、mbed の仕組みを知ることができる
  • 電子工作の手順そのものを知ることができる
  • 自作すると安価にできあがる

自分的には予算面の問題が大きく、勉強面は後付けです(笑)

では、以降で具体的な設計方針について説明することにしましょう。

自作 mbed ボードの設計方針

使用する ARM マイコンは NXP Semiconductor 社製の LPC1114FN28 というマイコンです。このマイコンをブレッドボード上に載せて、LEDをチカチカさせるところまで行きます。

NXP 社製 LPC1114FN28 マイコン (ARM Cortex M-0)

2015_04_05_06_53_34
LPC1114FN28

LPC1114FN28 は、DIPマイコンであり、自作に大変便利です。また、インターネット上に情報が多いというところも、このマイコンのメリットの一つかもしれないです。インターネット上に情報が多いと、迷った時の参考にできますので(そもそも、インターネット上にこの LPC1114FN28 マイコンの情報が多い理由には、NXP 社から mbed LPC1114FN28 というボードが販売されているということが一つ言えるかもしれません)。

秋月電子製 シリアル-USB 変換モジュール AE-UM232R

AE-UM232R

今回製作する mbed では、USB を介して mbed ボードと PC を繋げるため、秋月電子製のシリアル-USB 変換モジュール AE-UM232R を使います。このモジュールには3つの役割があります。一つ目は、USB で送られてきた信号をシリアル信号に変換し、LPC1114FN28 で受け取れるようにすることです。二つ目は、電源供給の役割です。そして最後の三つ目が、LPC1114FN28 へのプログラム書き込みです。LPC1114FN28 へのプログラム書き込みは、LPC1114FN28 を ISP (In-System Programming) モードで起動させる必要があるのですが、その制御信号を USB 経由で送受信するのが本モジュールの役割です。

LPC1114FN28 の ROM には、シリアルブートローダが内蔵されています。このシリアルブートローダが起動することにより、シリアル通信経由でLPC1114FN28 のプログラムを書き換えることができるようになります。

ブレッドボード

BreadBoard

ブレッドボードの良いところは、ハンダごてがなくても、自作の回路を組み立てられることです。しかも、素子を付けたり外したりするのも簡単にできますので、道具を揃えられていない人や電子工作に不慣れな人にはおススメです。

ゼロ・プレッシャー・ソケット

ZIF

別名、ZIF (Zero Insertion Force) ソケット。頻繁に IC チップの着脱を行う場合、脚が取れたり曲がったりする恐れがあるため、このソケットを使って IC チップに負荷を掛けないようにします。特に自分は初心者なので、想定外の失敗が起こり得るので、リスクを軽減するためにも今回は敢えてこのソケットを用意したいと思います。もちろん、ブレッドボードに LPC1114FN28 を直に差して使うこともできますので、絶対に入手しなければいけない訳ではありません。コストを抑えたい方は購入しなくても問題ないです。

回路図

回路図のラフスケッチは以下の通りです。

DSC_0371
My handbuilt mbed with LPC1114FN28

電源供給

LPC1114FN28 は 3.3V の電源供給が必要なので、LPC1114FN28 の Vdd(21番)ピンと AE-UM232R の 3V3(19番)ピンを結線します。そしてここで重要なのが、AE-UM232R のジャンパピンの設定です。AE-UM232R の 3V3(19番)ピンから 3.3V の電源を出力させるには、ジャンパピン J1 の 1-2 間をショートさせる必要があるということです。

USB コネクタからのデータ信号送受信

次に,、LPC1114FN28 が USB コネクタからのデータ信号を送受信するために、LPC1114FN28 の RXD(15番)ピンと AE-UM232R の TXD(1番)ピン、LPC1114FN28 の TXD(16番)ピンと AE-UM232R の RXD(5番)ピンをそれぞれ結線します。RXD は Recieve eXchange Data(データ受信)、TXD は Transmit eXchange Data(データ送信)の意味なので、必ず受信と送信が対になるように(RXD TXD のように)結線しなければなりません。

USB コネクタからの制御信号送受信

AE-UM232R には、USB コネクタからの制御信号を送受信するために DTR#(2番)ピンと RTS#(3番)ピンという2つのピンがあります。これらを LPC1114FN28 のPIO0_0(23番)ピンとPIO0_1(24番)ピンに、それぞれ結線することで、プログラム書き込み時に LPC1114FN28 を ISP モードで起動できるようになります。

購入部品一覧

購入した部品は以下の通りです。

購入部品一覧
# 品目 メーカー 型番 価格 個数 単価
1 ARM マイコン Cortex-M0 NXP LPC1114FN28 140円 1個 140円
2 ブレッドボード CIXI WANJIE ELECTRONICS BB-801 200円 1個 200円
3 ジャンパ・ワイヤ(オス-オス) 10cm 20本セット CIXI WANJIE ELECTRONICS BBJ-20 150円 20本/袋 7.5円
4 FT232RL USB-シリアル変換モジュール 秋月電子 AE-UM232R 800円 1個 800円
5  カーボン抵抗 1W 1kΩ 100本入  FAITHFUL LINK  R-07980 200円 100本/袋 2円
6  LED 5mm 黄色 100個入  OptoSupply  OSYL5113A 400円 100個/袋 4円
7 ゼロプレッシャーソケット 28pin 600mil  Aries Electronics 28-6554-10 400円 1個 400円

抵抗や LED は数百個単位のまとめ買いになるので、余った分は今後の開発に流用することにします。

完成品

そして、回路図に従ってブレッドボード上に組み上げたのが以下になります。

DSC_0368

ひとまず組み上がりましたね(汗)

以降の mbed Developer Platform でのコーディング、LPC1114FN28へのプログラム書き込みについては、後編で説明したいと思います。

※記載内容に誤りがありましたら、コメント頂けると嬉しいです。