最新マイコンの特徴を活かすmain関数とは?

RL78マイコン,MCU:マイコン

最新マイコンには、20MHzを超える高速動作と消費電力を抑えた2つの動作モード、このモードを効率的に切り替える仕組みを持ちます。この特徴を活かすメイン関数をRL78/G13G14で示します

最新マイコンの特徴を活かすメイン関数

ポイントは、メイン関数の無限ループ内で、高速動作後、低消費電力モードへモード切替することです。低消費電力モードからの復帰は、タイマ割込みや外部割込みなどの割込み処理で行います。

図1 最新マイコンの特徴を活かすmain関数
図1 最新マイコンの特徴を活かすmain関数

 

低消費電力モード中は、電力消費が低下しますので、このモードの時間が長ければ長いほど、マイコントータルの消費電力は下がります。このため、最新マイコンには、高速動作モードと低消費電力モード、効率的なモード切換え機能の3つが備わっています。

高速動作モード

RL78/G13G14は、最大32MHz、世界定番のCortex-M0マイコンは、最大50MHzなど最新マイコンの動作速度は、簡単に入手できる20MHz発振器を大きく超えるものがほとんどです。また、動作電圧範囲も1.8Vから5.5Vまでと広範囲で、マイコン以外のデジタルデバイスとの接続トレランスは良好です。

但し、RL78マイコンは、供給電圧:VDDによりCPUの最大速度が異なるので、図2のコード生成時の動作モード設定には、注意が必要です。図3から、RL78/G13G14は、2.7(V)VDD5.5(V)範囲では、最大32MHzの高速メイン・モードで動作しますが、1.6(V)VDD1.8(V)時は、4MHz動作が最大となります。

どの動作モードに設定してもRL78マイコンは、高速処理で、かつ、高速処理中でも電力消費は低いことが判ります。

図2 コード生成の動作モード設定画面
図2 コード生成の動作モード設定画面

 

図3 RL78/G13,G14の動作電圧と動作電流
図3 RL78/G13,G14の動作電圧と動作電流 (ルネサスエレのRL78ファミリマイコン資料より抜粋)

低消費電力モード

最新マイコンには、通常動作と別に低消費電力モードが必ずあります。機種によりスリープやHALTなど、呼び名が異なりますが、いずれもCPUや一部の内臓周辺機能へのクロック供給を停止し、電流消費を低減させるモードです。

RL78/G13G14では、図4HALTに相当する低消費電力モードは、通常動作と組み合わせて使うことが重要です。つまり、一般的なメイン無限ループ内の処理を、図1に示したように、割込み起動の通常処理後は、ループを無駄に回さず、低消費電力へモードを切替えることで、本来の組込みマイコン高速処理が実現できるのです。

図4  RL78/G13、G14の動作モード
図4 RL78/G13、G14の動作モード(RL78ファミリマイコン資料より抜粋)

高速なモード切換え

RL78/G13G14には、割込みバンクが4面あることや、高速に関数を呼び出すcalltなどの仕組みがあり、割込み処理のオーバーヘッドを少なくすることができます。一方、Cortex-M0マイコンには、モード切換えを高速にする専用回路:NVIC (Nested Vectored Interrupt Controller)が実装されています。

RL78/G13G14実務向けスケルトンテンプレート

最新マイコン機能は上手く使わないと、実務向けプログラミングはできません。マニュアルには、これら機能の説明はあります。しかし、その背景にある使い方については、記述されていません。使い方は、ユーザマターだからです。背景理解度が低い者には、宝の持ち腐れになりかねません。

また、サンプルプログラムや、チュートリアルで紹介される処理は、内容理解に重点をおいた記述になっています。中級者以上ならば、これらをヒントにアレンジし、最新マイコンの宝を駆使したプログラミングができます。

今回はメイン関数のみを示しました。本ブログ読者対象である、初心~中級者向けに、近日中に、実務に使えるRL78/G13G14向けの実務向けスケルトンテンプレートをフリーウエアで公開する予定です。組込みソフトのフリーウエアはあまり見かけませんが、このテンプレートは、サンプルプログラムなどで掲載された関数を、手順に沿って簡単にテンプレートに組み込むことができるものです。ご期待ください。