NXP Cortex-M0マイコン LPC1114FN28(DIP)
2015/11/14
最近気になるマイコン。NXP Cortex-M0マイコン LPC1114FN28(DIP)
32ビットでDIPパッケージ。趣味のマイコンに最適。
- 32ビットなのにDIP。ブレッドボードで実験可能。
- 最高クロック50MHz、flash ROM 32KB, RAM 4KB
- ブートローダ内蔵で、シリアルポートからflashプログラムが書き込める
- 超安価。100円ちょっとで売ってる。
ということで、早速、ブツを調達した。マルツで1個115円だった。安!
他にも、プログラム書込み用にUSBシリアル変換ブレークアウトボードを購入。あとは在庫部品でいろいろ遊べる。
まずは、USBシリアル変換ボードのジャンパを半田ショートして、チップへの電源供給方法を決める。USBからのバスパワーで動作させるように、SJ1とSJ2をブリッジした。
また、8PINのDIPピンが同梱されているのでそれも半田付けする。
ブレッドボードを用意。まずはMCU、LPC1114FN28/102を設置。
次にUSBシリアルボードを載せる。
MCUのTXとUSBシリアルボードのRX、同じく、RXとTXを接続する。クロス接続である。電源はUSBからのバスパワーを利用するが、MCUは3.3Vなので、USBシリアルチップ内蔵の3.3Vレギュレータを経由してUSBシリアルボードの1PINをVSS, 8PINをVDDに接続する。
リセットSWも必要なので、100Ωの抵抗と0.01uFのコンデンサを組み合わせたリセット回路をブレッドボード上に組み、MCUのRESET(23OIN)に繋ぐ。
MCU内蔵のブートローダを起動するには、MCUのPIO0_1(24PIN)をGNDに落してリセットするので、ジャンパコードでGNDに接続できるようにしておく。
マイコンのHello, Worldである、LEDチカチカを試すので、適当なポートに220Ωぐらいの抵抗をカマしてLEDを接続する。今回は、PIO1_5 (14PIN)に接続した。
次に、開発環境と書き込みツールであるが、Linux上でクロス開発するので、Linux上ですべて構築する。
- コンパイラ等は、Sourcery CodeBench Lite Editionを用いる。このページの、ARM Processorsというところの、Download the GNU/Linux Release→ をクリックして、メールアドレスを登録すると、ダウンロードリンクがメールで送られるので、リンクを開いてダウンロードする。
- Flash書込みツールは、lpc21ispというツールを用いる。このページにソース一式があるので、make installする。
- サンプルソースを書く。といっても、1から書くのは大変なので、例えば、これとかをダウンロードして利用する。gitからcheck outせよ、ではなくて、ページの上部にZIPというボタンがあるので、クリックすればリポジトリの最新版がZIPで一式パッケージされている。
あとは、ZIPを展開したディレクトリでmake一発でコンパイルできる。outディレクトリにオブジェクトコードが生成されるので、それをflash ROMに書込めばOK。
lpc21ispのコマンドラインパラメータは以下の通り。
$ lpc21isp -hex out/blink.hex /dev/ttyUSB0 115200 12000
パラメータの意味は大体分かると思うが、最後の12000というのは、MCUの内蔵オシレータのクロック数をKHz単位で指定している。