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

DS39700C_JP.book

N/A
N/A
Protected

Academic year: 2021

シェア "DS39700C_JP.book"

Copied!
36
0
0

読み込み中.... (全文を見る)

全文

(1)

オシレータ

セクション

6. オシレータ

ハイライト

本セクションでは以下のトピックについて説明します。 6.1 はじめに ... 6-2 6.2 CPU クロッキング方式 ... 6-3 6.3 オシレータのコンフィグレーション ... 6-4 6.4 制御レジスタ ... 6-5 6.5 プライマリ オシレータ (POSC) ... 6-13 6.6 位相ロック ループ (PLL) ブランチ ... 6-18 6.7 セカンダリ オシレータ (SOSC) ... 6-22 6.8 内部高速RC オシレータ (FRC) ... 6-23 6.9 内部低消費電力RC オシレータ (LPRC) ... 6-24 6.10 フェイルセーフ クロックモニタ (FSCM) ... 6-24 6.11 クロック切り換え動作 ... 6-25 6.12 2 スピード スタートアップ ... 6-29 6.13 リファレンス クロック出力ジェネレータ ... 6-30 6.14 設計上のヒント ... 6-31 6.15 レジスタマップ ... 6-32 6.16 関連アプリケーション ノート ... 6-33 6.17 改訂履歴 ... 6-34

(2)

6.1

はじめに

本セクションでは、PIC24F のオシレータ システムとその動作について説明します。PIC24F の オシレータ システムのモジュールと特徴は次の通りです。 • クロックソースとして合計 4 種類の外部 / 内部オシレータを選択可能で、クロックモード は最大11 種類 • 一部の内部 / 外部オシレータソースでは、オンチップ PLL ブロックで内部動作周波数を 引き上げ可能。また、一部デバイスでは特定の周辺機能にオンチップPLL ブロックから 高精度のクロックを供給 • クロックソースをソフトウェアで切り換え可能 • ソフトウェア制御可能なポストスケーラで CPU のクロックを切り換え、システムの消費 電力を低減可能 • クロック障害を検出し、アプリケーションを安全に回復またはシャットダウンするフェイ ルセーフ クロックモニタ (FSCM) • プログラマブルなリファレンス クロック ジェネレータにより、外部デバイスの同期用に 幅広い種類の周波数のクロックソースを出力( 一部デバイスのみ ) 図 6-1 に、オシレータ システムの簡略ブロック図を示します。 図6-1: PIC24F 全般のシステム クロック回路図 PIC24F Family Secondary Oscillator SOSCEN Enable Oscillator SOSCO SOSCI

Clock Source Option for Other Modules OSCI OSCO Primary Oscillator XT, HS, EC Po st sc al er CLKDIV<10:8> WDT, PWRT 8 MHz FRCDIV 31 kHz (nominal) FRC Oscillator LPRC Oscillator SOSC LPRC

Clock Control Logic Fail-Safe Clock Monitor FRC (nominal) PLL Block(1) XTPLL, HSPLL ECPLL,FRCPLL CPU Peripherals P o st scaler CLKDIV<14:12> CLKO Reference Clock Generator(2)

REFO REFOCON<15:8>

Note 1: PLL ブロックの機能は各デバイスによって異なります。詳細は 6.6「位相ロック ループ (PLL) ブランチ」を参照

してください。

(3)

オシレータ

6.2

CPU クロッキング方式

システムクロック ソースは、次の 4 つのソースから選択できます。 • OSC1 および OSC2 ピンのプライマリ オシレータ (POSC) • SOSCI および SOSCO ピンのセカンダリ オシレータ (SOSC) • 内部高速 RC オシレータ (FRC) • 内部低消費電力 RC オシレータ (LPRC) プライマリ オシレータまたは FRC をクロックソースに選択した場合、内部 PLL でクロックを 4 倍に逓倍する事もできます。FRC をクロックソースに選択した場合、プログラマブルなク ロック分周器でクロック周波数を下げる事ができます。選択したクロックソースから、プロセッ サと周辺モジュール用のクロックを生成します。 プロセッサのクロックソースを2 分周して、内部命令サイクルクロック FCYを得ます。本書で は、命令サイクルクロックをFOSC/2 と表記する事もあります。図 6-2 に、プロセッサ クロッ クソースと命令実行の関係をタイミング チャートとして示します。プライマリ オシレータの 一部の動作モードでは、内部命令サイクルクロックFOSC/2 を OSC2 I/O ピンから出力できます。 図6-2: クロック/ 命令サイクルのタイミング FOSC PC FCY PC PC + 2 PC + 4 Fetch INST (PC)

Execute INST (PC – 2) Fetch INST (PC + 2)

Execute INST (PC) Fetch INST (PC + 4) Execute INST (PC + 2) TCY

(4)

6.3

オシレータのコンフィグレーション

デバイスのパワーオン リセット (POR) イベント時にどのオシレータソース ( および動作モード ) を使用するかは、コンフィグレーション ビットで設定します。オシレータのコンフィグレー ション ビット設定は、プログラム メモリ内のコンフィグレーション レジスタにあります。 詳細は、各デバイスのデータシートを参照してください。POR 時に使用するオシレータソース は、プライマリ オシレータ コンフィグレーション ビット POSCMD<1:0> ( コンフィグレーショ ン ワード 2<1:0>) とオシレータ コンフィグレーション ビット FNOSC<2:0> ( コンフィグレー ション ワード 2<10:8>) で選択します。既定値 ( 何もプログラミングしない状態 ) ではポストス ケーラ付きのFRC オシレータ (FRCDIV) が選択されます。セカンダリ オシレータ、または内 部オシレータのいずれかを選択するには、これらのビット位置をプログラミングします。 コンフィグレーション ビットの設定により、ユーザは表 6-1 に示した 11 種類の中からクロッ クモードを選択する事ができます。 表6-1: コンフィグレーション ビットの値と選択されるクロック

6.3.1

クロック切り換えモード

コンフィグレーション ビット

FCKSM コンフィグレーション ビット ( コンフィグレーション ワード 2<7:6>) を使用して、デ バイスのクロック切り換えとFSCM 機能を設定します。FCKSM1 をプログラミング (「0」) し た場合のみ、クロック切り換えが有効になります。FSCM は、FCKSM<1:0> を両方共プログラ ミング(「00」) した場合のみ有効になります。

6.3.2

水晶振動子を使用しないモードでの

OSC1 および OSC2 ピンの機能

OSC1 および OSC2 のプライマリ オシレータをクロックソースとして使用しない場合 (POSCMD<1:0> = 11)、OSC1 ピンは自動的にデジタル I/O としてコンフィグレーションされ ます。この場合、およびプライマリ オシレータを EC モード (POSCMD<1:0> = 00) に設定し た場合も、OSCIOFCN コンフィグレーション ビット ( コンフィグレーション ワード 2<5>) を プログラミングすればOSC2 ピンをデジタル I/O としてコンフィグレーションできます。

オシレータ モード オシレータソース POSCMD<1:0> FNOSC<2:0> Note

Fast RC Oscillator with Postscaler (FRCDIV) 内部 11 111 1, 2 (Reserved) 内部 xx 110 1 Low-Power RC Oscillator (LPRC) 内部 11 101 1

Secondary (Timer1) Oscillator (SOSC)

セカンダリ 11 100 1

Primary Oscillator (HS) with PLL Module (HSPLL)

プライマリ 10 011 —

Primary Oscillator (XT) with PLL Module (XTPLL)

プライマリ 01 011 —

Primary Oscillator (EC) with PLL Module (ECPLL)

プライマリ 00 011 —

Primary Oscillator (HS) プライマリ 10 010 — Primary Oscillator (XT) プライマリ 01 010 — Primary Oscillator (EC) プライマリ 00 010 — Fast RC Oscillator with PLL

Module (FRCPLL) 内部 11 001

1

Fast RC Oscillator (FRC) 内部 11 000 1 Note 1: OSC2 ピンの機能は、OSCIOFCN コンフィグレーション ビットによって決まりま

す。

2: 何もプログラミングされていない ( 消去済みの ) デバイスにおける既定値のオシ

(5)

オシレータ

OSCIOFCN をプログラミングしない場合 (「1」) は、OSC2 から FOSC/2 クロックが出力され、

