クロック種別


【クロック】

 PIC18Fxxxxシリーズは、これまでのミッドレンジのPIC16シリーズからかなり強化
されており、下記のような強化ポイントがあります。

(1) PLLによる4倍クロックモードを追加
 内蔵PLLにより、外部振動子の4倍の周波数の内部クロックを生成する。
 この時の外部振動子は最大10MHz、従ってクロックとしては最大40MHzとなる。

(2) 内蔵クロックを強化
 従来内部RC発振だけであったものに対し、8MHzを原振とするポストスケーラ付きの
 内蔵クロックが追加されました。

(3) タイマ1の発振回路をシステムクロックとしても使えるようにした。
 通常リアルタイムクロック用に32.768kHzのクリスタル発振回路として使うタイマ1の
 クロックを、システムクロックとして切替使用できるようにしました。

(4) 低消費電力モードを体系化しクロックの切替、配分が制御できる。
 特に低消費電力化を実現するために、クロックの供給元をプログラムで切替ができる
 ようになりました。
 これで、忙しい時には高速クロックで動かし、暇な時には低速クロックで動かして
 低消費電力にするということができるようになりました。
 またクロックの供給範囲をCPUと周辺モジュールに分割して、必要な部分にだけ
 クロックを供給するという考え方が取り入れられました。

【クロックの種別】

 まずPIC18Fxxxxシリーズで用意されているクロックの種類は、表のようになって
います。 この

ク ロ ッ ク 種 別 特  徴 周波数範囲 切替え選択
主クロック
(この内のいずれか1種類)
外部振動子
による発振
LP (低電力、水晶) RA6はクロック出力  〜200kHz コンフィギュレーションでいずれか1つを指定する
XT (中速、水晶、セラミック)  〜4MHz
HS (高速、水晶、セラミック)  〜20MHz
HSPLL
(高速、PLL、水晶、セラミック)
 〜10MHz
(内部は〜40MHz)
外部RCに
よる発振
RC (外付けRC) RA6はクロック出力  〜4MHz
RCIO (外付けRC) RA6は汎用I/O
外部発振器
による
EC (外部発振器) RA6はクロック出力  〜20MHz
ECIO (外部発振器) RA6は汎用I/O
内蔵クロック
回路による
(INTRC 31kHz
INTOSC 8MHz)
INTIO1
 (内蔵クロック回路使用)
RA6はクロック出力
RA7は汎用I/O
ポストスケーラの使用設定で
INTRC=31kHz
INTOSC=125kHz、250kHz、500kHz、1MHz、2MHz、4MHz、8MHzの8種類から選択可能
OSCTUNEレジスタで周波数微調整可能
INTIO2
 (内蔵クロック回路使用)
RA6、RA7とも汎用I/O
副クロック タイマ1用クロック     〜200kHz
通常は32.768kHzを使う
パワーダウンモードの時使う

これを内部回路ブロックで表示すると下図のようになります。この図からわかるように
右のセレクタ(MUX)でいずれか一つがクロックソースとして選択されます。
さらに内蔵クロック使用の場合には、左側のセレクタで8種類の周波数のうちから一つ
を選択することになります。
これらの選択は、CONFIG1HレジスタとOSCCONレジスタの設定で行います。












【OSCCONレジスタ】

クロック制御用レジスタで、上図の左側のセレクタの制御をします。右側の
セレクタの選択制御はコンフィギュレーションで行いますので、CONFIG1H
レジスタの設定で行います。(コンフィギュレーションの項を参照)
OSCCONレジスタは、通常のプログラム実行中に変更可能ですから、途中で
クロック速度を変更することも可能になりました。





【INTRCのキャリブレーション】

内部RC発振の周波数は、工場出荷時に31.25KHz±1%に調整されていますが、
ユーザー側でこの周波数を微調整することができます。
その微調整用に使うレジスタが、「OSCTUNEレジスタ」で、下図のような構成に
なっています。このレジスタの値を変更すると、8クロック後に新しいクロックに周波数
に変更になります。
このクロックはウォッチドッグタイマなどに使われていますので、そちらも周波数変更
の影響を受けることになります。





キャリブレーションは工場出荷時の値が中心周波数となり、その値の前後に
微調整されることになります。


【主クロックと副クロックの切り替え】

PIC18Fxxxxでは、クロックの信号として、下記3つの内のどれかに切り替え設定
が可能です。この制御は上図のOSCCONレジスタのSCS1,0ビットで行います。

 (1) 主クロック
    通常の高速クロック、PLLモードで最大40MHz
 (2) 副クロック
   タイマ1のクロックで通常は、32.768kHzの時計用の水晶振動子を使った
   発振回路。周波数が低いので、低消費電力にできる。
 (3) 内蔵クロック回路
   低消費電力制御モードで切り替え使用可能になる。

実際のクロック設定はRESET時の最初に選択されるのは
CONFIG1Hレジスタへの設定と、OSCCONレジスタの設定で行われますが、

プログラム実行中のクロックの切替は
OSCCONレジスタの設定だけでは行われず、低消費電力モードの切替制御の時に
一緒に実行されます。
つまりSLEEP命令実行時に切替制御が実行されることになります。






   目次ページへ