Help us understand the problem. What is going on with this article?

FT232RLを使ったARMライターを組んで、mbedのCPUであるLPC1114FN28を動かしてみた

More than 3 years have passed since last update.

AVRマイコンもいいんですが、mbedでも使われているARMマイコンにも色々と魅力があります。ARMである事と、AVRの8bitマイコンよりもパワフルなのに、AVR8bitマイコンと同じくらい電子工作で使いやすいという点です。演算用に一ついかがでしょうか。

今回は、FT232RLを使ってARMライターを構築してLPC1114FN28に書き込んでLチカするまでを記事にします。プログラムのコンパイルをよく使われるオンラインコンパイラではなく手元で実現していたり、ライターソフトも糞みたいなGUIではなくCLIのツールを使っている点が特徴的でしょうか。

プログラムをコンパイルする

まずはプログラムをコンパイルします。

$ platformio init --board lpc1114fn28
$ cat > src/test.cpp
#include "mbed.h"

DigitalOut myled(LED1);

int main() {
    while(1) {
        myled = 1;
        wait(1.0);
        myled = 0;
        wait(1.0);
    }
}
$ platformio run

拡張子がC++だったりccだったりするとコンパイルが通りません。Arduinoとはだいぶん書き方が違って違和感がありますね。これで、.pioenvs/lpc1114fn28/firmware.bin に bin がはき出されます。

FT232RLを使ったARMライター

LPCマイコン(と呼ぶべき?)は、AVRマイコンに比べて素直な点が一つあって、最初からブートローダーが書き込まれてます。シリアルを使ってbinを流し込む事でプログラムが動作するようになります。

回路

http://www.nxp-lpc.com/lpc_boards/mbed/note/note3.html の記事の途中にある回路図そのままを組みました。VCCにLEDを入れたりという工夫はしています(電源が通ればLEDが光る)。

ライターソフトウェア

FlashMagicとかいうツール、GUIだしインストールが面倒だったり色々糞いので、やはりCLIのツールが正義です。morecat_lab » lpc21isp からLPC1114を使う を参考にして、lpc21isp を入手してコンパイルしましょう。(例によってPlatformIOでどうやればlpc21ispが使えるかがわからなかった…)

書き込み

lpc21isp -control -bin .pioenvs/lpc1114fn28/firmware.bin /dev/cu.usbserial-******* 115200 12000

/dve/cu.usbserial-**** は、OSに認識されたFT232RLのデバイス名です。次の数字は115200bpsで、最後の数字はKHz単位の周波数です。LPC1114FN28は、最大で50MHz位の外部クロックを取り付けることができます。今回は内部クロックでいきました。(内部クロック最大がいくつなのかは知らないけど、ググってたら12000の表記は見つけたからきっといけるはずと踏んでますw)。

ピンの仕様

公式 mbed LPC1114FN28 | mbed にピンのわかりやすい図がありました。

まとめ

  • ARMのLPCマイコンはAVRマイコンとほぼ変わらない値段で、高速・高性能
  • ARMライターはAVRライターよりも簡単
  • コンパイルもライターソフトも、CLIでいける
  • Arduinoは情報量やライブラリやサンプルスケッチの多さが魅力だけど、mbedも面白い…かもしれない

演算用チップとして使うといいかもしれないなーなんて考えています。それではごきげんよう

erukiti
React/TypeScript/VSCodeやメタプロが好きです。元々バックエンドエンジニア経験および、UNIX/Win32ネイティブアプリ開発経験の方がフロントエンド経験より遙かに長いので、フロントエンド初心者です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away