テストや同期信号として使用する事ができます。OSCIOFCN をプログラミングした場合 (「0」)、 OSC2 ピンは汎用 I/O ピンとなります。どちらの場合も、消費電流を低減するために OSC1 と OSC2 の間のフィードバック デバイスは OFF になります。

6.4

制御レジスタ

オシレータの動作は3つ(デバイスによっては最大5つ)の特殊機能レジスタ(SFR)で制御します。 • OSCCON • CLKDIV • OSCTUN • REFOCON ( 一部デバイスのみ ) • CLKDIV2 ( 一部デバイスのみ )

6.4.1

オシレータ制御レジスタ

(OSCCON)

OSCCON レジスタ ( レジスタ 6-1) は、オシレータの制御に関する中心的なレジスタです。ク ロックソースの切り換え制御とクロックソースの監視を行います。 COSC ステータスビットは読み出し専用で、現在デバイスがどのオシレータソースで動作して いるかを示します。パワーオン リセット (POR) およびマスタ クリア リセット (MCLR) 時には、 COSC ビットは既定値のポストスケーラ付き内部高速 RC オシレータ (FRCDIV、4 MHz) に設 定されます。FNOSC コンフィグレーション ビット ( コンフィグレーション ワード 2<10:8>) で別のオシレータソースを選択すると、クロックが自動的に切り換わります。クロック切り換 えが完了した時点でCOSC ビットは新しいオシレータソースの設定に変わります。 NOSC ステータスビットは、クロック切り換えにおける切り換え後のクロックソースを選択し ます。POR および MCLR 時には、これらのビットには FNOSC コンフィグレーション ビット で定義したオシレータソースの設定が自動的に反映されます。これらのビットはソフトウェア で変更できます。 CLKLOCK ビット (OSCCON<7>) をセットすると、FCKSM1 コンフィグレーション ビットが セットされている場合に限り、クロック切り換えが禁止されます。FCKSM1 ビットがクリアさ れている場合はCLKLOCK ビットの状態にかかわらずクロックの切り換えが可能です。 IOLOCK ビット (OSCCON<6>) は、ペリフェラル ピンセレクト (PPS) 機能のロック解除に使 用します。システムクロックの動作には影響しません。 LOCK ステータスビット (OSCCON<5>) は読み出し専用で、PLL 回路の状態を表します。PLL の周波数がロックするとセットされ、有効なクロック切り換えシーケンスが開始されるとリ セットされます。現在のクロックソースでPLL を使用していない場合は「0」として読み出さ れます。 CF ステータスビット (OSCCON<3>) は読み出し / クリア可能なステータスビットで、クロッ ク障害の発生を知らせます。有効なクロック切り換えが開始するとリセットされます。 POSCEN ビット (OSCCON<2>) は、スリープモード時のプライマリ オシレータの動作制御に 使用します。このビットをセットすると、スリープモードになってもオシレータに対して通常 の自動シャットダウンは行われません。

SOSCEN 制御ビット (OSCCON<1>) は、32 kHz 水晶振動子の SOSC オシレータの有効 / 無効 を切り換えます。 OSWEN 制御ビット (OSCCON<0>) はクロック切り換え動作の開始に使用します。クロック切 り換えが正常に完了した場合、切り換え前後のクロックソースが同じ場合、FSCM モジュール によってFRC への切り換えが完了した場合、OSWEN は自動的にクリアされます。 Note: OSCCON への書き込みの前にはロック解除シーケンスを実行する必要がありま す。詳細は、6.11.2「オシレータ切り換えシーケンス」を参照してください。

(6)

レジスタ6-1: OSCCON: オシレータ制御レジスタ

U-0 R-0 R-0 R-0 U-0 R/W-x(1) R/W-x(1) R/W-x(1) — COSC2 COSC1 COSC0 — NOSC2 NOSC1 NOSC0

ビット15 ビット8

R/SO-0 R/W-0 R-0(3) U-0 R/CO-0 R/W-0 R/W-0 R/W-0 CLKLOCK IOLOCK(2) LOCK — CF POSCEN(4) SOSCEN OSWEN

ビット7 ビット0 凡例: CO = クリアのみのビット SO = セットのみのビット R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し -n = POR の値 ‘1’ = ビットをセット ‘0’ = ビットをクリア x = ビットは不定 ビット 15 未実装:「0」として読み出し ビット 14-12 COSC<2:0>: 現在のオシレータ選択ビット 111 = ポストスケーラ付き高速 RC オシレータ (FRCDIV) 110 = 予約 101 = 低消費電力 RC オシレータ (LPRC) 100 = セカンダリ オシレータ (SOSC) 011 = PLL モジュール付きプライマリ オシレータ (XTPLL、HSPLL、ECPLL) 010 = プライマリ オシレータ (XT、HS、EC) 001 = ポストスケーラおよび PLL モジュール付き高速 RC オシレータ (FRCPLL) 000 = 高速 RC オシレータ (FRC) ビット 11 未実装:「0」として読み出し ビット 10-8 NOSC<2:0>: 切り換え後のオシレータ選択ビット(1) 111 = ポストスケーラ付き高速 RC オシレータ (FRCDIV) 110 = 予約 101 = 低消費電力 RC オシレータ (LPRC) 100 = セカンダリ オシレータ (SOSC) 011 = PLL モジュール付きプライマリ オシレータ (XTPLL、HSPLL、ECPLL) 010 = プライマリ オシレータ (XT、HS、EC) 001 = ポストスケーラおよび PLL モジュール付き高速 RC オシレータ (FRCPLL) 000 = 高速 RC オシレータ (FRC) ビット 7 CLKLOCK: クロック選択ロック イネーブル ビット FSCM が有効な場合 (FCKSM1 = 1): 1 = クロックと PLL の選択がロックされる 0 = クロックと PLL の選択はロックされず、OSWEN ビットをセットして変更できる FSCM が無効な場合 (FCKSM1 = 0): クロックとPLL の選択はロックされず、OSWEN ビットをセットして変更できる ビット 6 IOLOCK: I/O ロック イネーブル ビット(2) 1 = I/O ロックが有効 0 = I/O ロックが無効 Note 1: これらのビットのリセット時の値は FNOSC コンフィグレーション ビットによって決まります。 2: IOLOCK があるのは、ペリフェラル ピンセレクト (PPS) 機能を内蔵したデバイスのみです。詳細は、各 デバイスのデータシートを参照してください。IOLOCK は 1 回のロック解除シーケンスで 1 回しか変更 できません。また、IOL1WAY コンフィグレーション ビットが「1」の場合、IOLOCK ビットを一旦セッ トするとクリアできません。 3: 有効なクロック切り換えを実行した場合、または PLL を使用しないクロックモードを選択した場合は 「0」にリセットされます。 4: POSCEN は一部のデバイスファミリにしかありません。詳細は、各デバイスのデータシートを参照して ください。

(7)

オシレータ

6.4.2

クロック分周レジスタ

(CLKDIV)

クロック分周レジスタ( レジスタ 6-2) は、DOZE モードに関する機能および FRC オシレータ のポストスケーラを制御します。 ROIビット(CLKDIV<15>)はDOZEモード終了の割り込みを許可し、プロセッサと周辺モジュー ルのクロック比を自動的に 1:1 に選択します。DOZE モードが終了すると DOZEN ビット (CLKDIV<11>) がクリアされます。ROI ビットをクリアすると、DOZE モードは割り込みの影 響を受けなくなります。 DOZE ビット (CLKDIV<14:12>) はプロセッサと周辺モジュールのクロック比を選択します。こ の値は、1:1 ~ 1:128 の範囲でソフトウェアで選択できます。MCLR および POR 時には既定値 の1:1 に戻ります。この機能により、周辺モジュールの動作に影響を与えずに CPU の消費電力 を低減する事ができます。 DOZEN ビットをセットするとデバイスは DOZE モードに移行し、プロセッサのクロックポス トスケーラを使用します。ROI ビットをセットして割り込みが発生すると、DOZEN ビットは クリアされます。 RCDIV ビット (CLKDIV<10:8>) は FRC オシレータ出力のポストスケーラを選択します。これに より、定格8 MHz よりも低いクロック周波数を利用できます。このオプションの詳細は、6.8.2FRC ポストスケーラ モード (FRCDIV)」および 6.8.3「PLL 付き FRC オシレータ モード (FRCPLL)」を参照してください。

