LPCXpressoが7.7.2 (build 379)に更新され、Terminate, Build and Debugボタンが新たに追加されました。
デバッグ中にソース修正を加えた場合、一旦デバッガ接続を切り離した:Terminateボタン後、Buildボタン→Debugボタンを押していた従来方法が、このボタン1個でできるように改善されました。
IoT MCU開発お役立ち情報満載
LPCXpressoが7.7.2 (build 379)に更新され、Terminate, Build and Debugボタンが新たに追加されました。
デバッグ中にソース修正を加えた場合、一旦デバッガ接続を切り離した:Terminateボタン後、Buildボタン→Debugボタンを押していた従来方法が、このボタン1個でできるように改善されました。
2015年3月15日、Spansionは、Cypressと合併しました。
ARMコアでプログラマブルなアナログ周辺回路が特徴のCypressと、自動車/産業機器に強いシェアをもつSpansion、「新生Cypressは、車載、産業機器、民生機器、ウェアラブル端末、IoTなどの世界市場でシェアを拡大すべく、組み込みプロセッサやメモリの製品ポートフォリオの拡充を図っていく」とのことです。
ARMマイコン業界も数年前の自動車業界と同様、会社規模の集約化が進んでいくのでしょうか? NXPとFreescale合併後、ARM Cortex-M0/M0+の製品ポートフォリオの変化の有無が気になる今日この頃です。
マイコンテンプレートを使ったアプリケーションの開発方法(後半)は、手順4:サンプルソフトのテンプレートへの組込みとデバッグ、複数サンプルが同時に動くしくみを解説します。
アプリケーション完成までの手順1~3の詳細は、(前半)に記述済みです。
ルネサスのRL78/G13アプリケーションノート:R01AN0451JJ0301をサンプルソフトにした例で説明します。サンプルソフトは、初期設定とループ処理から成ります。hdwinit()が初期設定、main()がループ処理です。このアプリノートでは、無限ループ内でスイッチ入力:P0と、LED出力:P1を同時に行っています。詳細は、R01AN0451JJ0301を参照して下さい。
このサンプルをテンプレートへ組込んだテンプレート構造が右側です。テンプレートでは、スイッチ入力処理と、LED出力処理は、別々に起動します。このテンプレート構造から、これら以外の別サンプルN処理や、割込み起動のサンプルX/Y処理が追加可能なことが判ります。例えば、ブザ音の発生処理などをここへ追加すると、簡単に処理の追加ができます。
つまり、テンプレートは、「複数処理を起動する仕組みを、初めから持っている」のです。ここがサンプルソフトと最も異なる点です。
スイッチ入力とLED出力を分離したのは、スイッチの入力スキャンタイミングを、チャタリング対応で簡単に変更することが目的です(補足参照)。
テンプレートに付属している「シンプルテンプレート」が、このスイッチ入力とLED出力を組込んだテンプレートに相当します。また、更に、LCD表示やI2C入出力などの、組込みマイコンに必要となる処理をほぼ全て加え、完成形の形にしたのが、「メニュードリブンテンプレート」です。
インタフェースRAMのメリットは明らかです。例を示します。上記テンプレートに、スイッチに応じてブザ音発生処理を追加するとします。
スイッチ入力処理で、スイッチ入力結果をRAMへ出力します。ブザ音発生処理は、このRAMを参照し、音を発生させます。RAMインタフェースを使えば、どちらの処理もRAMで動作が分離され、そのRAM値により処理が正しく動作しているかが解ります。RAM値は、デバッガで変更やモニタもできますので、処理単体デバッグが簡単です。仮に、片方の処理が未完成であっても、RAM設定/モニタで結合デバッグもできます。
ブザ音処理の追加前と後で、スイッチ入力処理には影響が無いことも判ります。つまり、処理の部品化も可能です。
割込み処理は、優先順位に注意が必要です。テンプレートは、時分割ループ生成のために、SysTickタイマと呼ばれるタイマを使います(その名が示すように、システムのチックタック動作タイマ)。SysTickタイマの割込み優先順位は高く、サンプルで割込み処理が使われても、このSysTickタイマよりは低い優先順位です。
注意が必要なのは、複数サンプルの割込み処理をテンプレートへ追加する場合です。割込みには、デフォルト優先順位があります。このデフォルト順位で処理できるか、変更が必要かの検討が必要です。
デフォルト順位でOKなら、そのままテンプレートへ流用します。変更する場合は、マイコンに依存しますので、データシートを参照して順位を変更してください。
RL78/G1xタイマの検討と優先順位設定に関しては、過去のブログ記事を参照してください。
テンプレートですから、部品化した関数の挿入でアプリが完成します。また、部品の再利用を容易にするため、部品単位でファイル化します。複数の割込み処理は、優先順位に注意し、必要なら設定を変更します。関数間は、RAMで切り離し、関数単位でのデバッグを容易にします。
テンプレートを使うと、開発者毎に異なるアプリ開発手法が統一でき、また、処理がファイル単位で部品化できますので、流用性や可読性も良くなります。
前半、後半と長い説明になりましたが、マイコンテンプレートを使ったアプリケーション開発手順を示しました。シンプルテンプレート、メニュードリブンテンプレートが付属した、4種類のマイコンテンプレートを、各1000円(税込)で販売中です。
IoT向き省電力マイコンのLPC824は、2015/04Eに加わる予定です。
テンプレート名 (MCUコア) |
対応マイコン (ベンダ) |
評価ボード:動作確認ハードウエア | ブログタグ |
RL78/G1xテンプレート v3.1 (RL78-S2/S3) |
RL78/G13 RL78/G14 (Runesas) |
・BB-RL78G13-64(推薦ボード) ・G13スタータキット ・G14スタータキット ・QB-R5F100LE-TB ・QB-R5F104LE-TB |
RL78/G13 RL78/G14 |
LPC8xxテンプレート v2.1 (Cortex-M0+) |
LPC812 LPC824 (NXP) |
・LPCXpressoLPC812 + Baseboard ・LPCXpresso824-MAX + Baseboard |
LPC812 LPC824 |
LPC111xテンプレート v1.1 (Cortex-M0) |
LPC1114 LPC1115 (NXP) |
LPCXpressoLPC1114 + Baseboard | LPC1114 |
Kinetis Eテンプレート v1.1 (Cortex-M0+) |
Kinetis E (Freescale) |
FRDM-KE02Z40M | Kinetis E |
テンプレートソースをご覧になれば、文書で示したものよりも、より直接的にテンプレートの処理内容がご理解いただけると思います。
また、テンプレート本体とサンプルソフト流用部分のソース間には、5行以上のスペースを入れ、視覚的にもテンプレートと流用部分の切れ目が判る工夫をしています。
サンプルソフト流用部分は、オリジナルの英語コメントですが、テンプレート本体は、日本語コメントで(冗長に?)説明を加えています。
概要と仕様の説明資料は、マイコンテンプレートサイトから無料ダウンロードもできます。
テンプレートは、処理が何もない時は、Sleepする消費電力低減機能や、WDT:ウオッチドックタイマ処理、テンプレート本体の暴走監視機能など、アプリとして最低限必要な機能も実装済みです。
零から始めるアプリ開発に比べ、実務に直結した弊社マイコンテンプレートを活用して頂ければ、マイコンの習得と、可読性、流用性に優れたアプリケーションの早期開発ができます。是非、ご検討ください。
サンプルソフト:R01AN0451JJ0301は、スイッチ入力処理にチャタリング対応がありません。マイコンの入力処理には、チャタリングに対するノイズ対策は必須です。ソフトウエア対策として、複数回スキャンし、入力が同値の時に、値を確定する方法が一般的です。弊社シンプル/メニュードリブンテンプレートは、この方法を採用しております。
この処理には、何回一致を判定するか、スキャンタイミングはどの程度か、の2パラメタがあり、使用スイッチに応じてこのパラメタを決める必要があります。弊社では、2回一致、10msタイミングで、タクトスイッチ入力処理を行っています。
テンプレートでご利用の実際のスイッチに応じて、これらパラメタ、特に回数のパラメタを変更すると効果が高いと思います。
マイコンのアプリケーション開発方法として、マイコンテンプレートを使った方法を前後2回に分けて示します。
テンプレートを使えば、マイコン習得と可読性、流用性に優れたアプリが素早く開発でき、開発者毎に異なる開発手法も統一できます。
前半は、アプリケーション開発手順1~3を解説し、次回、後半で手順4を解説します。
動くアプリ完成までの手順を示します。
以上で、アプリが完成します。
マイコンの場合、組込み後、チューニングが必要な場合もありますが、アプリ完成後の処理ですし、アプリにも依存しますので、先ずは、動くアプリ完成までの手順を示しました。
RAD: Rapid Application Developmentツールを使う場合は、2のサンプルソフトをサイトから探す代わりにRADツールを使ってサンプルソフトを生成すると考えれば良く、同じ手順となります。
対象動作は、スイッチ入力処理、LED出力処理などできるだけ細かく分割し、部品化することがポイントです。
最後に、これら部品を組み合わせて1つのアプリケーションにします。部品毎にサンプルソフトを見つけ、デバッグすれば、バグもこの部品内に閉じ込めることができます。また、部品単位の流用性も高まります。
手順1~3で重要なことは、「対象動作の明確化」と、「サンプルソフトの分離読解」です。分離解読とは、初期設定とループ処理を明確に分離して解読することで、処理内容は、大体把握すれば十分です(後述サンプルソフトの読み方参照)。
上級者は、多くのサンプルソフトを経験しているので、的確に対象動作を絞り込め、分離解読が、早く深い点が違います。さらに、上級者は、個人的なテンプレートを既に持っているので、サンプルの流用、組込みとデバッグが効率よくできます。
弊社マイコンテンプレートを活用すると、
ができますので、上級者との差分を誰でも補えます。
何回かサンプルソフトを読むと、より明確な対象動作が選べるようになります。逆に、サンプルソフトが見当たらない時は、絞り込みが不完全、または対象が間違っていると言えます。初めに全てのサンプルソフトをざっと眺めた後で、アプリをイメージするのも良い方法です。
但し、スイッチ入力処理は、注意が必要です。スイッチには、チャタリング対策が必須です。この対策は2つあり、1つがハードウエア、もう1つがソフトウエアの対策です。両者併用もあります。
個人的には、ハード対策の有無に関係なく、ソフト対策は必要と考えます。弊社シンプルテンプレートでチャタリング対策済みのスイッチ入力処理を添付しているのは、この理由からです。
チャタリングは、使用するスイッチでタイミングが異なりますので、対策済みサンプルをベンダは提供しにくいと思います。チャタリングに関しては、以前のブログ記事や、ネット検索すると、多くの情報がありますので、そちらも参照して下さい。
サンプルソフトは、「木を見て森を見ず」にならないように、細かいことは気(木?)にせずに、初期設定とループ処理の2つに分けて読みます。
初期設定は、コメントに注意し、周辺回路の使用方法が開発するアプリと同じがどうかを見極めます。同じなら、丸ごとそのままテンプレートへ流用します。異なる場合は、データシートなどで変更箇所を特定し、実際にサンプルに変更を加え、結果が正しく動作することを確認しておきます。
ループ処理は、無限ループで処理するものと、割込みで処理するものに大別できます。割込み処理は、基本的にそのままテンプレートへ流用します。
無限ループ処理は、何をトリガにアプリを起動しているかが解れば十分です。多くの場合、フラグポーリングやカウンタなどです。この起動トリガで関数化し、テンプレートへ組込みます。
よほどの上級者やツワモノを除けば、アプリ開発は、サンプルソフトの流用が王道です。敢えてリスクをおかしてサンプルソフト以外の方法でマイコンを動かす必要はないからです。ベンダサンプルは、典型的動作ですので、先のスイッチ処理の例外を除くと、流用可能なものが多いのも理由です。
但し、サンンプソフトは、1個の周辺回路の動作説明が主なので、実際のアプリで必要となる複数の周辺回路を組合せる記述はありません。これが、開発者毎に手法が異なる原因です。弊社テンプレートは、これに対して1つの解を提供します。
弊社マイコンテンプレートは、サンプル処理の流用が簡単で、複数サンプル処理を組込むのも容易です。従って、サンプルを活かした動くアプリの早期開発ができます。また、本テンプレートを用いれば、開発者毎で異なる開発手法を統一でき、可読性や流用性も高まります。次回、後半で詳細を説明します。
次回は、手順4の部品化したサンプルソフトのテンプレートへの組込みとデバッグ、複数サンプルが同時に動くしくみを説明します。
アプリケーション開発で最も厄介なのは、実はチューニングです。
アプリに最適なマイコンを選定していれば、一部アセンブラ化などのチューニングなしで動くアプリができます。しかし、この選定失敗、もしくは、選定マイコンが古いのにアプリ追加などで、性能を絞り出す場合などの、最後の手段としてチューニングもありえます。
但し、苦労してチューニングしても、トラブルフリーの経験がないので、絶対に避けるべきだと思います。結局、高性能マイコンへの置換えという結果になります。
では、マイコン性能はどの程度が正解でしょうか? マイコンでシステムを制御する場合、通常アプリ以外の処理ソフト、例えば、ハード/ソフトの出荷時のセルフテストや、入力が一定時間ない時のデモンストレーション表示なども必要です(自動販売機などでおなじみですね)。ここでは、これらソフトを「システム運用ソフト」と呼びます。
これらシステム運用ソフトは、通常アプリ動作中には、並列処理をしませんので、消費するのはROM/RAMです。ソフト開発者は、ROM/RAM量を見積もる時に、これら通常動作には現れないシステム運用ソフトも考慮する必要があります。経験では、通常アプリと同程度、つまりトータル2倍のROM/RAMは必要と思います。
また、必要となるマイコン性能は、通常アプリと、上の例で示したようなシステム運用ソフトの両方で考慮すべきです。処理能力に十分な余裕がないと、再現性のない取れにくいバグ発生のリスクも高まります。この処理能力も、2倍程度の余裕が必要だと思います。
ハードウエア設計の「ディレーティング50%」と同様、2倍の余裕がマイコン設計には必要と思います。
RL78/G1xの売れ筋が一目で解るルネサスのサイトが公開されました。1年ごとの集計結果で、ルネサスのお薦めマイコンとして「STAR Product」マークが製品名とともに表示されます。
弊社RL78/G1xマイコンテンプレートのRL78/G13とRL78/G14、どちらもこのルネサスお薦めマイコンです。
GROUP | P/N | PACKAGE | CODE FLASH | DATA FLASH | SRAM |
RL78/G10 | R5F10Y16ASP#V0 | 10-LSSOP 225mil 0.65p | 2KB | – | 256B |
RL78/G12 | R5F1026AASP#V0 | 20-LSSOP 225mil 0.65p | 16KB | 2KB | 1.5KB |
R5F1027AANA#U0 | 24-HWQFN 4mm□ 0.50p | 16KB | 2KB | 1.5KB | |
RL78/G13 | R5F100ACASP#V0 | 30-LSSOP 300mil 0.65p | 32KB | 4KB | 2KB |
R5F100GEAFB#V0 | 48-LFQFP 7mm□ 0.50p | 64KB | 4KB | 4KB | |
R5F100LEAFB#V0 | 64-LFQFP 10mm□ 0.50p | 64KB | 4KB | 4KB | |
R5F100LGAFB#V0 | 64-LFQFP 10mm□ 0.50p | 128KB | 8KB | 12KB | |
R5F100MJAFB#V0 | 80-LFQFP 12mm□ 0.50p | 256KB | 8KB | 20KB | |
R5F100PJAFB#V0 | 100-LFQFP 14mm□ 0.50p | 256KB | 8KB | 20KB | |
RL78/G14 | R5F104BCAFP#V0 | 32-LFQFP 7mm□ 0.80p | 32KB | 4KB | 4KB |
R5F104FFAFP#V0 | 44-LFQFP 10mm□ 0.80p | 96KB | 8KB | 12KB | |
R5F104LGAFA#V0 | 64-LFQFP 12mm□ 0.65p | 128KB | 8KB | 16KB | |
R5F104PJAFB#V0M | 100-LQFP 14mm□ 0.50p | 256KB | 8KB | 24KB | |
RL78/L13 | R5F10WLGAFB#30 | 64-LFQFP 10mm□ 0.50p | 128KB | 4KB | 8KB |
R5F10WMGAFB#30 | 80-LFQFP 12mm□ 0.50p | 128KB | 4KB | 8KB |
特に、RL78/G13のコードフラッシュ32~64KB製品や、RL78/G14のコードフラッシュ32KB製品をご利用の方は、RL78/G1xテンプレートも合わせてご検討ください。
RL78/G1xテンプレートをお使い頂ければ、RL78/G1x習得容易で、アプリケーションの早期開発ができます。もちろん、容量が大きいコードフラッシュ製品でも適用可能です。
スイッチマトリクス:SWMを持つLPC8xxは、入出力ポートとマイコン周辺回路信号を柔軟に設定できる特徴があります。しかし、デバッグに重要なSWDIO/SWCLK信号の誤ったポート割付けなどが原因で、下図に示すLPCXpresso IDEデバッガと接続できないエラーが発生します。今回は、この対処方法を示します。
トラ技2014年2月号p85に、LPC810の同様問題への対処方法が掲載されています。SWMをもつマイコン特有の問題かもしれません。
私の場合は、SWMとは関係のないLPCXpresso824-MAXのシステムクロック周波数を変更するプログラムでこの現象が発生しました。このエラーが発生すると、mbedプログラミングもできなくなります。因みに、mbedのファームウエアは、最新版Version0221 2015/03/03です。回復するまでは、LPC824への変更ができない状態となります。
この状態からの回復手順は、以下です。
今回の原因が、SWMに起因するか、または、main実行前に設定すべきシステムクロック周波数変更を、誤ってmain実行後に行ったことに起因するかは不明ですが、同じプログラムで現象が再現しますし、上記手順で回復しました。
LPCXpresso824-MAXとLPCXpresso IDEのデバッガ接続ができない時は、ご参考ください。
今回は、次期マイコンテンプレートのLPCXpresso824-MAXボードを、無償IDEのLPCXpressoで動作させる方法を示します。無償IDEでも、ROM 256KBまで開発できますので、LPC8xxには十分です。
LPCXpressoのインストールからアクティベーションの方法などは、トラ技サイトを参照してください。ここでは、LPCXpresso824-MAXボードとインスト済みのLPCXpresso IDEの設定を解説します。
LPCXpresso824-MAXボードは、mbed動作がデフォルトです。つまり、ボードとパソコンを接続すると、USBメモリとして認識され、このUSBメモリへmbedネット環境で作成したオブジェクトをダウンロードしさえすれば、LPC824が動きます。この時に必要なツールは、ネットアクセスのブラウザのみです。
このように手軽にネットでオブジェクトが作成できるのがmbedの利点です。しかし、デバッグ環境としては、今後の進展を待つ必要があります。効率的なデバッグを行うには、IDEデバッガは必須です。
ボードユーザマニュアルUM108304~5章にも方法が書かれていますが、要点を示します。この手順で、オブジェクト作成とLPCXpresso IDEデバッグができるローカル環境が整います。
1.mbed-windows-serial-portドライバをWindowsパソコンへインストール
2.LPCOpenのLPC824用サンプルプロジェクトv2.15 Release Date:01/08/2015をダウンロードし、LPCXpressoへインポート
※2015年3月最新版LPCXpresso v7.6.2_326をインスト済みならば、C:\nxp\LPCXpresso_7.6.2_326\lpcxpresso\Examples\LPCOpenフォルダ内に同じサンプルがあるので、ここからインポートしても良い。
3.periph_hello_worldプロジェクトをビルドし、デバッガ起動。起動時、下図CMSIS-DAP認識要
4.Tera Termなどのシリアル通信ソフトを1でインストしたmbed Serial Portと接続(115200bps, 8-Non-1)
5.デバッガでResume (F8)実行。シリアル通信ソフトのTerm画面にHello World!が2秒毎に表示
この時、ボードCMSIS-DAP LED緑が点灯し、シリアル通信時にUSB Com LED青が点灯します。これがCMSIS-DAP (Cortex Microcontroller Software Interface Standard – Debug Access Port) デバッグ状態のボードです。CMSIS-DAP認識は、プロジェクトデバッグ初回のみで、次回起動時はありません。
2でインポートしたLPCOpenは、LPCXpresso以外のKeilやIAR開発環境でも同じAPIを提供するなど、適用範囲が広く、可読性も優れたライブラリです。また、3で使用したperiph_hello_world プロジェクトを含め、LPC824周辺回路30種以上のサンプルソフトも付属しています。
mbed環境も多くのサンプルソフトがありますが、NXPのLPCOpenサンプルソフトは高品質で、NXP Forumサイトで情報共有もできます。
販売中のLPC812用テンプレートと同じく、LPC824用テンプレートもこのLPCOpenライブラリを使って開発します。
LPCXpresso812やLPCXpresso1114/5ボードは、パソコンとの接続に一般的なUSBケーブルを使います。しかし、LPCXpresso824-MAXの接続には、スマートフォンの充電、データ転送に使われるMicro-USBケーブルが必要です。このケーブルは、ボードに付属していませんので別途必要です。
2でインポートした最新のLPCOpenライブラリv2.15は、LPCXpresso v7.5.0以降で動作確認されています。古い版使用時は、v7.5.0以降へ更新が必要です。
※私のパソコンのみの可能性もありますが、Windows8.1(無印)でLPCOpenライブラリをビルドすると本来発生しないハズのエラーが発生します(互換モード変更でも同じ)。Windows8.1ProとWindows7ではこの問題は発生しません(いずれも64bit版)。同じ現象の方は、Windows8.1 ProかWindows7のご使用をお勧めします。
ルネサスが、2015年3月11日~3月31日まで、RL78/G13 Stick スターターキットを、抽選で100名様にプレゼント中です。
応募は、期間中に「My Renesas」に新規登録、または登録情報の更新でも可能です。
RL78/G13 スタータキットは、弊社マイコンテンプレートでもサポートしています。プレゼントをゲットできた方も、残念ながらゲットできなかった方も、是非RL78/G1xテンプレートもご検討ください。
マイコンテンプレート概要と仕様を説明したページは、ダウンロードができます。現在RL78/G1xを含め4種類のマイコンに対応したテンプレートを各1000円(税込)で販売中です。
RL78/G13 Stick(RL78/G13 Promotion Boardとも呼ばれた)は、本ブログで最も記載回数が多い対象です。RL78/G13や、RL78/G14をページ右上のSearchに入力すると、関連記事が一覧できます。
次期マイコンテンプレートの3候補マイコン、NXP LPC824、Freescale Kinetis L、ルネサスRL78/I1Dのうち、LPC824とmX-BaseBoardとの接続方法について検討します。
2015年1月~2月の集中調査の結果、IoT向きのマイコンは、以下の要件を持ちます。
・バッテリ駆動可能な動作電圧(1.8~3.6V)
・12ビットADC
・DMA/DTCと省電力動作モード
・低価格(¥500以下目安)
3マイコンは、いずれも要件を満たしており、2015年3月現在のマイコンと評価ボードの価格は下記です。
マイコン (パッケージ) |
価格(入手先) | 評価ボード(価格、入手先) |
LPC824 (32HVQFN) | ¥259(DigiKey) | LPCXpresso824-MAX(¥2800、秋月電子) |
Kinetis L04 (48LQFP) | ¥220(チップワン) | FRDM-KL05Z (¥1747、DigiKey) |
RL78/I1D (48LQFP) | ¥430(マルツオンライン) | RTE5117GC0TGB00000R(価格不明) |
ルネサスRL78/I1D評価ボードは、現在、個人入手できませんので、価格不明です。
NXPとFreescaleは、合併の結果現状のARM Cortex-M0+マイコンの供給状況が変わる可能性もあり、リスクが少ないRL78/I1Dから着手したいのですが、上記のように評価ボードが入手不可で、同じS3コアのRL78/G14ともピンコンパチではないため基板流用もできません。
そこで、発売日が新しいLPC824から省電力マイコンテンプレート開発に着手します。CPUボードと周辺回路が実装済みのmX-Base Board(後述)の両方が、秋月電子から簡単に入手できることも理由です。
LPCXpresso824-MAXは、mbedとしても動作するCPUボードです。販売中テンプレートのLPC812やLPC1114では、制御系ボードとするため、mX-Base Boardと接続して動作させましたので、LPC824でもこのmX-Base Boardを使います。
LPCXpresso824-MAXは、BaseBoardとArduinoの両方のコネクタを持っています。しかし、BaseBoardコネクタを使う場合、mX-Base BoardのEthernetコネクタが接触して直接装着ができません。
そこで、もう一方のArduinoコネクタを使いmX-Base Boardと下図のように配線します。
これで、BaseBoard実装のLCD、リセットボタン、外部SW、ブザー、ポテンショメータ、EEPROMをLPCXpresso824-MAXから制御できます。
従来LPC8xxテンプレートV2.1(2015/01/20更新)に、新たにこのLPCXpresso824-MAX向けの省電力テンプレートを追加し、合わせてLPC8xxテンプレートV3とする予定です。
これにより、NXPのLPC800シリーズマイコンへの弊社LPC8xxテンプレート対応は下表となります。
対象マイコン | 推薦制御系ボード | 対応テンプレート |
LPC824 | LPCXpresso824-MAX + mX Base Board | LPC82xテンプレート(2015/04発売予定) ・シンプルテンプレート ・メニュードリブンテンプレート ・省電力テンプレート |
LPC822 | ||
LPC812 | LPCXpresso812 + mX Base Board | LPC81xテンプレート(2015/01/20 V2.1) ・シンプルテンプレート ・メニュードリブンテンプレート |
LPC811 | ||
LPC810 |
※シンプル/メニュードリブン/省電力テンプレートとは、弊社テンプレートの適用例を示すためのアプリケーションソフトです。
例えば、シンプルテンプレートは、テンプレートにチャタリング対応済みのSW入力とLED出力の2処理を追加した例で、テンプレートの所定位置に、所望処理を追加すれば、だれでも簡単にアプリケーションが完成することを示す目的で作成しております。詳細は、マイコンテンプレートサイトをご覧ください。
NXPとFreescaleの合併、予想さえしなかったことです。激動するマイコン世界ですが、現在のマイコンテンプレート状況を整理し、次期テンプレートのターゲットとなるマイコンについて考えます。
以前紹介した入手性が良いマイコンが一目で解る、チップワンストップサイトのマイコン/開発ツール検索を今回も利用させていただきます。サイト中央のマイコン/ボードタグをクリックすると、8/16/32bit処理ビットとベンダ毎に分けられたマイコンが表示されます。
一覧表が以下です。緑色がARM仕様のマイコン、青色がベンダ仕様マイコン、赤囲みがテンプレート対応マイコンで、現在4種のテンプレートを1000円(税込)で販売中です。
表中NXPはARM Cortex-M0のみですが、Cortex-M0+のLPC8xxも供給しています。
32bitマイコンの主流は、緑のARMマイコンです。表内のARMコアの特徴をまとめたものが下表です。
ARMコア | 名称 | 概要 |
Cortex-Mx | エンベデッド プロセサ | 32bitの高い処理効率を維持し、業界最先端の動作と最小限のスリープ/ダイナミック電力、最小限のダイ面積を目指し設計。以下の4サブ構成。 ・Cortex-M0:低消費電力マイコン ・Cortex-M0+:超低消費電力マイコン ・Cortex-M3:汎用マイコン ・Cortex-M4:デジタル信号制御マイコン |
Cortex-Ax | アプリケーション プロセサ | 高度なオペレーティングシステム:OSが実行可能なメモリ管理ユニットMMU搭載マイコン |
ARMx | Classic プロセサ | ARM11、ARM9、ARM7などコスト効果の高いマイコン |
32bitマイコンのテンプレート対象は、Cortex-M0/M0+です。
Cortex-M3クラスになると、高価なうえに動作周波数も70MHz以上でControlよりもComputeが得意になります。IoT向けPCのEdisonやRaspberry Pi 2(Cortex-A7搭載)と競合する可能性もあります。Cortex-M0/M0+は、16bitマイコン市場の置換えも視野に入れたマイコンですので、今後の普及も期待できます。
16bitマイコンは、ルネサスの超低消費電力マイコンRL78に、RL78/G1xテンプレートを販売中です。
4種テンプレートに付記した動作電圧からみえるのは、そのマイコンの想定アプリケーションです。
FreescaleのKinetis Eは、5V耐性やノイズ耐力を高めたマイコンです。また、NXPのLPC8xxは、バッテリ駆動ができ、小ピンですがスイッチマトリクスによりピン配置の自由度が高く、LPC111xも同じくバッテリ駆動可能で、第3世代でアクティブ消費電流が116uA/MHzまで低下したマイコンです。ルネサスのRL78は、広い動作電圧がセースルポイントのマイコンです。
以上が現状マイコンテンプレートの状況です。「16bitのHigh Performanceマイコンから32bit Entry+alphaのマイコンで、容易に入手できメジャーなもの」へテンプレートを提供し、「対象マイコンの速習と早期アプリ開発」が誰でもできます。テンプレートの詳細は、マイコンテンプレートサイトを参照してください。
開発アプリケーションに適したマイコンを選ぶこと、これが最も重要です。汎用マイコンでも、想定した応用の範囲内で能力を発揮するように設計されているからです。
次期テンプレートは、よりアプリケーション指向の強いマイコンを選びます。当りハズレはありますが、当たればより多くのテンプレートが売れる可能性があるからです。
プログ記載の2015年1月~2月に集中して最新マイコンドレンドを分析した結果、各ベンダは、巨大マーケットを持つ「IoTアプリと車載アプリ」へのマイコン開発に力点を置きつつあることが解りました。特に車載マイコンでのこの動きの結果、NXPとFreescaleの合併となったとも言えるでしょう。
次期テンプレートもこのドレンド:IoTアプリ向けの超低消費電力マイコンに開発します。例を挙げると、ARM Cortex-M0/M0+コアでは、より低い消費電力、高エネルギー効率と低コストを狙ったFreescaleのKinetis LシリーズやNXPのLPC82x、ルネサスRL78:S3コアでは、RL78/I1Dなどです。
これらには、従来テンプレートに添付したシンプル/メニュードリブンテンプレートに加え、IoTアプリ開発の重要なポイントになる省電力テンプレート(仮称)も加える予定です。
IntelシニアフェローStephen Pawlowski氏によると、「これからの10年は、エレクトロニクスのイノベーションの歴史で最もエキサイティングな時代になるだろう。」だそうです。弊社マイコンテンプレートが、このエキサイティングな時代に活躍する技術者/開発者の方へ、少しでもお役立てれば幸いです。