ガレスタさんのDIY日記

電子回路、Web、組み込み、自作エフェクターを語るblog

LPCシリーズの簡単な説明1 CortexM0,M0+編

前回から初心者向けのTipsを書いていますが今回はLPCシリーズはいっぱいあってどれ選んでいいかわからないという声があったのでコア分けながら書いて行きたいと思います。

CortexM0 Series

主に11xx、12xx、11U、11Eシリーズなんかがこのグループに属します。

秋月で売っているLPC1114なんかもこのシリーズです

11Uシリーズなんかは11xxの上位版に位置しmbedインターフェイスにも使われており低価格ながらも高性能なマイコンです

f:id:gsmcustomeffects:20160814064645p:plain

ROM内USBドライバ(11uシリーズ)

ROM内にUSBドライバがあるため簡単にフラッシュプログラムを行うことができます。
USBISPモードでマスストレージブートできるのでMbedインターフェイスなしでフラッシュプログラミングできます

IAP(In Application Program)[11uシリーズ]

IAPコマンドを使ってアプリケーション内でフラッシュを書き換えできる機能です
フラッシュをデータ保存に使ったりEEPROMの書き換えをしたりできるので非常に便利です

CortexM0+ Series

CortexM0から電力面を改善したコアを採用したマイコンシリーズです
当ブログでよく使っている11u68なんかはこのグループに属します。

主な特徴としては以下のようなものがあります

  • スイッチマトリックス機能
  • ステートコンフィギュアブルタイマー
  • ROM内にUART/I2C/SPI/ADCドライバ

スイッチマトリックス機能搭載

こちらはピンをマトリックス構成にして好きなピンに機能割り当てができる機能です
FPGAみたいな感じで意外と便利です

f:id:gsmcustomeffects:20160814065339p:plain

ステートコンフィギュアブルタイマー搭載

タイマーと状態遷移を組み合わせたモジュールになっています。
CPUを介さないでペリフェラルの駆動を行ったりできるのでDMAなんかを組み合わせるとかなり便利だと思います。
ただ設定などが結構難解なので慣れてからいじることをお勧めします。
f:id:gsmcustomeffects:20160814070333p:plain

ROM内ドライバ

CortexM0シリーズにUART/I2C/SPI/ADCのドライバが追加されコードサイズの削減がより洗練化されました。

  • UART API:非同期モードで文字や文字列の送信/受信
  • I2C API:マスター/スレーブでの送受信, ポーリング/割り込み
  • SPI API:マスター/スレーブでの送受信, DMAモード
  • ADC API:キャリブレーション, トリガ, 割り込み

各シリーズの説明

  • LPC8xx:DIP8ピンから30ピン程度までいろいろある
  • LPC11E6x:11E3xなどの上位シリーズ
  • LPC11u6x:11u3xなどの上位シリーズ

11u68なんかはCortexM0+の中でも最上位に位置するので機能は結構もりもりです。
f:id:gsmcustomeffects:20160814071121p:plain

その他フラッシュなんかも256KBにアップグレードされているのでかなり多機能なアプリケーション設計もできると思います


まとめ

簡単にCortexM0及びM0+の特徴を書いていきましたがどうでしょうか? これだけでもいくつものアプリケーションが思いつくのではないでしょうか?

最後によく使いそうなやつの価格と特徴をコラムとして挙げておきます
価格はDigikey価格です

コア シリーズ 価格 特徴
CortexM0+ LPC810 300円 DIPパッケージなので使いやすいがピン数が少ない。最近キャンペーン価格が終わってしまったので割高
CortexM0+ LPC812 164円 面実装パッケージだが安価でピン数もそこそこ
CortexM0+ LPC824 200円前後 800シリーズ最上位A/Dコンバータを搭載
CortexM0+ LPC11u68 550~600円 フラッシュ256KB、ピン数もかなり多いのでこれ一つでだいたい済むと思う
CortexM0 LPC1114 320円 面実装パッケージ、DIP両方ある比較的割高
CortexM0 LPC11u35 480円前後 mbedインターフェイスに採用比較的使いやすい規模