LPCマイコンを使ってみる 〜環境構築(?)からLチカまで〜

内容

LPCマイコンを使い始めたので備忘録的な感じの記事でも書いていこうかと思う
とりあえず今回は開発環境立ててL チカして見るところからかなぁ
 

開発環境

 

LPC Xpresso IDEとは

LPC系マイコンのプログラムを開発する為のEclipseベースのIDE。
最近ではMCU Xpresso IDEという名前に改名したらしいが、諸機能は変わっていないようなのでLPC Xpresso IDEのままで記事を書いていこうと思う。なお、MCUなんちゃらに世代交代した影響かLPCなんちゃらが見当たらないのでリンクの方はMCUなんちゃらを貼っている。
このIDEは無料で使えて、(Activateは必要だけれども)コードサイズの制限が存在しない。
またWindowsやmacOS、Linuxなど幅広いプラットフォームがサポートされているので運用もしやすいのではないだろうか。
 

なぜLPC1549を使うのか

LPC1549を使ってる理由は、スイッチ・マトリクスが強そうだったから

スイッチ・マトリックスによるピン/ペリフェラルの高い自由度

    1. どのピンにどのペリフェラルを割り当てるかはツールで設定可
    ※スイッチ・マトリックスはPOR or BODリセット後のみにリセット

要するにこんな感じらしい

 
あと、SCTっていうタイマーもなんか強そうだった

LPC1500には4つのSCTimer/PWM(SCT)ブロックが搭載されています。このSCTは通常のPWMに、入力とPWM出力変化のモニタに加え、状態遷移とイベント発生機能を追加したCPU処理を介さずに、高い自由度でPWM制御が可能なNXPユニークなブロックです。
この4つのSCT、ADC(12-bit, 2Msps) 及び コンパレータを相互接続したSCT-アナログサブシステムにより、LPC1500はPWM出力の変化やコンパレータ/モニターピンの入力変化から CPUの処理を介さずにADCにトリガをかけたり、ADC/コンパレータの入力変化, SCTのカウンタ/キャプチャのマッチ 及び 他のSCT/モニタピンなどの入力変化などから CPUを介さずにPWMの出力を変化させることが可能です。 CPUを介さずにこれらの制御が可能なので、モータ制御やデジタル電源などPWM制御アプリケーションに適したマイコンです。

 
てことでこのマイコンを使ってくことにする。
あと、LPCOpenっていうAPI(?)が用意されてるみたいだからこれを使う

LPCOPenプラットホームはNXPが提供するCortex-M搭載デバイス向けの新しいソフトウェア・ライブラリ。
LPCOpenは使用するLPCマイコンを宣言するだけで、ライブラ内でデバイス間のIPの違いやを吸収してくれるライブラリになってます。 以前のサンプル/ライブラリは、それぞれのデバイス用のヘッダーファイル、ペリフェラル・ドライバが用意されていましたが、 LPCOpenではIPレベル(IP:IP Driver Layer)のコードから読みだすため、使用するデバイスを宣言すれば自動的にデバイスが持っている各IPが選択され、 デバイス間の違いが吸収されます(CHIP:Chip Driver Layer)。

 
ここから引っ張ってこれるから、解凍してlpc_chip_15xxっていうフォルダの中身を丸ごとプロジェクトフォルダに放り込めば使えるみたい。
 

プロジェクトの作り方

プロジェクト自体はLPC Xpresso IDEで「New > C/C++ > LPC Xpresso C++ Project > LPC1300/LPC1500 > C++ Project > LPC1549」って感じでどんどん進めてけばいつの間にか出来てる。で、これのプロジェクトのとこにさっきのやつを打ち込むってわけ。
以下スクショ

この通りの手順でやってくとプロジェクトが作成されるはず

Lチカしてみる

プログラム

とりあえずプログラムを書く前にLPCOpenのディレクトリをプロジェクトに反映させる。
LPCOpenを落として解凍したらその中にあるlpc_chip_15xxフォルダをLPC Xpresso IDEのプロジェクトにドラッグ&ドロップするとこんな感じのメッセージが出ると思うからそのままOKすれば反映される。

それと、チカチカするためのdelay関数がデフォルトだと存在しないからここを見てdelay.cppって感じでファイルを用意する。
ヘッダファイルも用意しないといけないけど流石に言わなくてもわかるよねって思うから説明は省こうと思う。
 
そしたらプログラムを書いてく。
編集するのは、<プロジェクト名>.cppっていうファイル。
内容はこんな感じ↓↓↓

書き込み方法

これを見て書き込んでみてください
 

最後に

書き終わってから気が付いたけど「環境構築」とか言っておきながら構築方法についてはまともに触れてなかった。(ダウンドードしてアクティベートするだけだからまぁ許して)
今回はGPIOの出力だけだったから次回は入力をやってみようかなぁ

あわせて読みたい

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です