USB 機能を内蔵した PIC24F (PIC24FJ256GB110 ファミリ等 ) の場合、CPDIV<1:0> ビット (CLKDIV<7:6>) で USB モジュールが有効でアクティブな時のシステムクロック速度を選択し ます。この機能の詳細は、6.6.2「96 MHz PLL ブロック」を参照してください。 96 MHz PLL モジュールが内蔵されている場合、PLLEN ビット (CLKDIV<5>) でこのモジュー ルを有効にしてUSB およびグラフィック コントローラ モジュール用の 96 MHz クロックを生 成できます。グラフィック コントローラ モジュールのクロックソースは、G1CLKSEL ビット (CLKDIV<4>) で選択します。この選択の詳細は、6.6.2「96 MHz PLL ブロック」を参照してく ださい。 ビット 5 LOCK: PLL ロック ステータスビット(3) 1 = PLL モジュールがロックしているか、または PLL モジュールのスタートアップ タイマが設定時 間に達した 0 = PLL モジュールがロックしていない、PLL スタートアップ タイマが動作中、PLL が無効、のいず れか ビット 4 未実装:「0」として読み出し ビット 3 CF: クロック障害検出ビット 1 = FSCM がクロック障害を検出した 0 = クロック障害の検出なし ビット 2 POSCEN: プライマリ オシレータ スリープ イネーブル ビット(4) 1 = プライマリ オシレータはスリープモード時も動作を継続する 0 = プライマリ オシレータはスリープ時に無効 ビット 1 SOSCEN: 32 kHz セカンダリ オシレータ (SOSC) イネーブル ビット 1 = セカンダリ オシレータを有効にする 0 = セカンダリ オシレータを無効にする ビット 0 OSWEN: オシレータ切り換えイネーブル ビット 1 = NOSC<2:0> ビットで指定したクロックソースへのオシレータ切り換えを開始する 0 = オシレータ切り換えが完了 レジスタ6-1: OSCCON: オシレータ制御レジスタ ( 続き ) Note 1: これらのビットのリセット時の値は FNOSC コンフィグレーション ビットによって決まります。 2: IOLOCK があるのは、ペリフェラル ピンセレクト (PPS) 機能を内蔵したデバイスのみです。詳細は、各 デバイスのデータシートを参照してください。IOLOCK は 1 回のロック解除シーケンスで 1 回しか変更 できません。また、IOL1WAY コンフィグレーション ビットが「1」の場合、IOLOCK ビットを一旦セッ トするとクリアできません。 3: 有効なクロック切り換えを実行した場合、または PLL を使用しないクロックモードを選択した場合は 「0」にリセットされます。 4: POSCEN は一部のデバイスファミリにしかありません。詳細は、各デバイスのデータシートを参照して ください。

(8)

レジスタ6-2: CLKDIV: クロック分周レジスタ

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-1 ROI DOZE2 DOZE1 DOZE0 DOZEN(1) RCDIV2 RCDIV1 RCDIV0

ビット15 ビット8

R/W-0 R/W-0 R/W-0 R/W-0 U-0 U-0 U-0 U-0 CPDIV1(2) CPDIV0(2) PLLEN(2) G1CLKSEL(2) — — — —

ビット7 ビット0 凡例: R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し -n = POR の値 ‘1’ = ビットをセット ‘0’ = ビットをクリア x = ビットは不定 ビット 15 ROI: 割り込み回復ビット 1 = 割り込みでDOZENビットをクリアし、CPUと周辺モジュールのクロック比を1:1にリセットする 0 = 割り込みが発生しても DOZEN ビットに影響しない ビット 14-12 DOZE<2:0>: CPU/ 周辺モジュール クロック比選択ビット 111 = 1:128 110 = 1:64 101 = 1:32 100 = 1:16 011 = 1:8 010 = 1:4 001 = 1:2 000 = 1:1 ビット 11 DOZEN: DOZE イネーブル ビット(1) 1 = DOZE<2:0> ビットで CPU と周辺モジュールのクロック比を設定 0 = CPU と周辺モジュールのクロック比を 1:1 に設定 ビット 10-8 RCDIV<2:0>: FRC ポストスケーラ選択ビット 111 = 31.25 kHz (256 分周 ) 110 = 125 kHz (64 分周 ) 101 = 250 kHz (32 分周 ) 100 = 500 kHz (16 分周 ) 011 = 1 MHz (8 分周 ) 010 = 2 MHz (4 分周 ) 001 = 4 MHz (2 分周 ) 000 = 8 MHz (1 分周 ) ビット 7-6 CPDIV<1:0>: システムクロック選択ビット(2) 11 = 4 MHz (8 分周 )(3) 10 = 8 MHz (4 分周 )(3) 01 = 16 MHz (2 分周 ) 00 = 32 MHz (1 分周 ) ビット 5 PLLEN: 96 MHz PLL イネーブル ビット(2) USB またはグラフィック コントローラ モジュールを有効にした場合は 96 MHz PLL を有効にする必要 があります。一部の PIC24F では、このビットよりもコンフィグレーション ビットが優先されます。 詳細は、6.6.2「96 MHz PLL ブロック」を参照してください。 1 = USB/ グラフィック コントローラ用に 96 MHz PLL を有効にする 0 = 96 MHz PLL を無効にする Note 1: ROI ビットをセットして割り込みが発生すると、このビットは自動的にクリアされます。 2: これらのビットは USB またはグラフィック コントローラ機能を内蔵したデバイスにしかありません。 3: これらのシステムクロックは USB モジュールの動作には使用できません。PLL ブランチをクロックソー スとして選択し、なおかつUSB モジュールが無効の場合に使用してください。

(9)

オシレータ

ビット 4 G1CLKSEL: ディスプレイ コントローラ モジュール クロック選択ビット(2) 1 = グラフィック コントローラ モジュールのクロックに 96 MHz クロック ( 図 6-8 の「Graphics Clock Option 1」ブランチ ) を使用する 0 = グラフィック コントローラ モジュールのクロックに 48 MHz クロック ( 図 6-8 の「Graphics Clock Option 2」ブランチ ) を使用する ビット 3-0 未実装:「0」として読み出し レジスタ6-2: CLKDIV: クロック分周レジスタ ( 続き ) Note 1: ROI ビットをセットして割り込みが発生すると、このビットは自動的にクリアされます。 2: これらのビットは USB またはグラフィック コントローラ機能を内蔵したデバイスにしかありません。 3: これらのシステムクロックは USB モジュールの動作には使用できません。PLL ブランチをクロックソー スとして選択し、なおかつUSB モジュールが無効の場合に使用してください。

(10)

6.4.3

オシレータ調整レジスタ

(OSCTUN)

FRC オシレータ調整レジスタ ( レジスタ 6-3) を使うと、FRC オシレータをユーザで微調整で きます。FRC オシレータの調整の詳細は、各デバイスのデータシートを参照してください。 FRC オシレータを調整した場合の応答は一律 ( 線形 ) ではありません。次の周波数に移動する までのステップ数はそれぞれ異なります。目的の周波数に最も近い値が得られるまでOSCTUN の値をいくつか試してみてください。 レジスタ6-3: OSCTUN: FRC オシレータ調整レジスタ

U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

ビット15 ビット8

U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — TUN5 TUN4 TUN3 TUN2 TUN1 TUN0

ビット7 ビット0 凡例: R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し -n = 全てリセットの値 ‘1’ = ビットをセット ‘0’ = ビットをクリア x = ビットは不定 ビット 15-6 未実装:「0」として読み出し ビット 5-0 TUN<5:0>: FRC オシレータ調整ビット 011111 = 調整可能な最大周波数 011110 = . . . 000001 = 000000 = 中心周波数。オシレータは工場で校正済みの周波数で動作 111111 = . . . 100001 = 100000 = 調整可能な最小周波数

(11)

オシレータ

6.4.4

リファレンス

クロック出力制御レジスタ (REFOCON)

リファレンス クロック出力ジェネレータを内蔵した PIC24F では、REFOCON レジスタ ( レジ スタ 6-4) でこの機能を制御します。

ROEN ビット (REFOCON<15>) をセットすると、クロック信号が REFO ピンから出力されま す。RODIV ビット (REFOCON<11:8>) で分周比を 16 種類のオプションから選択します。 ROSSLP および ROSEL ビット (REFOCON<13:12>) リファレンス出力のクロックソースを設 定します。まず、ROSEL ビットでリファレンス クロック出力のクロックソースに OSC1 と OSC2 のプライマリ オシレータを使用するか、現在のシステムクロック ソースを使用するか を設定します。プライマリ オシレータを選択した場合、ROSSLP ビットでスリープモード時 にリファレンス オシレータを動作させるかどうかを選択します。 詳細は、6.13「リファレンス クロック出力ジェネレータ」を参照してください。 レジスタ6-4: REFOCON: リファレンス オシレータ制御レジスタ R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 ROEN — ROSSLP ROSEL RODIV3 RODIV2 RODIV1 RODIV0

