Mbedで最初に試すべきこと(備忘録)
今調べたら4年以上前にmbed(当時は全部小文字)で製品開発していたことがあったのですが、開発環境(自分もWinからMacにしてた)も石(半導体チップのこと)もだいぶ様変わりしていたので戸惑いました。私を含めて新しいハードを使い始めるときは立ち上げの初っ端でつまづく人が多いと思うので、ここに備忘録として残しておきます。
===
最初のゴールは「Macの画面に、Mbed基板のシリアル出力を出すこと」
・使った機材:LPC11U35マイコンボード、micro-USBケーブル、Mac
・使ったツール:Mbed Compiler、CoolTermMac
手順の要点、つまづいた点など
(1) LPC11U35マイコンボードの初期テストをする。SW1とSW2を同時に押しながらUSBケーブルを接続し、SW2から手を離すと"CRP DISABLD"という名前のディスクがデスクトップに現れる。これを開くと中に"firmware.bin"というファイルがあるので削除する(上書きはできない)。説明書にあるテストプログラム"firmware.bin"をダウンロードしてきて書き込む際、ドラグ&ドロップでは上手くいかず、
$ cp firmware.bin /Volumes/CRP\ DISABLD
===
最初のゴールは「Macの画面に、Mbed基板のシリアル出力を出すこと」
・使った機材:LPC11U35マイコンボード、micro-USBケーブル、Mac
・使ったツール:Mbed Compiler、CoolTermMac
手順の要点、つまづいた点など
(1) LPC11U35マイコンボードの初期テストをする。SW1とSW2を同時に押しながらUSBケーブルを接続し、SW2から手を離すと"CRP DISABLD"という名前のディスクがデスクトップに現れる。これを開くと中に"firmware.bin"というファイルがあるので削除する(上書きはできない)。説明書にあるテストプログラム"firmware.bin"をダウンロードしてきて書き込む際、ドラグ&ドロップでは上手くいかず、
$ cp firmware.bin /Volumes/CRP\ DISABLD
で書き込む。その後SW2を押すと基板にリセットがかかってLEDが点滅すれば正常に動いている。
(2) Mbedコンパイラに登録する(自分は4年以上前に登録が済んでいた)。
(3) テストしたソースはここにあるものを使った
#include "mbed.h"
#include "USBSerial.h"
Serial uart(P0_19, P0_18);
USBSerial usb(0x1f00, 0x2012, 0x0001, false);
int main(void) {
while(1) {
uart.printf("I am a UART serial port\r\n");
usb.printf("I am a USB serial port\r\n");
wait(1);
}
}
※ここで"Serial"と"USBSerial"があるのは、Mbed対応の基板はどちらが有効かで2種類あるからである。今回使ったLPC11U35マイコンボードは、後にわかるが"USBSerial"が有効である。"Serial"を使った方は出力されない。
(4) CoolTermMacをインストールする
「開発元が未確認のアプリケーションを開く」を参考のこと。要はControlキーを押しながらアイコンをクリックして開けば、以後は他のアプリと同じように開けます。
(5) CoolTermMacを使う
OptionsのPortで、usbmodemo***というのを見つけて選択すれば、あとはデフォルトでOKです。基板をリセットすれば以下のように出力が現れるはずです。
※他のサイトを見ていると、「その通り動かなかったときどうしたらいいのか?」で戸惑うことが多々あります。万能な解決方法があるわけではないですが、問題の切り分け方法、調べ方、くらいは書いておくのが親切というものでしょう。
===
(1) テストファームウェアを書いた後、基板のLEDが点滅しない
ファームウェアが正しく書かれていないか基板が壊れています。PCを変えてみるか、基板を変えてみてください。新しいハードをテストするときは初期故障の可能性を考えて、常に複数個入手しておくと良いでしょう。
(2) ターミナル、ここではCoolTermMacのPortに繋いだ基板が現れない
$ls /dev/tty.*
を叩いてみてください。ここで/dev/usbmodem***が現れなければMacがUSBデバイスを認識していません。ケーブルが正しく刺さっていないか、基板にファームウェアが正しく書かれていない虞があります。今回はここが最大のヤマでした。最終的には「USBSerialのライブラリを使う」ということで決着しました。
===
ここまで
コメント
コメントを投稿