• 検索結果がありません。

Timer1 モジュール ( ゲート制御対応 )

ドキュメント内 DS41364B_JP (ページ 163-175)

PIC16F193X/LF193X

16.0 TIMER1 モジュール ( ゲート制御

PIC16F193X/LF193X

16.1 Timer1 の動作

Timer1 モジュールは 16 ビットのインクリメント カ ウンタで、レジスタ ペア TMR1H:TMR1L を使用し てアクセスします。TMR1H または TMR1L に書き 込むと、カウンタ値を直接更新できます。

内部クロック ソースを使用すると、このモジュー ルはタイマとなり、1 命令サイクルごとにインクリ メントします。外部クロックソースを使用すると、

このモジュールはタイマまたはカウンタとなり、外 部クロック ソースの指定した エッジでインクリメ ントします。

Timer1 を有効にするには、T1CON および T1GCON レジスタの TMR1ON および TMR1GE ビットをそ れぞれ設定します。表16-1 に、Timer1 が有効な場 合の設定を示します。

16.2 クロック ソースの選択

T1CON レジスタの TMR1CS<1:0> および T1OSCEN ビットを使用して、Timer1 のクロック ソースを選択 します。表 16-2 に、クロックソースの選択を示し ます。

16.2.1 内部クロック ソース

内部クロックソースを選択した場合、レジスタペ ア TMR1H:TMR1L は、Timer1 プリスケーラで決定 される FOSC の倍数単位でインクリメントします。

16.2.2 外部クロックソース

外部クロックソースを選択した場合、Timer1 モ ジュールはタイマまたはカウンタとして使用でき ます。

カウント可能な場合、Timer1 は外部クロック入力

T1CKI または容量検知オシレータ信号の立ち上が

りエッジでインクリメントします。これらの外部ク ロック ソースはマイクロコントローラのシステム クロックと同期または非同期で動作できます。

クロックオシレータを使用するタイマとして設定 する場合、専用の内部オシレータ回路と併せて外部 に 32.768 kHz 水晶振動子を使用できます。

16-1: TIMER1 が有効になる設定

TMR1ON TMR1GE Timer1

Operation

0 0 Off

0 1 Off

1 0 Always On

1 1 Count Enabled 注: カウンタ モードの場合、次のいずれかの

状態が 1 つ以上発生後、カウンタが最初の 立ち上がりエッジでインクリメントする 前に、立ち下がりエッジを 1 回検知する必 要があります。

• POR 後、Timer1 が有効

• TMR1H または TMR1L への書き込み

• Timer1 が無効

• T1CKI が High のとき Timer1 が無効 (TMR1ON = 0) で、その後 T1CKI が Low のとき Timer1 が有効 (TMR1ON=1) になる

16-2: クロックソースの選択

TMR1CS1 TMR1CS0 T1OSCEN Clock Source

0 1 x System Clock (FOSC)

0 0 x Instruction Clock (FOSC/4)

1 1 x Capacitive Sensing Oscillator

1 0 0 External Clocking on T1CKI Pin

1 0 1 Osc.Circuit On T1OSI/T1OSO Pins

PIC16F193X/LF193X

16.3 Timer1 プリスケーラ

Timer1 のプリスケーラは、クロック入力の1/1、1/2、

1/4、1/8 倍の 4 種類の設定が可能です。プリスケー ルカウンタは、T1CONレジスタの T1CKPS ビット で制御します。プリスケールカウンタは直接読み出 しまたは書き込みできませんが、TMR1H または

TMR1Lへの書き込み時にクリアされます。

16.4 Timer1オシレータ

専用 の 32.768 kHz 低消 費 電力 オ シレ ー タ回 路 が T1OSI (入力) と T1OSO (アンプ出力) の間に内蔵 されています。この内部回路は、外部の 32.768 kHz 水晶振動子と併せて使用されます。

このオシレータ回路は、T1CON レジスタの T1OSCEN 制御ビットをセットすると有効になります。このオ シレータは、スリープ時にも動作を継続します。

16.5 非同期カウンタモード時のTimer1 の動作

T1CON レジスタの T1SYNC 制御ビットをセットし た場合、外部クロック入力は同期化されません。タ イマは、内部位相クロックに対して非同期にインク リメントします。外部クロックソースが選択され ている場合、タイマはスリープ時にも動作を継続で き、オーバーフロー割り込みを生成し、プロセッサ をウェイクアップできます。ただし、タイマの読み 出し/書き込みには、ソフトウェアに特別な注意を 払う必要があります (16.5.1項「非同期カウンタモー ドにおけるTimer1 の読み出し/書き込み」参照)。

16.5.1 非同期カウンタ モードにおける

TIMER1 の読み出し/書き込み タイマが外部の非同期クロックで動作している間 は、TMR1H または TMR1L の正しい読み出し動作 が(ハードウェアによって)保証されます。ただし、

16 ビットタイマを 2 つの 8 ビット値として読み出

書き込みの競合が発生する場合があります。この場 合、レジスタペア TMR1H:TMR1L が予期しない値 となることがあります。

16.6 Timer1 ゲート

Timer1 は、自由なカウンタとして、または Timer1 ゲート回路を使用して有効/無効を切り替え可能な カウンタとして設定できます。また、Timer1 ゲート イネーブルとしても扱われます。

Timer1 ゲートも複数ソースで駆動できます。

16.6.1 TIMER1 ゲート イネーブル

Timer1 ゲートイネーブル モードを有効にするに

は、T1GCON レジスタの TMR1GE ビットをセット

します。Timer1 ゲート イネーブル モードの極性は、

T1GCON レジスタの T1GPOL ビットを使用して設 定します。

Timer1 ゲートイネーブル モードが有効の場合、

Timer1 は Timer1 クロック ソースの立ち上がりエッ ジでインクリメントします。Timer1 ゲート イネー ブルモードが無効の場合、Timer1 はインクリメン トせずに現在のカウント値を保持します。タイミン グの詳細は、図16-3 を参照してください。

16.6.2 TIMER1 ゲートのソース選択

Timer1 ゲートのソースは、4 種類の中から選択でき

ます。ソース選択には、T1GCON レジスタの T1GSS ビットを使用します。有効な各ソースの極性も選択 で き ま す。極 性 選 択 に は、T1GCON レ ジ ス タ の T1GPOL ビットを使用します。

表 16-4: TIMER1 ゲートのソース: オシレータ使用前には、スタートアップお

よび安定化の時間が必要です。このため、

Timer1 を有効にする前には、T1OSCEN を セットして最適な遅延を確保する必要が あります。

: 動作を同期モードから非同期モードに切 り替える際は、インクリメントをスキップ できます。非同期モードから同期モードに 切り替える際は、インクリメントを 1 回多 く実行できます。

表 16-3: TIMER1 ゲートが有効になる設定 T1CLK T1GPOL T1G Timer1 Operation

 0 0 Counts

 0 1 Holds Count

 1 0 Holds Count

 1 1 Counts

T1GSS Timer1 Gate Source 00 Timer1 Gate Pin

01 Overflow of Timer0

(TMR0 increments from FFh to 00h) 10 Comparator 1 Output SYNCC1OUT

(optionally synchronized out)

PIC16F193X/LF193X

16.6.2.1 T1G ピンのゲート動作

T1G ピンは、Timer1 のゲート制御用に使用される

ソースの 1 つです。このピンを使用すると、Timer1 のゲート回路に外部ソースを提供できます。

16.6.2.2 Timer0 オーバーフローゲート動作 Timer0 が FFh から 00h へインクリメントすると、

low-to-high パルスが自動的に生成されて Timer1 の ゲート回路へ供給されます。

16.6.2.3 コンパレータ C1 のゲート動作

コンパレータ 1 の動作結果による出力を、Timer1 の ゲート制御用ソースとして使用できます。コンパ レータ1 の出力 (SYNCC1OUT) は、Timer1 のクロッ クに同期化させることが可能であり、非同期のまま 動作させることも可能です。詳細は、 12.4.1項「コン パレータ出力の同期化」 を参照してください。

16.6.2.4 コンパレータ C2 のゲート動作

コンパレータ 2 の動作結果による出力を、Timer1 の ゲート制御用ソースとして使用できます。コンパ レータ2 の出力 (SYNCC2OUT) は、Timer1 のクロッ クに同期化させることが可能であり、非同期のまま 動作させることも可能です。詳細は、12.4.1項「コ ンパレータ出力の同期化」 を参照してください。

16.6.3 TIMER1 のゲートトグルモード Timer1 のゲート トグル モードが有効の場合は、シ ングル レベル パルスの長さとは別にTimer1 ゲート 信号のフルサイクルの長さを計測できます。

Timer1 ゲートのソースは、インクリメントする信号

エッジがくるたびにステート変化するフリップフ ロップを介して接続されます。タイミングの詳細

は、図16-4 を参照してください。

Timer1 のゲートトグルモードを有効にするには、

T1GCON レジスタの T1GTM ビットをセットしま

す。T1GTM ビットがクリアされると、フリップフ ロップはクリアされてクリアの状態を保持します。

これは、どのエッジを測定するかを制御するために 必要です。

16.6.4 TIMER1 ゲート シングル パルス モード

Timer1 ゲートシングルパルスモードを有効にする

と、シングルパルスゲートイベントをキャプチャ できます。Timer1 ゲート シングル パルス モードを 有効にするには、まず T1GCON レジスタの T1GSPM ビットをセットして有効にします。次に T1GCON レ

ジスタの T1GGO/DONE ビットをセットする必要が

あります。Timer1 は、次のインクリメント エッジで 完 全 に 有 効 と な り ま す。そ の 次 の エ ッ ジ で は、

T1GGO/DONE ビットが自動的にクリアされます。

ソフトウェアで T1GGO/DONE ビットを再度セット するまで、Timer1 をインクリメントするゲート イベ ントは有効になりません。

また、T1GCON レジスタの T1GSPM ビットをクリ アした場合も、 T1GGO/DONE ビットをクリアしま す。タイミングの詳細は、図 16-5 を参照してくだ さい。

トグルモードとシングルパルスモードを同時に有 効にすると、両方の動作を許可できます。これによ り、Timer1 ゲート ソースのサイクル時間を測定で きるようになります。タイミングの詳細は、図16-6 を参照してください。

16.6.5 TIMER1 ゲート値ステータス

Timer1 ゲート値ステータスを使用すると、ゲート制 御値の最新のレベルを読み出すことが可能になり ます。値は、T1GCON レジスタの T1GVAL ビット に格納されています。Timer1 ゲートが有効ではない

(TMR1GE ビットがクリアされている ) 場合でも

T1GCON ビットは有効です。

16.6.6 TIMER1 ゲート イベント割り込み

Timer1 ゲ ー ト イ ベ ン ト 割 り 込 み が 有 効 の 場 合、

ゲート イベント完了時に割り込みを生成できます。

T1GVAL の立ち下がりエッジで、PIR1 レジスタの

TMR1GIF フラグビットがセットされます。PIE1 レ ジスタの TMR1GIE ビットがセットされると、割り 込みが生成されたと認識されます。

Timer1 ゲートが有効ではない (TMR1GE ビットが クリアされている) 場合でも TMR1GIF フラグビッ トは動作します。

: ゲート極性の変更と同時にトグル モード を有効にすると、判断できない動作が生じ る可能性があります。

ドキュメント内 DS41364B_JP (ページ 163-175)