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