ビット15 ビット8

U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — — ビット7 ビット0 凡例: R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し -n = POR の値 ‘1’ = ビットをセット ‘0’ = ビットをクリア x = ビットは不定 ビット 15 ROEN: リファレンス オシレータ出力イネーブル ビット 1 = REFO ピンでリファレンス オシレータを有効にする 0 = リファレンス オシレータを無効にする ビット 14 未実装: 「0」として読み出し ビット 13 ROSSLP: スリープ時リファレンス オシレータ出力停止ビット 1 = スリープ時にリファレンス オシレータの動作を継続する 0 = スリープ時にリファレンス オシレータを無効にする ビット 12 ROSEL: リファレンス オシレータソース選択ビット 1 = ベースクロックとしてプライマリ オシレータを使用 (FOSC<2:0> ビットで水晶振動子オシレー タを有効にしておく必要があります。水晶振動子はスリープモード時も動作を継続します) 0 = ベースクロックとしてシステムクロックを使用。デバイスのクロックを切り換えるとベースク ロックも切り換わる ビット 11-8 RODIV<3:0>: リファレンス オシレータ分周比選択ビット 1111 = ベースクロックを 32,768 分周 1110 = ベースクロックを 16,384 分周 1101 = ベースクロックを 8,192 分周 1100 = ベースクロックを 4,096 分周 1011 = ベースクロックを 2,048 分周 1010 = ベースクロックを 1,024 分周 1001 = ベースクロックを 512 分周 1000 = ベースクロックを 256 分周 0111 = ベースクロックを 128 分周 0110 = ベースクロックを 64 分周 0101 = ベースクロックを 32 分周 0100 = ベースクロックを 16 分周 0011 = ベースクロックを 8 分周 0010 = ベースクロックを 4 分周 0001 = ベースクロックを 2 分周 0000 = ベースクロックのまま ビット 7-0 未実装:「0」として読み出し

(12)

6.4.5

クロック分周レジスタ

2 (CLKDIV2)

クロック分周レジスタ2 ( レジスタ 6-5) は、グラフィック コントローラ モジュールを内蔵した PIC24F にあります。このレジスタは、ディスプレイ コントローラ内のディスプレイ モジュー ル インターフェイスへの入力クロックの周波数を制御します。周波数の選択は、セレクタビッ トGCLKDIV<6:0> への書き込みによって制御します。ディスプレイの種類によって周波数レン ジが異なるため、クロック分周比は1 分周から開始し、合計 128 種類の値のうち、最初の 64 の 値は0.25 ずつインクリメントします。次の 32 の値は 0.50 ずつインクリメントし、残りの 32 の 値は1 ずつインクリメントします。これにより、96 MHz 入力の場合は 1.5 ~ 96 MHz のレンジ をカバーし、48 MHz 入力の場合は 750 kHz ~ 48 MHz のレンジをカバーします。 レジスタ6-5: CLKDIV2: クロック分周レジスタ 2 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 GCLKDIV6(1) GCLKDIV5(1) GCLKDIV4(1) GCLKDIV3(1) GCLKDIV2(1) GCLKDIV1(1) GCLKDIV0(1)

ビット15 ビット8

U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — — ビット7 ビット0 凡例: R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し -n = 全てリセットの値 ‘1’ = ビットをセット ‘0’ = ビットをクリア x = ビットは不定 ビット 15-9 GCLKDIV<6:0>: ディスプレイ モジュール インターフェイス クロック分周選択ビット(1) 下記の周波数は、G1CLKSEL (CLKDIV<4>) = 1 として 96 MHz クロックソースを選択した場合の値 です。G1CLKSEL (CLKDIV<4>) = 0 として 48 MHz クロックソースを選択した場合、周波数の値を 全て2 で割ってください。 0000000 = (0) 96.00 MHz (1 分周 ) 0000001 = (1) 76.80 MHz (1.25 分周。ここから分周比が 0.25 ずつインクリメント ) 0000010 = (2) 64.00 MHz (1.5 分周 ) 0000011 = (3) 54.86 MHz (1.75 分周 ) . . . 0111111 = (63) 5.73 MHz (16.75 分周 ) 1000000 = (64) 5.65 MHz (17.00 分周。ここから分周比が 0.50 ずつインクリメント ) 1000000 = (65) 5.49 MHz (17.50 分周 ) . . . 1011111 = (95) 2.95 MHz (32.50 分周 ) 1100000 = (96) 2.91 MHz (33 分周。ここから分周比が 1 ずつインクリメント ) 1100001 = (97) 2.82 MHz (34 分周 ) . . . 1111110 = (126) 1.52 MHz (63 分周 ) 1111111 = (127) 1.50 MHz (64 分周 ) ビット 8-0 未実装:「0」として読み出し Note 1: これらのビットは 96 MHz PLL を使用する場合のみ有効です。

(13)

オシレータ

6.5

プライマリ オシレータ (POSC)

プライマリ オシレータは、PIC24F ファミリの OSC1 および OSC2 ピンで利用できます。一般 に、プライマリ オシレータは外部クロック入力または外部水晶振動子用に構成できます。以下 のセクションでは、プライマリ オシレータの動作モードについて詳しく説明します。プライマ リ オシレータには、表 6-2 に示した最大 6 つの動作モードがあります。 表6-2: プライマリ オシレータ動作モード プライマリ オシレータの動作モードは、コンフィグレーション ビットの POSCMD と FNOSC ( それぞれ、コンフィグレーション ワード 2<1:0> と <10:8>) で選択します。POSCMD<1:0> ビットではXT、HS、EC のどのサブモードを使用するかを選択し、FNOSC<2:0> ビットではオ シレータを単独で使用するか内部PLL と組み合わせて使用するかを設定します。COSC ビット (OSCCON<14:12>) を「010」または「011」に設定すると、PIC24F は常にプライマリ オシ レータで動作します。 水晶振動子を使用した各モードの周波数レンジの詳細は、各デバイスのデータシートで「電気 的特性」のセクションを参照してください。 図6-3: 水晶振動子またはセラミック振動子での動作(XT または HS オシレータモード ) オシレータ モード 説明 OSC2 ピンの機能 EC 外部クロック入力 (0-32 MHz) FOSC/2

ECPLL 外部クロック入力 (4-48 MHz)、PLL 有効 FOSC/2, Note 2

HS 10-32 MHz 水晶振動子 Note 1

HSPLL 10-32 MHz 水晶振動子、PLL 有効 Note 2

XT 3.5-10 MHz 水晶振動子 Note 1

XTPLL 3.5-8 MHz 水晶振動子、PLL 有効 Note 1 Note 1: これらのモードでは、OSC1 と OSC2 に外部水晶振動子を接続します。

2: 特別な PLL ブロック (96 MHz PLL 等 ) を持つデバイスでのみ利用可能。ベーシック 4x PLL ブロックではデバイスの動作範囲を超えるクロック周波数が生成されます。 C1(3) C2(3) XTAL OSC2 RS (1) OSC1 RF(2) Sleep To Internal Logic PIC24F Note 1: AT ストリップカットの水晶を使用する場合は直列抵抗 Rs が必要 2: 内部フィードバック抵抗 RFのレンジは標準で2 ~ 10 M 3: 6.5.2.4「オシレータ部品の最適値の決定方法」を参照

(14)

6.5.1

プライマリ

オシレータのモード選択

