最新マイコンには、20MHz を超える高速動作と消費電力を抑えた2 つの動作モード、このモードを効率的に切り替える仕組みを持ちます。この特徴を活かすメイン関数を RL78/G13 、G14 で示します 。
最新マイコンの特徴を活かすメイン関数
ポイントは、メイン関数の無限ループ内で、高速動作後、低消費電力モードへモード切替 することです。低消費電力モードからの復帰は、タイマ割込みや外部割込みなどの割込み処理 で行います。
図1 最新マイコンの特徴を活かすmain関数
低消費電力モード中は、電力消費が低下しますので、このモードの時間が長ければ長いほど、マイコントータルの消費電力は下がります。このため、最新マイコンには、高速動作モードと低消費電力モード、効率的なモード切換え機能の3 つが備わっています。
高速動作モード
RL78/G13 やG14 は、最大32MHz 、世界定番のCortex-M0 マイコンは、最大50MHz など最新マイコンの動作速度は、簡単に入手できる20MHz 発振器を大きく超えるものがほとんどです。また、動作電圧範囲も1.8V から5.5V までと広範囲で、マイコン以外のデジタルデバイスとの接続トレランスは良好です。
但し、RL78 マイコンは、供給電圧:VDD によりCPU の最大速度が異なるので、図2 のコード生成時の動作モード設定には、注意が必要です。図3 から、RL78/G13 、G14 は、2.7(V) ≦VDD ≦5.5(V) 範囲では、最大32MHz の高速メイン・モードで動作しますが、1.6(V) ≦VDD ≦1.8(V) 時は、4MHz 動作が最大となります。
どの動作モードに設定してもRL78 マイコンは、高速処理で、かつ、高速処理中でも電力消費は低い ことが判ります。
図2 コード生成の動作モード設定画面
図3 RL78/G13,G14の動作電圧と動作電流 (ルネサスエレのRL78ファミリマイコン資料より抜粋)
低消費電力モード
最新マイコンには、通常動作と別に低消費電力モードが必ずあります。機種によりスリープやHALT など、呼び名が異なりますが、いずれもCPU や一部の内臓周辺機能へのクロック供給を停止し、電流消費を低減させるモードです。
RL78/G13 とG14 では、図4 のHALT に相当する低消費電力モードは、通常動作と組み合わせて使うことが重要です。つまり、一般的なメイン無限ループ内の処理を、図1 に示したように、割込み起動の通常処理後は、ループを無駄に回さず、低消費電力へモードを切替えることで、本来の組込みマイコン高速処理が実現 できるのです。
図4 RL78/G13、G14の動作モード(RL78ファミリマイコン資料より抜粋)
高速なモード切換え
RL78/G13 とG14 には、割込みバンクが4 面あることや、高速に関数を呼び出すcallt などの仕組みがあり、割込み処理のオーバーヘッドを少なくすることができます。一方、Cortex-M0 マイコンには、モード切換えを高速にする専用回路:NVIC (Nested Vectored Interrupt Controller) が実装されています。
RL78/G13 、G14 実務向けスケルトンテンプレート
最新マイコン機能は上手く使わないと、実務向けプログラミングはできません。マニュアルには、これら機能の説明はあります。しかし、その背景にある使い方については、記述されていません。使い方は、ユーザマターだからです。背景理解度が低い者には、宝の持ち腐れになりかねません。
また、サンプルプログラムや、チュートリアルで紹介される処理は、内容理解に重点をおいた記述になっています。中級者以上ならば、これらをヒントにアレンジし、最新マイコンの宝を駆使したプログラミングができます。
今回はメイン関数のみを示しました。本ブログ読者対象である、初心~中級者向けに、近日中に、実務に使える RL78/G13 、G14 向けの実務向けスケルトンテンプレートをフリーウエアで公開 する予定です。組込みソフトのフリーウエアはあまり見かけませんが、このテンプレートは、サンプルプログラムなどで掲載された関数を、手順に沿って簡単にテンプレートに組み込むことができるものです。ご期待ください。