LPCXpresso1549をmbedにするまで

自分へのメモ LPCXpresso1549を利用してmbedで開発ができるようにするまでに調べたことと、そのやり方のメモ

  1. 間違いが多いかもしれませんので、色々教えて下さい。

mbed正式サポートとされているLPCXpresso1549であるが、ポン付けで使えるほどでは無かった。というか、その考えは甘いよね。 mbedで利用するまでのメモと書いたが、http://developer.mbed.org/platforms/LPCXpresso1549/の記載をよく読んだほうがいい。 またピンアサインはADC、DAC、I2C以外はすべてスイッチマトリックスなので、書いてあるピンアサインに固定されているわけではなく好きに設定できると書いてあるが、他のピンも案外固定されている。 具体的には、コンパレータ入力、SCTの一部機能が固定。 ピンのInitializerはhttp://www.lpcware.com/content/tools/lpc-initializerここにあるので、一度参照するべき。 LPC1549JBD64がLPCXpresso1549に搭載されているもの。 これで色々と設定してみると、全然自由じゃない感じがわかるかと。 逆に自由に設定できるのが、USART、SPI、SCTの一部、ADCやDACのトリガであり、むしろ全然スイッチマトリックスではない。 上記したmbedのリンクにはArudino Form Factor向けのピンアサインが記載されているが、ADCやDACは固定であり、むしろSPIを移動したりできるだけで、この形でmbedとして使用すると色々制限される気がする。 またSPIも本来2系統利用できるが、上記のリンクでは1つしかないように感じる書き方だ。

ピンの入力は5Vトレラントではないようなので、USB_DM,DPはそのままUSBをつなぐとマズイんじゃないかと思うのだが、回路図的には、間にPRTR5V0U2XというESD保護が入っているだけで直に接続されている?

mbedとしてのピンアサインの情報は上記リンクしか無いが、http://www.lpcware.com/content/nxpfile/lpc1549-lpcxpresso-board-schematicの回路図から、ボードの内側に配置されているMotor Control Board Headerからは、PIO0_14/ADC1_7/SCT1_OUT5を除く全てのピンが出力されている。 ちなみにここでの注意として、一部ピンは平行に並んだ54ピンの出力ではなく、55ピンから先のPMODピンの近くにある19ピンのところから出力されている。で、このピンとその左右にある54ピンのヘッダが2.54mm間隔ではないので、迂闊にピンヘッダをハンダ付けなどすると2.54mmの基板やブレットボードに刺さらなくなる。 基板を起こしてしまうならよいが、プロトタイプの段階ではここを使用するのは面倒。

Arudino用のシールドで何かを作るなどでなければ、この内側のピンを外に出すように設定するべき。というかそもそもArduinoのシールドなんて、Arudinoで使えばいいんじゃない?わざわざCortex-M3とかを使う理由がないとおもうけど?

つぎにmbedとして開発できるようにするまで。 mbedとしてのUSBメモリーとして接続、バイナリのD&Dでのプログラミングなどができるようにするファームをインストール必要がある。 http://developer.mbed.org/teams/NXP/wiki/Updating-LPCXpresso-firmwareここにやり方が書いてあるのだが、どうもうまく行かない。 というかうまく行っているのだが、書き込みのログとかVerify中とかにエラー出まくり。

まずLPCXpresso1549はLPC4322JET100を利用したLPC-Link2というデバッガが実装されている。http://www.nxp-lpc.com/lpc_boards/lpc-link2/ で、こいつのファームをmbedで使えるように(LPC1549へプログラミングできるように)変更する必要がある。 この為のアプリケーションがDFUSecといやつのよう。 ダウンロード先は上記リンクからでいいと思う。Windowsで認識できるようにするためのドライバーも前もってインストールする必要あり。ドライバーインストール後は一旦再起動推奨。 ドライバーはLPC-Link2 Configuration Toolと一緒に提供されている。 これは、LPC-Link2をそれぞれの環境に合わせたデバッガとして設定、ファームの書き込みを行うもののようだ。 今回はmbedに設定するので、こちらの設定は行わない。

アプリケーションは展開して直にバイナリを起動する感じなんだが、これが挙動がイマイチおかしい。 DFUSecのアプリケーションに関してはhttp://www.lpcware.com/content/project/dfu-download-programming-utility-and-security-lpcdfusec-toolここ。 まあ要するにプログラマなんだけど、なんだか色々な方法でプログラミングや設定ができるみたい。 余計よくわからんw

でとりあえず、mbedへのファームウェアアップデートの方法でやってみた。 すると、Verifyでエラー。ログを見てみると512バイトごとに書き込みを行い、そのあとVerifyを行っている。 書き込み途中のログは表示がおかしく、(WRITEなんちゃらとかが、ずれてたりとか)、Verifyは2ブロック目で読み込めなくなって止まっている。 書き込みは終了したみたいだったので、とりあえずHelloWorldなんかを作って実行してみると、とりあえずmbedとしてのD&Dなどは出来ているようだった。 で、もう一回書き込んだらどうなるんだろう?と思ってやってみると、今度はデバイスを認識しない。 Windowsのコンパネからデバイスを見てみるとドライバーがわかんないみたいだったので、指定してあげて認識。 DFUSecを再度起動するが、同じようにエラー。さらにこのアプリ、そのままもう一回Startとか押せない。デバイスを認識し直さないとダメなのか? ウチのUSBが悪い可能性もあるので、別マシンでやってみる。

別なWindowsPCはLinux上のVMwareで動作するものだけだった。 VM環境は非推奨であったが、これしかないからやってみる。 上記のものを再度ダウンロード、インストールする。 今更だが、.net4.5.1の環境が必須。それがないとかXPとかなら古いものを使えと書いてある。

でこれでやってみると、全く問題ない。エラー全然でない。 何だったんだろう。自宅のUSB周りのドライバーがグチャグチャなんではないだろうか。 とりあえず良しとする。


Please log in to post comments.