XT モードと HS モードの最大の違いは、オシレータ回路の内部インバータのゲインの違いにあ り、これによって利用できる周波数レンジも異なってきます。XT モードは消費電力、周波数 共に中程度のモードです。HS モードは水晶振動子を使用するオシレータとしては周波数が最 も高速です。HS モード、XT モード共に OSC2 は水晶振動子へのフィードバックに使用します。 PLL 回路を使用する EC および HS モードの場合、デバイスの動作周波数が最も高くなります。 これらのモードではPLL によってオシレータの周波数が 4 倍に逓倍されるため、オシレータ回 路の消費電流は最大となります。 通常は、仕様を満たす範囲内で最もゲインの低いオシレータモードを選択します。これにより、 ダイナミック電流 (IDD) を抑える事ができます。各オシレータモードの周波数レンジはカット オフ周波数の推奨値で決めていますが、電圧、温度、部品( 抵抗、コンデンサ、内部オシレータ 回路等) のばらつきを含めた完全な検証を行っていれば、ゲインの異なるモードを選択しても かまいません。 オシレータ フィードバック回路は全ての EC モードで無効です。OSC1 ピンはハイ インピーダ ンス入力で、CMOS ドライバで駆動できます。 プライマリ オシレータを外部クロック入力用に構成した場合、OSC2 ピンはオシレータの動作 には不要です。これらのモードでは、OSC2 ピンをデバイス I/O ピンまたはクロック出力ピン として使用できます。OSC2ピンをクロック出力ピンとして使用する場合、出力周波数はFOSC/2 となります。

6.5.2

水晶振動子とセラミック振動子

XT モードと HS モードでは、水晶またはセラミック振動子を OSC1 および OSC2 ピンに接続 して発振回路を形成します( 図 6-3)。PIC24F のオシレータ設計にはパラレルカットの水晶振 動子を使用する必要があります。シリーズカットの水晶振動子を使用すると、水晶振動子メー カーの仕様範囲外の周波数が発生する事があります。 6.5.2.1 水晶/ セラミック振動子のスタートアップ デバイスの電圧がVSSから上昇すると、オシレータは発振を開始します。オシレータの発振開 始までにかかる時間は、下に示すような多くの要素に左右されます。 • 水晶 / セラミック振動子の周波数 • 使用するコンデンサの値 • 直列抵抗を使用する場合はその値と種類 • デバイスの VDD立ち上がり時間 • システムの温度 • デバイスで選択したオシレータモード ( 内部オシレータ インバータのゲインを選択 ) • 水晶振動子の品質 • オシレータ回路のレイアウト • システムノイズ

(15)

オシレータ

図 6-4 に、一般的な水晶 / セラミック振動子のスタートアップ特性を示します。発振は瞬時に 安定するわけではありません。 図6-4: 水晶/ セラミック振動子のスタートアップ特性例 6.5.2.1.1 スリープモードからのプライマリ オシレータのスタートアップ オシレータのスタートアップが最も難しいのは、スリープモードからのウェイクアップ時です。 これは、ウェイクアップ時には負荷コンデンサがある程度の静止値まで部分的に充電されてお り、位相差も最小となっているためです。このため、発振が安定するまでには通常より長い時 間が必要です。また、低電圧、高温、低周波数のクロックモードではループゲインが小さくな るため、やはりスタートアップに影響します。 スタートアップ時間を増大させる要因には、次のものがあります。 • 低周波数のデザイン ( 低ゲインのクロックモードを使用した場合 ) • ノイズの少ない環境 ( バッテリ駆動型機器等 ) • シールドされたボックス内での動作 ( ノイズの多い RF エリアから隔離した場合 ) • 低電圧 • 高温度 • スリープモードからのウェイクアップ これとは逆に、回路ノイズによってオシレータの起動が速くなり、オシレータ スタートアップ 時間が短くなる事があります。 6.5.2.2 オシレータ スタートアップ タイマ 水晶またはセラミック振動子を確実に起動して安定させるために、オシレータ スタートアップ タイマ(OST) が用意されています。OST はシンプルな 10 ビット カウンタで、1024 TOSCサイ クルをカウントした後にシステム全体にオシレータ クロックを供給します。OST がタイムア ウトするまでの時間を TOST と表記します。オシレータ信号の振幅がオシレータピンのVILと VIHのしきい値に達すると、OST がカウントを開始します。 POR、BOR、スリープモードからのウェイクアップ時にオシレータが再起動する際は、TOST遅 延が必ず必要です。オシレータ スタートアップ タイマは XT および HS モードのプライマリ オ シレータ、およびセカンダリ オシレータ SOSC (6.7「セカンダリ オシレータ (SOSC)」参照 ) で使用します。 Voltage

Crystal Start-up Time

Time Device VDD Maximum VDD of System 0V VIL VIH

(16)

6.5.2.3 オシレータ回路の調整 マイクロチップ社のデバイスは、使用する部品やバージョンによって周波数、電圧、温度等の 動作レンジが非常に幅広く、また、使用する外付け部品( 水晶振動子、コンデンサ等 ) も多く のメーカーから様々な品質のものが提供されているため、アプリケーションの要件を満たした 部品を選択するには動作検証が欠かせません。外付け部品の選択と配置には多くの要因を考慮 する必要があります。アプリケーションによっても異なりますが、例えば次のような要因を考 慮します。 • アンプのゲイン • 目的の周波数 • 水晶振動子の共振周波数 • 動作温度 • 電源電圧レンジ • スタートアップ時間 • 安定性 • 水晶振動子の寿命 • 消費電力 • 回路の簡素化 • 標準部品の使用 • 部品点数 6.5.2.4 オシレータ部品の最適値の決定方法 部品を選択する際には知識も多少必要ですが、それよりも計測とテストを何度も繰り返す事が 重要です。通常、水晶振動子は並列共振周波数のみに着目して選択しますが、温度や周波数の 許容誤差といったパラメータも個々のデザインで重要になる事もあります。マイクロチップ社 のアプリケーション ノート AN588『PICmicro® Microcontroller Oscillator Design Guide』には

水晶振動子の動作と発注に関する詳細な情報が記載されています。 PIC24F に内蔵のオシレータ回路は並列オシレータ回路で、並列共振の水晶振動子を選択する 必要があります。負荷容量は通常22 ~ 33 pF のレンジで指定します。このレンジ内であれば、 水晶振動子は目標周波数にきわめて近い周波数で発振します。ただし後述するように、他の利 点を得るためにこれらの値を若干変更する場合もあります。 クロックモードは、主に水晶振動子の目標周波数に基づいて選択します。オシレータのXT モー ドとHS モードの最大の違いは、オシレータ回路の内部インバータのゲインの違いであり、こ れにより利用できる周波数レンジも異なります。通常は、仕様を満たす範囲内で最もゲインの 低いオシレータモードを選択します。これにより、ダイナミック電流 (IDD) を抑える事ができ ます。各オシレータモードの周波数レンジはカットオフ周波数の推奨値で決めていますが、電 圧、温度、部品( 抵抗、コンデンサ、内部オシレータ回路等 ) のばらつきを含めた完全な検証 を行っていれば、ゲインの異なるモードを選択してもかまいません。C1 と C2 も、まず最初は 水晶振動子メーカーの推奨値やデバイスのデータシート記載値を参考にして、負荷容量に基づ いて選択します。ただし、上述のように実際の回路で使用する水晶振動子は、工場での特性評 価に使用したものとはメーカーや電源電圧等の要素が異なるため、デバイスのデータシートに 記載の値はあくまでも参考程度に留めておきます。 容量値は、デバイスで想定される動作環境の範囲内で最も高温および最小VDDでも発振するよ うに選択するのが理想的です。高温および低VDDはいずれもループゲインを抑える作用がある ため、これらの極端な条件下で回路を動作させる事ができれば、温度と電源電圧の組み合わせ がどのように変化しても正常な動作が期待できます。出力正弦波は、ゲインが最大の環境( す なわちVDDが最大で温度が最小の時) にもクリッピングしてはなりません。また、ゲインが最 小の環境( すなわち VDDが最小で温度が最大の時) でもデバイスのデータシートに記載された クロックのロジック入力要件を満たすだけの振幅の大きさが必要です。OSC1 の VILおよびVIH レベルは仕様で規定されている場合があります。詳細は各デバイスのデータシートを参照して ください。

(17)

オシレータ

