APSハンズオン・ワークショップをご愛顧いただき誠にありがとうございます。
これから、「Arm® Cortex® -M搭載 ルネサスRAファミリを使ったマイコン入門」を始めます。本ワークショップで、題材にするのはルネサスエレクトロニクス社のRAマイコンです。
今回は、「汎用タイマ」です。

本ワークショップは次のシリーズ構成になっています。「開発ツール」「CPU(Cortex-M)」「汎用I/O」「割り込み」「汎用タイマ」「A-Dコンバータ」です。
今回は。「汎用タイマ」です。汎用タイマの機能、使い方を解説します。

本ハンズオンワークショップを実機にて体験いただくためには次の機材が必要となります。ルネサスエレクトロニクス社製EK-RA6M5 評価キットとPCです。
最初に、汎用タイマの基本機能を理解していただきます。
次に、PWMなどの汎用タイマの応用機能を理解していただきます。
最後に、実習を通して実際の汎用タイマの使い方を習得していただきます。

本ワークショップは「座学」と「実習」で構成されます。
座学では、汎用タイマの仕組みと使い方を解説し、実習では実際にマイコンに搭載されている汎用タイマを動作させてみます。

汎用タイマ(Timer)は、キッチン汎用タイマのように、時間が経過したことを知らせる機能です。入力された一定周期のクロック(連続パルス)を数えて、一定数になったら、何かしらのイベントを発生します。このような動作をカウント機能と呼びます。キッチン汎用タイマや時計機能は、カウント機能を使います。カウント機能を担うのは、その名の通りカウンタです。
カウンタの中は、カウントデータを保持するレジスタとその値に1を加算する加算器、または1を減算する減算器で構成されます。数値に1を加算することをインクリメントと言いますので、1を加算する加算器はインクリメンタと呼ばれます。また、1を減算することをデクリメントと言いますので、1を減算する減算器はデクリメンタと呼ばれます。
カウンタのレジスタの値は、クロックに同期して1を加算、または1を減算します。
従って カウンタ値はクロックの1周期ごとに加算、または減算されます。カウンタの値は、常時一致検出回路の値と比較されていて、一致したときにCPUへの割り込み、またはイベント信号を生成します。一方で、カウンタの初期値を設定するためのレジスタ(プリセットレジスタ)があります。
ここで、加算器を使った例を考えてみましょう。まずユーザーは、プリセットレジスタにカウンタの初期値を設定します。例えば100を設定するとしましょう。
その値は、カウンタのレジスタに移されて、クロックに同期してカウントを始めます。
一致検出回路に200を設定しておくと、カウンタの値が200になった時に割り込み、またはイベントが発生します。これは、200-100=100クロックを数えたことになり、1クロックの周期が1m秒だとすると100m秒を数えたことになります。
その後、再びプリセットレジスタの100がカウンタのレジスタに設定され、カウンタは再び100からカウントを始めます。この動作を繰り返すと、100m秒の定期的な割り込み、またはイベントを得ることができます。

汎用タイマの様々な応用機能には、イベントカウント機能、アウトプットコンペア、PWM、インプットキャプチャなどあります。ここでは、イベントカウンタについて説明します。その他の機能や特殊なタイマについてはAPS academy 汎用タイマ|第5回|マイコン入門(RA編)(URLは最後に記述)を読んでください。
イベントカウント機能は、外部から入力された信号の変化をイベントとしてとらえ、イベントが発生したら、カウンターをアップカウントしたり、ダウンカウントしたりするものです。下図では、外部信号の立上りと立下りをイベントとして、カウンターをアップまたはダウンします。最も簡単な用途は、周波数計測です。一定周期のイベントを数えることによって、イベント信号の周波数が測れます。
下図は理想的な動作を示していますが、実際はイベントを取り込むために数クロック必要で、イベント信号の変化からカウントまでに、時間差が生じます。

「応用実習Arm® Cortex® -M搭載 ルネサスRAファミリを使ったマイコン超入門【第5部】」( https://www.aps-web.jp/seminar/31656/ )で、タイマを使って0.5秒ごとにLEDを点滅させるプログラムを作りました。今回も同じプログラムを作りますが、汎用タイマの設定に関して、少し詳しく解説します。
まず、LEDを点滅させる手順を説明します。
最初にCPUは、プログラムに従ってI/Oポート(P006)のレジスタに「1」を書きます。
すると、PMOSからLEDに電源が供給されLEDは点灯します。
次に、CPUはレジスタに「0」を書きます。今度は、PMOSからLEDに電源が供給されなくなるのでLEDは消灯します。
これを繰り返すとLEDは点滅します。
この実習のポイントは汎用タイマの使い方です。
汎用タイマで点滅間隔(0.5秒)を作ります。
汎用タイマで0.5秒を測定して、割り込みを発生させるように設定します。
汎用タイマのカウントがスタートすると、その都度CPUが、レジスタの値を反転させてLEDを点滅させます。

ここからは、細かい作業に入ります。具体的手順はAPS academy 汎用タイマ|第5回|マイコン入門(RA編)
( 執筆中:12月中旬公開予定 )を見てください。細かい手順で詳細に説明しています。
具体的内容については、何枚かのスライドを掲載しておきますので、参考にしてください。







