PIC16F193X/LF193X
8.0 オシレータ モジュール ( フェイル
PIC16F193X/LF193X
8.2 オシレータ制御
OSCCON (オシレータ制御) レジスタ(図8-1) では、
システム クロックや周波数の選択などを制御しま
す。OSCCON レジスタには次のビットがあります。
• 周波数選択ビット (IRCF)
• システム クロック選択ビット (SCS)
• ソフトウェア PLL イネーブル ビット (SPLLEN)
レジスタ 8-1: OSCCON: オシレータ制御レジスタ
R/W-0/0 R/W-0/0 R/W-1/1 R/W-1/1 R/W-1/1 U-0 R/W-0/0 R/W-0/0
SPLLEN IRCF3 IRCF2 IRCF1 IRCF0 ― SCS1 SCS0
bit 7 bit 0
記号の説明:
R = 読み出し可 W = 書き込み可 U = 未実装ビット。「0」として読み出し
u = 不変 x = 不明 -n/n = POR および BOR 時の値/その他すべてのリセット時の値
1 = セット 0 = クリア
ビット 7 SPLLEN: ソフトウェア PLL イネーブル ビット PLLEN = 1 の場合:
SPLLEN ビットは無視される。4x PLL は常に有効 (オシレータ要件の影響を受ける) PLLEN = 0 の場合:
1 = 4x PLL は有効 0 = 4x PLL は無効
ビット 6-3 IRCF<3:0>: 内部オシレータ周波数選択ビット 000x = 31 kHz LF
0010 = 31.25 kHz MF 0011 = 31.25 kHz HF(2) 0100 = 62.5 kHz MF 0101 = 125 kHz MF 0110 = 250 kHz MF
0111 = 500 kHz MF (リセット時のデフォルト) 1000 = 125 kHz HF(2)
1001 = 250 kHz HF(2) 1010 = 500 kHz HF(2) 1011 = 1 MHz HF 1100 = 2 MHz HF 1101 = 4 MHz HF 1110 = 8 MHz HF 1111 = 16 MHz HF
ビット 2 未実装:「0」として読み出し
ビット 1-0 SCS<1:0>: システム クロック選択ビット 1x = 内部オシレータ ブロック
01 = Timer1 オシレータ
00 = CONFIG1[FOSC<2:0>] で設定されたクロック
注 1: リセット ステートは、IESO コンフィギュレーション ビットのステートに依存します。
2: HFINTOSC から派生した周波数です。
PIC16F193X/LF193X
8.3 クロック ソース モード
クロック ソース モードは外部または内部の 2 つに 分類されます。
• 外部クロック モードの場合は、クロック ソース に外部回路を使用します。例えば、オシレータ モジュール (ECモード)、水晶振動子またはセラ ミック振動子 (LP、XT、HSモード)、RC (抵抗 /コンデンサ) モード回路などがあります。
• 内部クロックソースはオシレータモジュール内 部に含まれています。オシレータ モジュールに
は、16 MHz の高周波数内部オシレータ
(HFINTOSC) と 500 kHZ (MFINTOSC) および 31 kHz の低周波数内部オシレータ (LFINTOSC) の 2 種類の内部オシレータがあります。
システムクロックに外部クロックソースと内部ク ロック ソースのどちらを使用するかは、OSCCON レジスタのシステム クロック選択 (SCS) ビットで 選択します。詳細は、8.6項「クロック切り替え」 を 参照してください。クロック ソースを切り替えた 場合は、新しいクロックが安定するまで遅延が必要 です。このオシレータの遅延を表8-1 に示します。
8.4 外部クロック モード
8.4.1 オシレータ スタートアップ タイマ
(OST)
オシレータモジュールが LP、XT、HS モードのい ずれかに設定されている場合、オシレータ スター トアップタイマ (OST) は OSC1 から 1024回発振を カウントします。これは、パワーオン リセット (POR) 後のパワーアップタイマ (PWRT) のタイム アウト時 ( 設定されている場合 )、またはスリープ からのウェイクアップ後に実行されます。カウント 実行中、プログラム カウンタはインクリメントせ ず、プログラム実行は一時停止します。OST によ り、水晶振動子またはセラミック振動子を使用した オシレータ回路の起動後に安定したシステム ク ロックを確実にオシレータ モジュールへ供給でき るようになります。
外部オシレータのスタートアップからコード実行 までの遅延を最小限に抑える場合は、2 段速スター トアップ モードを選択します (8.6.3 項「Timer1 オ シレータレディ (T1OSCR) ビット」参照)。
表 8-1: オシレータ切り替え遅延
8.4.2 ECモード
外部クロック (EC) モードでは、外部で生成された ロジック レベルをシステム クロック ソースとして 使用できます。このモードで動作する場合、外部ク ロック ソースは OSC1 入力へ接続します。
OSC2/CLKOUT は、汎用 I/O または CLKOUT とし て使用できます。図 8-2 に、EC モードでのピン接 続を示します。
のままの状態でデバイスが動作を中断します。外部 クロックが再開すると、停止直後の状態からデバイ スはその動作を再開します。
図 8-2: 外部クロック (EC) モードでの動作
Switch From Switch To Frequency Oscillator Delay
Sleep/POR
LFINTOSC(1) MFINTOSC(1) HFINTOSC(1)
31 kHz
31.25 kHz-500 kHz 31.25 kHz-16 MHz
Oscillator Warm-up Delay (TWARM)
Sleep/POR EC, RC(1) DC - 32 MHz 2 cycles
LFINTOSC EC, RC(1) DC - 32 MHz 1 cycle of each
Sleep/POR Timer1 Oscillator
LP, XT, HS(1) 32 kHz-20 MHz 1024 Clock Cycles (OST) Any clock source MFINTOSC(1)
HFINTOSC(1)
31.25 kHz-500 kHz
31.25 kHz-16 MHz 2s (approx.)
Any clock source LFINTOSC(1) 31 kHz 1 cycle of each
Any clock source Timer1 Oscillator 32 kHz 1024 Clock Cycles (OST)
PLL inactive PLL active 16-32 MHz 2 ms (approx.)
注 1: PLL 機能は非アクティブです。
OSC1/CLKIN Clock from
Ext. System
PIC® MCU
PIC16F193X/LF193X
8.4.3 LP、XT、HS モード
LP、XT、HS モードでは、水晶振動子またはセラ ミック振動子を OSC1 と OSC2 に接続して使用でき
ます(図8-3)。使用する振動子の種類や速度に合わ
せてモードを切り替えることにより、内部インバー タアンプが高/中/低ゲインに設定されます。
LP オシレータモードでは、内部インバータアンプ のゲインが最も低く設定されます。3 つのモードの うち、消費電流が最も少ないのがこのモードです。
このモードは、32.768 kHz の音叉型水晶振動子(時 計用水晶振動子) の駆動専用に設計されています。
XT オシレータ モードでは、内部インバータ アンプ のゲインが中間に設定されます。消費電流も 3 つの モードの中間となります。このモードは、駆動レベ ル仕様が中程度の振動子に最も適しています。
HS オシレータ モードでは、内部インバータ アンプ のゲインが最大に設定されます。3 つのモードのう ち、消費電流が最も大きくなります。このモードは、
駆動レベルを高く設定する必要のある振動子に最も 適しています。
図8-3 および図8-4 に、それぞれ水晶振動子とセラミッ ク振動子を使用した代表的な回路図を示します。
図 8-3: 水晶振動子による動作 (LP、XT、HS モード)
図 8-4: セラミック振動子の動作(XT または HS モード)
注 1: 駆動レベルの低い水晶振動子の場合、直列抵抗
(RS) が必要となる場合があります。
2: RF の値は、選択したオシレータ モードによっ て異なります (通常は 2 M~10 M。 C1
C2
Quartz
RS(1)
OSC1/CLKIN
RF(2) Sleep To Internal Logic PIC® MCU
Crystal
OSC2/CLKOUT
注 1: 水晶振動子の特性は、種類、パッケージ、
メーカーにより異なります。仕様および 推奨アプリケーションについては、各 メーカーのデータシートを参照してくだ さい。
2: アプリケーションで想定される VDD お よび仕様温度でオシレータの動作を必 ず検証してください。
3: オシレータの設計には、マイクロチップ 社の次のアプリケーションノートを参 照してください。
• AN826『Crystal Oscillator Basics and Crystal Selection for rfPIC® and PIC® Devices』(DS00826)
• AN849『Basic PIC® Oscillator Design』
(DS00849)
• AN943『Practical PIC® Oscillator Analysis and Design』(DS00943)
• AN949『Making Your Oscillator Work』
(DS00949)
注 1: 駆動レベルの低いセラミック振動子の場合、直 列抵抗 (RS) が必要となる場合があります。
2: RF の値は、選択したオシレータ モードによって
異なります (通常は 2 M~10 M。
3: セラミック振動子を適正に動作させるには、並 列フィードバック抵抗 (RP) の追加が必要となる ことがあります。
C1
C2 Ceramic RS(1)
OSC1/CLKIN
RF(2) Sleep To Internal Logic PIC® MCU
RP(3)
Resonator
OSC2/CLKOUT
PIC16F193X/LF193X
8.4.4 外部 RC モード
外部 RC (抵抗/コンデンサ)モードでは、外付けの RC 回路が使用できます。クロックの精度があまり 要求されない場合は、このモードでコストを最小限 に抑えながら周波数を比較的自由に選択できます。
RC 回路は OSC1 へ接続します。OSC2/CLKOUT は、
汎用 I/O または CLKOUT として使用できます。
図8-5 に、外部RCモードの場合のピン接続を示し ます。
図 8-5: 外部 RC モード
RC オシレータの周波数は、電源電圧、抵抗 (REXT)、 コンデンサ (CEXT) の値と動作温度の関数として決 定します。これ以外にオシレータの周波数に影響す る要因として、次のものがあります。
• スレッショルド電圧のばらつき
• 製品の許容誤差
• パッケージによる容量のばらつき
使用する外部RC製品の許容誤差によるばらつきも 考慮する必要があります。
8.5 内部クロック モード
オシレータ モジュールには 3 つの独立した内部オ シレータがあり、システム クロック ソースとして 設定できます。
1. HFINTOSC (高周波数内部オシレータ) は工場 で校正されており、16 MHz で動作します。
HFINTOSC の周波数は、OSCTUNE レジスタ
(レジスタ8-3) を使用して、ユーザーがソフト
ウェアで調整できます。
2. MFINTOSC (中周波数内部オシレータ) は工場
で校正されており、 500 kHz で動作します。
MFINTOSC の周波数は、OSCTUNE レジスタ
(レジスタ8-3) を使用して、ユーザーがソフト
ウェアで調整できます。
3. LFINTOSC (低周波数内部オシレータ) は校正
されておらず、31 kHzで動作します。
システムのクロック速度は、OSCCON レジスタの 内部オシレータ周波数選択ビット IRCF<2:0> を使 用して、ソフトウェアで選択できます。
システムクロックに外部クロックソースと内部ク ロックソースのどちらを使用するかは、OSCCON レジスタのシステムクロック選択 (SCS) ビットで 選択します。詳細は、8.6項「クロック切り替え」 を 参照してください。
8.5.1 INTOSC モード
INTOSC モードの場合、コンフィギュレーション ワード レジスタ 1 (CONFIG1) の FOSC<2:0> ビット (オシレータ選択ビット ) を使用してデバイスをプ ログラムすると、内部オシレータがシステム クロッ ク ソースとして使用されます。
INTOSC モードの場合、OSC1/CLKIN は汎用 I/O と して使用でき、OSC2/CLKOUT は汎用 I/O または
CLKOUT として使用できます。
OSC2/CLKOUT CEXT
REXT
PIC® MCU
OSC1/CLKIN
FOSC/4 or
Internal Clock VDD
VSS
推奨値: 10 k REXT 100 k、<3V 3 k REXT 100 k、3V ~ 5V CEXT > 20 pF、2~5V
注 1: 出力は、コンフィギュレーション ワード 1 レジ スタの CLKOUTEN ビットに依存します。
I/O(1)
PIC16F193X/LF193X
8.5.2 HFINTOSC
高周波数内部オシレータ (HFINTOSC) は、工場で校
正された 16 MHz の内部クロックソースです。
HFINTOSC の周波数は、OSCTUNE レジスタ (レジ
スタ8-3) を使用して、ソフトウェアで変更できます。
HFINTOSC の出力は、ポストスケーラとマルチプレ
クサに接続されています (図8-1参照)。周波数は、
OSCCON レジスタの IRCF<3:0> ビットを使用して、
HFINTOSC から派生する 9 種類のうちいずれか 1 つ をソフトウェアで選択できます。詳細は、8.5.7 項
「周波数選択ビット (IRCF)」を参照してください。
HFINTOSC は次の方法で有効化されます。
• 任意の HF 周波数用に IRCF<3:0> ビット (レジス タ8-1 参照) を設定します。
• FOSC<2:0> = 100 または
• OSCCON レジスタのシステム クロック ソース
(SCS) ビットを「1x」に設定します。
OSCSTAT レジスタの HFIOFR (High Frequency Internal Oscillator Ready) ビットは、HFINTOSC が動作中であ り使用可能な状態であるかを示します。
OSCSTAT レジスタの HFIOFL (High Frequency Internal Oscillator Status Locked) ビットは、HFINTOSC が最終 値の 2% 以内で動作しているかを示します。
OSCSTAT レジスタの HFIOFS (High Frequency Internal Oscillator Status Stable) ビットは、HFINTOSC が最終
値の 0.5% 以内で動作しているかを示します。
8.5.3 MFINTOSC
中周波数内部オシレータ (MFINTOSC) は、工場で校 正された 500 kHz の内部クロックソースです。
MFINTOSC の周波数は、OSCTUNE レジスタ(レジ
スタ8-3) を使用して、ソフトウェアで変更できます。
MFINTOSC の出力は、ポストスケーラとマルチプレ クサに接続されています (図8-1参照)。周波数は、
OSCCON レジスタの IRCF<3:0> ビットを使用して、
MFINTOSC から派生する 9 種類のうちいずれか 1 つ をソフトウェアで選択できます。詳細は、8.5.7 項
「周波数選択ビット (IRCF)」 を参照してください。
MFINTOSC は次の方法で有効化されます。
• 任意の HF 周波数用に IRCF<3:0> ビット (レジス タ8-1 参照) を設定します。
• FOSC<2:0> = 100 または
• OSCCON レジスタのシステムクロックソース
(SCS) ビットを「1x」に設定します。
OSCSTAT レ ジ ス タ の MFIOFR (Medium Frequency Internal Oscillator Ready) ビットは、MFINTOSC が動 作中であり使用可能な状態であるかを示します。
8.5.4 LFINTOSC
低周波数内部オシレータ (LFINTOSC) は、校正され ていない 31 kHz の内部クロックソースです。
LFINTOSC の出力は、ポストスケーラとマルチプレ クサに接続されています (図8-1参照)。OSCCON レ ジスタの IRCF<2:0> ビットを使用して、ソフトウェ アで 31 kHz を選択します。詳細は、8.5.7 項「周波 数選択ビット (IRCF)」 を参照してください。
LFINTOSCは、パワーアップ タイマ (PWRT)、ウォッ
チドッグタイマ (WDT)、フェイルセーフクロック
モニタ (FSCM) の周波数としても使用されます。
LFINTOSC が有効となるのは、31 kHz (OSCCON レ ジスタの IRCF<3:0> ビット =000) をシステム ク ロック ソースとして (OSCCON レジスタの SCS
ビット = 1x) 選択、または次のいずれかを有効化し
た場合です。
• 任意の LF 周波数用に IRCF<3:0> ビット (レジス タ8-1 参照) を設定します。
• FOSC<2:0> = 100 または
• OSCCON レジスタのシステム クロック ソース
(SCS) ビットを「1x」に設定します。
LFINTOSC を使用する周辺機能は次のとおりです。
• LCD
• パワーアップタイマ (PWRT)
• ウォッチドッグ タイマ (WDT)
• フェイルセーフクロックモニタ (FSCM)
OSCSTAT レジスタの LFIOFR (Low Frequency Internal Oscillator Ready) ビットは、LFINTOSC が動作中であ り使用可能な状態であるかを示します。