スタートアップ時間を改善するには、C2 の値を C1 より大きくするという方法があります。こ うすると電源投入時に水晶振動子に生じる位相差が大きくなり、オシレータのスタートアップ が高速化します。これらのコンデンサは、水晶振動子の周波数応答を改善するだけでなく、値 を大きくするとループゲインが小さくなる効果もあります。C2 の選択は、回路全体のゲイン に影響します。C2 の値を大きくすると、水晶振動子がオーバードライブされてゲインが小さ くなる事があります( 後述の Rs に関する説明も参照 )。容量値が大き過ぎると水晶振動子に過 電流が流れるため、C1 と C2 の値を過剰に大きくする事は避けるべきです。水晶振動子に流れ る電流量は簡単に計測できませんが、推奨値から大きく外れなければ、この問題を心配する必 要はありません。 他の外付け部品を全て正しく選択してもまだ水晶振動子がオーバードライブされている場合、 回路に直列抵抗Rs を追加します。直列抵抗を追加するかどうかは、被駆動ピンの OSC2 ピン をオシロスコープで観察して判断します。OSC1 ピンにプローブを接続すると過負荷がかかり、 性能が低下します。スコープのプローブが持つ容量が回路に追加される事を考慮に入れる必要 があります( つまり、10 pF のプローブで観察して 22 pF の C2 で回路の性能が最大になったと すると、実際には33 pF のコンデンサが必要になります )。出力信号にはクリッピングや平坦 化が生じないように注意します。水晶振動子をオーバードライブすると回路が高次の高調波に ジャンプしたり、場合によっては水晶振動子が損傷する事があります。 OSC2 信号はクロック入力ピンの入力最小値から最大値の間をきれいに振れる正弦波でなけれ ばなりません。これを簡単に実現するには、記述のように実際の回路で想定される最小温度と 最大VDDで回路をテストします。この時のクロック出力が最大振幅となります。これでクリッ ピングが生じたり、VDDとVSS付近で正弦波が歪んだりする場合、負荷容量を大きくすると水 晶振動子に過電流が流れたり、メーカーが規定した負荷仕様値から大きく逸脱する可能性があ ります。水晶振動子に流れる電流量を調整するには、水晶振動子のインバータ出力ピンと C2 の間にトリマ ポテンショメータを接続し、きれいな正弦波になるように調整します。水晶振動 子の駆動電流は、温度が最も低くVDDが最も高い時に最大となります。 オーバードライブを防ぐには、トリマ ポテンショメータをこれらの限界条件で調整します。そ の後、トリマ ポテンショメータを最も近い標準値の直列抵抗 Rs で置き換えます。Rs が 20 k 超となる等大きい場合、入力と出力が離れすぎてクロックがノイズの影響を受けやすくなりま す。水晶振動子のオーバードライブを避けるためにこれほど大きな値の直列抵抗が必要になる 場合、C2 の値を大きくして補償するか、オシレータの動作モードを変更します。Rs が約 10 k 未満となり、負荷容量がメーカーの仕様値からあまり離れないような組み合わせを探します。

6.5.3

外部クロック入力

EC モードでは、OSC1 ピンはハイ インピーダンス状態で、CMOS ドライバで駆動できます。 OSC2 ピンは、OSCIOFCN ビット ( コンフィグレーション ワード 2<5>) の設定によって I/O ま たはクロック出力(FOSC/2) のいずれかとして構成できます。OSCIOFCN ビットをセットする とクロックが出力され( 図 6-5)、テストや同期信号として使用できます。OSCIOFCN ビットを クリアすると、OSC2 ピンを汎用 I/O ピンとして利用できます ( 図 6-6)。消費電流を低減する ため、OSC1 と OSC2 の間のフィードバック デバイスは OFF になります。

6-5: 外部クロック入力の動作(OSCIOFCN = 1) 6-6: 外部クロック入力の動作(OSCIOFCN = 0) OSC1 OSC2 FOSC/2 Clock from External System PIC24F OSC1 I/O (OSC2) I/O Clock from External System PIC24F

(18)

6.6

位相ロック ループ (PLL) ブランチ

全てのPIC24F デバイスにおいて、システムクロックには位相ロックループ (PLL) を中心とし た周波数逓倍ブランチが組み込まれています。このブランチを利用すると、低速なプライマリ オシレータまたは外部クロックソースからより高速なクロックを得る事ができるため、高価な 高速水晶/ セラミック振動子が不要になります。また、外部オシレータを使用しなくても内部 高速RC オシレータ (FRC) を使用してデバイスの最大動作速度のクロックを供給できます。 PIC24F に実装されている PLL ブロックにはいくつかの種類があり、どの種類の PLL ブロッ クが実装されているかは各デバイスファミリによって異なります。1 つのブランチで周波数を 逓倍して出力するPLL ブロックもありますが、 複数のブランチで周波数の異なるクロックを生 成し、特定の周辺モジュールに専用クロックを供給できるPLL ブロックもあります。どの PLL ブロックが実装されているかは、各デバイスのデータシートを参照してください。

6.6.1

ベーシック

4x PLL ブロック

ほとんどのPIC24F には、PLL ブロックとしてベーシック 4x PLL が実装されています ( 図 6-7)。 このPLL ブロックは 4 倍に固定された逓倍器を持ち、XT/EC モードのプライマリ オシレータ およびFRC オシレータと組み合わせて使用できます。PLL には、約 3.5 ~ 8 MHz の任意の周 波数を入力できます。 PLL のクロックソースが切り換わった場合、PLL レディ タイマをリセットして PLL を新しい クロックソースに同期させる必要があります。レディ タイマが設定した時間に達すると、PLL 出力が使用可能になります。 図6-7: ベーシック4x PLL ブロック 4x PLL Input from POSC

Input from FRC 4 MHz 8 MHz HSPLL/ECPLL/FRCPLL Output FNOSC<2:0> 011 001

(19)

オシレータ

6.6.2

96 MHz PLL ブロック

USB 機能を内蔵した PIC24F (PIC24FJ256GB110 ファミリ等 ) およびグラフィック コントロー ラ機能を内蔵したPIC24F (PIC24FJ256DA210 ファミリ等 ) には 96 MHz PLL ブロックが実装 されており、フルスピードUSB の動作に必要な安定した 48 MHz クロックやグラフィック コ ントローラ モジュール用のプログラマブル クロックを出力できる他、同じオシレータソース からシステムクロックを生成する事もできます。図 6-8 に 96 MHz PLL ブロックを示します。 96 MHz PLL ブロックには 4 MHz の信号を入力する必要があります。この信号から、24 逓倍固 定のPLL を使用して 96 MHz 信号を生成します。この 96 MHz の信号を、USB クロック生成 用、システムクロック生成用、グラフィック クロック生成用の 3 つのブランチに分岐します。 96 MHz PLL ブロックの有効 / 無効は PLL96MHZ コンフィグレーション ビット ( 一部デバイス を除き、コンフィグレーション ワード 2 <11>) で設定するか、PLL96MHZ コンフィグレーショ ン ビットをセットしていない場合は PLLEN (CLKDIV<5>) 制御ビットで設定します。 PLL96MHZ コンフィグレーション ビットと PLLEN レジスタ ビットは USB およびグラフィッ ク コントローラ モジュールを内蔵した PIC24F にしかありません。 96 MHz PLL プリスケーラは、オシレータからの入力周波数を自動で検出する事はできません。 従って、4 MHz の出力が得られるように PLLDIV<2:0> コンフィグレーション ビット ( 一部デ バイスを除き、コンフィグレーション ワード 2 <14:12>) を使用してユーザが明示的に PLL 分 周器をコンフィグレーションする必要があります。 図6-8: 96 MHz PLL ブロック 96 MHz PLL P L L Presca ler PLLDIV<2:0> Input from POSC Input from FRC ÷12 ÷ 8 ÷ 6 ÷ 5 ÷ 4 ÷ 3 ÷ 2 ÷ 1 111 110 101 100 011 010 001 000 FNOSC<2:0> ÷ 2 ÷ 3 48 MHz Clock for USB Module

Po st sc la er ÷64 ÷63 ... ÷17.50 ÷17.00 ... ÷1.25 ÷1 127 126 ... 65 64 ... 1 0 GCLKDIV<6:0>

Clock Output for Display Interface (DISPCLK) ÷ 2 0 1 Clock Output for Graphics Controller Module (G1CLK) G1CLKSEL Graphics Clock Option 2 Po st sc la er CPDIV<1:0> ÷ 8 ÷ 4 ÷ 2 ÷ 1 11 10 01 00 PLL Output for System Clock 4 MHz or 8 MHz 96 MHz Branch 96 MHz PLL USB Clock ... Graphics Clock System Clock 4 MHz Branch Graphics Clock Option 1 48 MHz Branch

(20)

