タイマ機能と外部信号割り込み のテクニック

特集*付録基板で始めるマイコン入門
第9章
簡易パルス・ジェネレータと
周波数カウンタを作りながら学ぶ
タイマ機能と外部信号割り込み
のテクニック
島田 義人
Yoshihito Shimada
本章では,H8/3694F マイコンのタイマ機能や外部
信号割り込みのテクニックを学びます.
タイマを使うと周期的なパルス信号を出力したり,
このままでは,モータの回転をなめらかに制御するこ
とはできません.
しかし,この H と L をすばやく切り替えること
デューティ比を変化させた信号を発生させることがで
きます.また,外部信号割り込みを使って一定期間に
で,中間量の電流が流れているときと同じ状態を作り
出すことができます.このとき,図 1 に示すように,
入力されるパルス数をカウントすることで,周波数カ
ウンタを作ることができます.
1 周期に対する H レベルの時間比率(デューティ比)を
変えることでモータの駆動電流の平均値が変わります.
これが PWM(Pulse Width Modulation)信号です.
PWM 信号を出力する方法
● タイマ W のしくみ
● PWM 信号とは
電池駆動用の小型 DC モータの回転速度を変える方
PWM 信号は,I/O ポートの出力レベルを H と L
に交互に切り替える方法でも生成できますが,タイマ
法を考えてみましょう.
一般的な方法として,電源電圧を変化させることが
W を使うともっと簡単に出力できます.タイマ W を
PWM モードに設定したときのブロック図を図 2 に示
考えられます.例えば,つなぐ電池の本数を変えれば,
します.
1 本(1.5 V)よりも 2 本(3 V)のほうがモータは速く回
り,2 本(3 V)よりも 3 本(4.5 V)のほうがより速く回
システム・クロック
(φ)
CPU を動作させるための基準クロックです.付録
るというわけです.
ところで,H8/3694F マイコンの I/O ポートは,D −
マイコン基板には,20 MHz のセラミック発振子が付
いています.
A コンバータの機能をもっておらず,H レベル(5 V)
プリスケーラ S
(PSS)
と L レベル(0 V)の二つの状態しか出力できません.
システム・クロックφを入力とする 13 ビットのカ
75%
100%
75%
デューティ比
0.75
50%
100%
デューティ比
0.5
50%
モータ駆動
電流の平均値
25%
100%
デューティ比
0.25
25%
図 1 PWM 波形と電流の平均
2004 年 4 月号
197
システム・クロック
φ=20MHz
プリスケーラS(PSS)
(φ/8,φ/4,φ/2,φ)
TCNTW
入力クロック
設定部
タイマW
PWMモード機能
設定部
φ /4
(5MHz)
カウンタ・
スタート
タイマ・モード・
レジスタW
(TMRW)
GRA
φ /4
選択
セレクタ
比較回路
GRD
比較回路
(0xC350)
(0x0000〜0xC350)
PWM周期設定
PWM出力設定
タイマ・コントロール・
レジスタW
(TCRW)
タイマ・カウンタ
(TCNT)
PWM H 幅設定
PWM出力端子
制御回路
初期出力レベル設定
図2
タイマ W の PWM モードのブロック図
PWM出力
(FTIOD端子)
レジスタ名(アドレス):TMRW
(0xFF80)
ビット
7
6
5
4
3
ビット名
CTS
―
―
初期値
R/W
0
R/W
1
―
BUFEB BUFEA
0
R/W
0
R/W
2
1
0
PWMD PWMC PWMB
1
―
0
R/W
0
R/W
0
R/W
PWMモードC
[FTIOC端子]
PWMモードD
PWMモードB
[FTIOD端子] [FTIOB端子]
出力モード選択
0:通常のアウトプット・コンペア出力
1:PWM出力
GRCの機能選択
バッファ動作A 0:インプット・キャプチャ/アウトプット・コンペア・レジスタとして動作
1:GRAのバッファ・レジスタとして動作
GRDの機能選択
バッファ動作B 0:インプット・キャプチャ/アウトプット・コンペア・レジスタとして動作
1:GRBのバッファ・レジスタとして動作
0:TNCTカウント動作停止
カウンタ・スタート
1:TNCTカウント動作実施
図 3 タイマ・モード・レジスタ
(TMRW)のビット構成
ウンタで,1 サイクルごとにカウント・アップします.
タイマ・カウンタ(TCNT)
16 ビットのリード/ライト可能なアップ・カウンタ
が 0 のとき TCNT はカウント動作を停止し, 1 のと
きカウント動作を行います.PWM モード D ビット
(PWMD)は,出力モードを選択するビットです.この
で,入力クロックによりカウント・アップされます.
ここでは,タイマ・カウンタにシステム・クロックの
ビットを 1 に選択すると PWM 出力モードになりま
す.
4 分周
(φ/4)を選択した例を示しています.
タイマ・コントロール・レジスタ W
(TCRW)
タイマ・モード・レジスタ W(TMRW)
タイマ・カウンタのスタート制御,FTIOB 〜
主な機能はタイマ・カウンタの入力クロックを選択
し,PWM 出力端子(FTIOA 〜 FTIOD)の初期出力値
FTIOD の出力モード切り替えを行います.図 3 にタ
イマ・モード・レジスタのビット構成を示します.
を設定します.図 4 にタイマ・コントロール・レジス
タのビット構成を示します.
CTS はカウンタ・スタート・ビットで,このビット
CCLR はカウンタ・クリアで,このビットが 1 のと
198
2004 年 4 月号