4.2.2 チャネル別のコントロールレジスタ


各チャネル毎に用意されているコントロールレジスタには次のようなものがあります.

名称 (* はチャネル番号) 略称
(*はチャネル番号)
R/W 初期値 レジスタアドレス
CH0 CH1 CH2 CH3 CH4
タイマコントロールレジスタ* TCR* R/W H'80 H'FF64 H'FF6E H'FF78 H'FF82 H'FF92
タイマI/Oコントロールレジスタ* TIOR* R/W H'88 H'FF65 H'FF6F H'FF79 H'FF83 H'FF93
タイマインタラプトイネーブルレジスタ* TIER* R/W H'F8 H'FF66 H'FF70 H'FF7A H'FF84 H'FF94
タイマステータスレジスタ* TSR* R/(W) H'F8 H'FF67 H'FF71 H'FF7B H'FF85 H'FF95
タイマカウンタ*H TCNT*H R/W H'00 H'FF68 H'FF72 H'FF7C H'FF86 H'FF96
タイマカウンタ*L TCNT*L R/W H'00 H'FF69 H'FF73 H'FF7D H'FF87 H'FF97
ジェネラルレジスタA*H GRA*H R/W H'FF H'FF6A H'FF74 H'FF7E H'FF88 H'FF98
ジェネラルレジスタA*L GRA*L R/W H'FF H'FF6B H'FF75 H'FF7F H'FF89 H'FF99
ジェネラルレジスタB*H GRB*H R/W H'FF H'FF6C H'FF76 H'FF80 H'FF8A H'FF9A
ジェネラルレジスタB*L GRB*L R/W H'FF H'FF6D H'FF77 H'FF81 H'FF8B H'FF9B
バッファレジスタA*H BRA*H R/W H'FF - - - H'FF8C H'FF9C
バッファレジスタA*L BRA*L R/W H'FF - - - H'FF8D H'FF9D
バッファレジスタB*H BRB*H R/W H'FF - - - H'FF8E H'FF9E
バッファレジスタB*L BRB*L R/W H'FF - - - H'FF8F H'FF9F

このうち,本実験では,タイマの動作を設定するTCR(タイマコントロールレジスタ),カウント値を格納するTCNT(タイマカウンタ),動作を行うタイミングのカウント値を設定するジェネラルレジスタ(GRA,GRB)をよく使用します.ここでは,TCR(タイマコントロールレジスタ)について説明します.

TCR(タイマコントロールレジスタ:TCR0〜TCR4) (H'FFFF64,H'FFFF6E,H'FFFF78,H'FFFF82,H'FFFF92)

TCRでは,各チャネルのカウンタTCNTのクリア条件の設定や,カウント動作の条件を定めるクロックエッジの設定,カウント動作を行うクロック周波数を決めるためのタイマプリスケーラの設定を行います.

なお,CH0〜CH4のそれぞれにTCR0〜TCR4が対応しています
Bit 7 6 5 4 3 2 1 0
略称と機能 - CCLR1 CCLR0 CKEG1 CKEG0 TPSC2 TPSC1 TPSC0
リザーブビット カウントクリア クロックエッジ タイマプリスケーラ
初期値 1 0 0 0 0 0 0 0
本実験での設定 1 1 0 0 0 0 1 1

CCLR0,1(カウンタクリア):カウンタTCNTの値をクリアする条件を設定します.

説明 CCLR1 CCLR0
カウンタTCNTのクリアを禁止します. 0 0
TCNTとGRAの値のコンペアマッチ(一致)でTCNTをクリアします. 0 1
TCNTとGRBの値のコンペアマッチでTCNTをクリアします.(本実験ではこの設定を使用します) 1 0
同期動作中の他のTCNTのカウンタクリアに同期してTCNTをクリアします. 1 1
CKEG0,1(クロックエッジ):TCNTのカウントをクロックの立上がり/立下がり/両エッジのいずれで行うかを設定します.
説明 CKEG1 CKEG0
立上がりエッジでカウントします.(本実験ではこの設定を使用します) 0 0
立下がりエッジでカウントします. 0 1
立上がり/立下がりの両エッジでカウントします. 1 -
TPSC0〜2(タイマプロスケーラ):カウントするクロックを内部/外部クロックの選択,内部クロック周波数のプリスケーリングの是非などを設定します.
説明 TPSC2 TPSC1 TPSC0
内部クロック:φ(25MHz,0.04μsごと)でカウントします. 0 0 0
内部クロック:φ/2(12.5MHz,0.08μsごと)でカウントします. 0 0 1
内部クロック:φ/4(6.25MHz,0.16μsごと)でカウントします. 0 1 0
内部クロック:φ/8(3.125MHz,0.32μsごと)でカウントします.(本実験ではこの設定を使用します) 0 1 1
外部クロックA:TCLKA入力でカウントします. 1 0 0
外部クロックB:TCLKB入力でカウントします. 1 0 1
外部クロックC:TCLKC入力でカウントします. 1 1 0
外部クロックD:TCLKD入力でカウントします. 1 1 1

ただしφ:CPUのクロック周波数(本実験では25MHz)です.本実験では外部クロックは使用しません.

用語:

カウントエッジ
カウンタはその回路構成により,カウント動作がクロックパルスの立ち上がりタイミングで行われるもの,立下がりで行われるもの,あるいは両エッジで行われるものなどがあります.さらに,外部からの設定により,これらのうち任意のカウントモードに設定できるカウンタもあります.

 

プリスケーリング
クロックパルスをそのままカウンタなどに入力しないで1/2,1/4,1/8などにあらかじめ分周(周波数を1/nに変換すること)してから入力するとき,この前置分周操作をプリスケーリングといいます.

 


[山口研究室] <back | index | next >