6.6.2.1 システムクロックの生成 システムクロックは、まず96 MHz ブランチから設定可能なポストスケーラ / 分周器を利用し て幅広い周波数のクロックを得て、これをマルチプレクサで選択して生成します。マルチプレ クサからの出力を3 分周固定の分周器に入力し、その出力をシステムクロックとして使用しま す。図 6-8 にシステムクロック サブブロックのロジックを示します。96 MHz の信号をソース として使用するため、得られるシステムクロックの周波数は表 6-3 に示した通りとなります。 利用可能なシステムクロック周波数の種類は、PLLDIV コンフィグレーション ビットの設定に かかわらず常に同じです。 表6-3: 96 MHz PLL ブロックで生成可能なシステムクロック 6.6.2.2 USB クロックの生成 USB 機能を内蔵した PIC24F では、プライマリ オシレータとこの PLL ブロックを組み合わせ てUSB の動作に必要なクロックソースとして使用できます。PIC24F には USB クロッキング の要件を満たしたFRC オシレータと、PLL ブロックを組み合わせて USB 用のクロックを得る 事ができるデバイスがあります。USB モジュール専用の外部 48 MHz クロックを出力する機能 はありません。USB モジュールのクロック信号は 96 MHz PLL から供給します。96 MHz の信 号を生成するには4 MHz の入力が必要なため、使用できるオシレータの周波数レンジには一定 の制約が課せられます。表 6-4 に、USB の動作で有効なオシレータ コンフィグレーション (ECPLL、HSPLL、XTPLL、FRCPLL) を示します。ここに示したようにオシレータの周波数と PLLDIVの設定を正しく行えば、USBクロック ブランチの出力周波数は常に48 MHzとなります。 表6-4: USB 動作で有効なオシレータ コンフィグレーション

MCU クロック分周 (CPDIV<1:0>) システムクロック周波数 (MIPS)

None (00) 32 MHz (16) 2 (01) 16 MHz (8) 4 (10) 8 MHz (4)(1) 8 (11) 4 MHz (2)(1) Note 1: これらの周波数は USB 動作には使用できません。これらは PLL ブランチを選択し てUSB モジュールが無効の場合のみ使用できます。 入力オシレータ周波数 クロックモード PLL 分周 (PLLDIV<2:0>) 48 MHz ECPLL 12 (111) 32 MHz ECPLL 8 (110) 24 MHz HSPLL, ECPLL 6 (101) 20 MHz HSPLL, ECPLL 5 (100) 16 MHz HSPLL, ECPLL 4 (011) 12 MHz HSPLL, ECPLL 3 (010) 8 MHz ECPLL, XTPLL, FRCPLL(1) 2 (001) 4 MHz ECPLL, XTPLL, FRCPLL(1) 1 (000) Note 1: FRCPLL の精度が ±0.25% なら USB クロックソースとして使用できます。 Note: USB デバイスで 32 MHz を超える周波数のプライマリ オシレータまたは外部ク ロックソースを使用した場合でも、USB モジュールを使用しない時にデバイスの システムクロックをその周波数で動作させる事はできません。どのPIC24F も、最 大システムクロックは32 MHz です。 USB で使用するクロックには精度の条件 (±0.25%) があるため、全ての PIC24F で FRCPLL システムクロックを使用して USB を動作できるわけではありません。 FRC オシレータ モジュールの詳細は、各デバイスのデータシートを参照してくだ さい。

(21)

オシレータ

6.6.2.3 グラフィック クロックの生成 グラフィック コントローラ機能を内蔵した PIC24F では、安定した 2 つのクロック信号が生成 されます。1 つはグラフィック コントローラ モジュールのロジック用で、もう 1 つはディスプ レイ グラス用の信号を生成するディスプレイ モジュール インターフェイスのロジック用で す。図 6-8 にグラフィック クロック サブブロックのロジックを示します。これら 2 つのクロッ ク信号は、グラフィック クロック オプション 1 (96 MHz ブランチ ) またはグラフィック クロッ ク オプション 2 (48 MHz ブランチ ) のいずれかから生成されます。どちらから生成するかは、 マルチプレクサの G1CLKSEL (CLKDIV<4>) 制御ビットで設定します。グラフィック コント ローラ モジュールのロジックはこのマルチプレクサの出力を直接使用しますが、ディスプレイ モジュール インターフェイスのクロックはマルチプレクサの出力をポストスケーラに入力し、 128 種 類 の 周 波 数 か ら 選 択 し ま す。最 終 的 な ク ロ ッ ク 出 力 信 号 は、マ ル チ プ レ ク サ の GCLKDIV<6:0> (CLKDIV2<15:9>) 制御ビットで選択します。128 種類の周波数は、インクリメ ント幅が0.25、0.5、1 の 3 種類あります。詳細は表 6-5 を参照してください。グラフィック コントローラ モジュールを使用するアプリケーションでは、96 MHz PLL を必ず有効にする必 要があります。

6.6.3

PLL ブロックの使用に関する注意事項

LOCK ビット (OSCCON<5>) は、PLL のロック状態を示す読み出し専用のステータスビット として全てのPLL ブロックで共用します。このビットは、PLL がロックするまでの標準遅延時 間(TLOCK) の後、自動的にセットされます。POR 時、および PLL を使用するクロックソース への切り換え時にこのビットはクリアされます。PLL を使用しないクロックソース選択時、こ のビットはクリアされたままとなります。 スタートアップ時にPLL が安定しない場合、LOCK ビットは実際の PLL ロックの状態を正し く反映せず、通常動作時に PLL ロックを喪失しても正しく検出しません。PLL のロック遅延 の詳細は、各デバイスのデータシートで「電気的特性」セクションを参照してください。 FRC オシレータといずれかの PLL ブロックを組み合わせると、マイクロコントローラの動作 に必要な安定したシステムクロックが得られます。ただしデバイスやファミリによっては、こ の組み合わせは同期通信で要求される周波数精度を満たさない事があります。USB 動作は、内 蔵されているFRC オシレータの周波数精度が ±1/4% の場合のみ可能です。UART を使用する シリアル通信は、内蔵されているFRC オシレータの周波数精度が ±2% の場合のみ可能です。 詳細は、各デバイスのデータシートで「電気的特性」のセクションを参照してください。 異なるPLL ブロックを内蔵した PIC24F プラットフォーム ( 例 : GA0 ファミリのデバイスと GB1 ファミリのデバイス ) の間でアプリケーションを移行する場合、PLL とクロック オプショ ンの違いにより、システムクロックを使用する周辺モジュールのコンフィグレーションをやり 直す必要があります。UART 等のシリアル通信の周辺モジュールでは特に注意が必要です。 表6-5: ディスプレイ モジュールのクロック周波数分周 GCLKDIV<6:0> 周波数分周 ディスプレイ モジュール クロック周波数 96 MHz 入力 (48 MHz 入力 ) 0000000 1 96 MHz (48 MHz) 0000001 1.25 (0.25 でインクリメント開始 ) 76.80 MHz (38.4 MHz) 0000010 1.5 64 MHz (32 MHz) … … … 0111111 16.75 5.73 MHz (2.86 MHz) 1000000 17 5.65 MHz (2.82 MHz) 1000001 17.5 (0.5 でインクリメント開始 ) 5.49 MHz (2.74 MHz) 1000010 18 5.33 MHz (2.66 MHz) … … … 1011111 32.5 2.95 MHz (1.47 MHz) 1100000 33 2.91 MHz (1.45 MHz) 1100001 34 (1 でインクリメント開始 ) 2.82 MHz (1.41 MHz) 1100010 35 2.74 MHz (1.37 MHz) … … … 1111110 63 1.52 MHz (762 kHz) 1111111 64 1.50 MHz (750 kHz)

(22)

6.7

セカンダリ オシレータ (SOSC)

ほとんどのPIC24F では、低消費電力セカンダリ オシレータ (SOSC) は 32.768 kHz の水晶振 動子で動作するように設計されています。このオシレータはデバイスのSOSCO および SOSCI ピンにあり、水晶振動子を使用する低消費電力動作用の副クロックソースとして機能します。 セカンダリ オシレータは、Timer1 や RTCC (Real-Time Clock and Calendar) 等、低消費電力動 作時にクロック信号を必要とする各種モジュールにクロックを供給します。 一部のPIC24F では、小電流駆動モードと大電流駆動モードを選択して利用できます。大電流 駆動モードを使うとスタートアップ時間が短縮し、ノイズにも強くなります。

6.7.1

セカンダリ

オシレータの有効化

SOSCの動作はFNOSCコンフィグレーション ビットで選択し、SOSCENビット(OSCCON<1>) で制御します。ほとんどのPIC24F では、SOSCEN をセットしてセカンダリ オシレータを有効 にし、SOSC を必要とするモジュールで使用する必要があります。ただし一部の PIC24F では、 アプリケーションで SOSCEN をセットしなくても SOSC を必要とするモジュールでセカンダ リ オシレータを使用できます。このようなデバイスでは、モジュールを有効にすると、クロッ ク信号が必要な時にSOSC が自動的に ON になります。ただし、SOSC はスタートアップ時間 が長いため注意が必要です。SOSCEN ビットを使って SOSC を手動で起動しておけば、周辺モ ジュールのスタートアップ遅延を防ぐ事ができます。詳細は各PIC24F のデータシートを参照し てください。

6.7.2

セカンダリ

オシレータの動作

6.7.2.1 連続動作 SOSCEN ビットをセットすると、常に SOSC が有効になります。このオシレータを常に動作 させておくと、低消費電力動作時に32 kHz システムクロックに素早く切り換わります。メイ ン オシレータに戻る際、水晶振動子を使用している場合はオシレータ スタートアップ時間が 必要です(6.5.2.2「オシレータ スタートアップ タイマ」参照 )。 また、Timer1 または RTCC モジュールを使用するリアルタイム クロック アプリケーションで は、セカンダリ オシレータを常時動作させておく必要があります。詳細は、『PIC24F ファミリ リファレンス マニュアル』セクション 14「タイマ」(DS39704) およびセクション 29「リアル タイムクロック カレンダ (RTCC)」(DS39696) を参照してください。 6.7.2.2 不連続動作 SOSCEN をクリアした場合、セカンダリ オシレータをデバイスの現在のクロックソースとし て選択した時(COSC<2:0> = 100) だけ SOSC が動作します。セカンダリ オシレータがデバイ スのクロックソースの時にデバイスがスリープモードに移行すると、SOSC は自動的に無効に なります。 6.7.2.3 動作モード 6.7.2.3.1 小電流/ 大電流駆動モード 一部のPIC24F では、SOSC を小電流駆動または大電流駆動モードで動作できます。この設定 は、セカンダリ オシレータ モード コンフィグレーション ビット SOSCSEL<1:0> で行います。 詳細は各デバイスのデータシートを参照してください。 小電流駆動モードではSOSC はノイズの影響を受けやすくなり、スタートアップ時間も長くな ります。このモードを使用する場合はSOSC 回路の設計とレイアウトに注意し、オシレータの スタートアップと発振が正しく行われる事を確認します。 6.7.2.3.2 デジタル モード 一部のPIC24F では、SOSC をデジタル モードで動作するようコンフィグレーションできます。 この設定も、セカンダリ オシレータ モード コンフィグレーション ビット SOSCSEL<1:0> で 行います。詳細は各デバイスのデータシートを参照してください。 Note: OSCCON レジスタへの書き込みを実行する前には、ロック解除シーケンスが必要 です。詳細は、6.11.2「オシレータ切り換えシーケンス」を参照してください。

(23)

オシレータ

このモードで動作中は、SOSCI および SOSCO ピンはデジタル I/O ピンとして構成されます。 外部32 kHz クロックソースを使って SOSCI (SCLKI) ピンを駆動すると、SOSC を使用するよ うに構成されているモジュールにクロック信号が供給されます。この場合、水晶振動子の駆動 回路は無効になり、SOSCEN ビット (OSCCON<1>) は意味を持ちません。

6.8

内部高速 RC オシレータ (FRC)

FRC オシレータは、高速 ( 定格 8 MHz) な内部 RC オシレータです。このオシレータは、外部 水晶振動子やセラミック振動子を使用せずデバイスを高速に動作させたい場合に使用します。 COSC ビットが「111」、「001」、「000」の場合、PIC24F は FRC オシレータで動作します。

6.8.1

FRC オシレータの有効化

FRC オシレータはデバイス初期化中のリファレンス クロックとして使用されるため、POR 時 には常に有効になります。デバイスのコンフィグレーションが完了してPWRT の設定時間が経 過したら、FRC はデバイスのクロックソースとして選択されている場合のみ動作を継続しま す。

6.8.2

FRC ポストスケーラ モード (FRCDIV)

内部高速RC オシレータをクロックソースとして使用する場合、8 MHz( 定格 ) 以外の FRC 出 力を利用する事もできます。もう1 つの FRC モードである FRCDIV では、選択可能なポスト スケーラを利用して8 MHz よりも低いクロック周波数を 7 種類切り換えて使用できる他、現発 振の 8 MHz 出力をそのまま使用する事もできます。ポストスケーラは、RCDIV<2:0> ビット (CLKDIV<10:8>) で設定します。8 MHz( 定格 ) の出力の場合、利用可能な周波数レンジは 4 MHz (2 分周 ) ~ 31 kHz (256 分周 ) となります。上記のレンジで周波数を選択できるため、ユーザ はRCDIV ビットを書き換えるだけでいつでもアプリケーションの消費電力を低減できます。 COSC ビットが「111」の時は常に FRCDIV モードが選択されます。

6.8.3

PLL 付き FRC オシレータ モード (FRCPLL)

COSC ビットが「001」の時は常に FRCPLL モードが選択されます。また、このモードはFRC ポストスケーラを1 分周または 2 分周に設定 (RCDIV<2:0> = 000 または 001) した場合のみ有 効になります。 ベーシック4x PLL ブロックを内蔵したデバイスの場合、FRC ポストスケーラ ブロックの出力 とPLL を組み合わせて16 MHz または 32 MHz のシステムクロック ( 定格 ) を得る事ができます。 このモードでは、水晶振動子やセラミック振動子を使用するプライマリ オシレータ モードより も周波数の精度はやや低下しますが、外部オシレータを使用せずデバイスを高速動作させる事 ができます。 96 MHz PLL ブロックを内蔵したデバイスの場合、FRC ポストスケーラ ブロックの出力と PLL を組み合わせて4 MHz、8 MHz、16 MHz、32 MHz のシステムクロック ( 定格 ) を得る事がで きます。48 MHz の USB クロックを生成する事もできますが、USB を正常動作させるには、 FRC オシレータが USB で要求される周波数精度の条件を満たしている必要があります。FRC オシレータの電気的特性の詳細は、各デバイスのデータシートを参照してください。FRC オシ レータがUSB で要求される周波数精度の条件を満たしていない場合、USB がアクティブな間 はFRCPLL モードを使用しないでください。

Note: FRC の精度によっては、FRC オシレータモードは UART や USB 等のシリアル通 信で要求される周波数精度の要件を満たさない事があります。FRC の精度の詳細 は、製品ファミリのデータシートを参照してください。

図 6-2: クロック / 命令サイクルのタイミング          F OSC PCFCY PC PC + 2 PC + 4 Fetch INST (PC)
図 6-5: 外部クロック入力の動作 (OSCIOFCN = 1)  図 6-6: 外部クロック入力の動作 (OSCIOFCN = 0)  OSC1OSC2FOSC/2Clock fromExternal System PIC24F OSC1 I/O (OSC2)I/OClock fromExternal System PIC24F
表 6-6 に PIC24F のオシレータ モジュールに関連するレジスタの一覧を示します。

参照

関連したドキュメント

We include applications to elliptic operators with Dirichlet, Neumann or Robin type boundary conditions on L p -spaces and on the space of continuous

&lt; &gt;内は、30cm角 角穴1ヶ所に必要量 セメント:2.5(5)&lt;9&gt;kg以上 砂 :4.5(9)&lt;16&gt;l以上 砂利 :6 (12)&lt;21&gt; l

Views of Kazunogawa Hydroelectric Power Station Dams &lt;Upper dam (Kamihikawa dam)&gt;. &lt;Lower dam

&lt;6&gt; MIN2 Read/Write When the ADM1027 is in automatic fan speed control mode, this bit defines whether PWM 2 is off (0% duty cycle) or at PWM 2 minimum duty cycle when

&lt;7:3&gt; Remote 1 Temp T MIN R/W Contains the minimum temperature value for automatic fan speed control based on local temperature readings. T MIN can be programmed to

[r]

When value of &lt;StThr[3:0]&gt; is different from 0 and measured back emf signal is lower than &lt;StThr[3:0]&gt; threshold for 2 succeeding coil current zero−crossings (including