PLL - Microchip

注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジ
ナルの英語版をご参照願います。
セクション 42. 拡張 PLL を備えたオシレータ
ハイライト
42
本セクションには以下の主要項目を記載しています。
はじめに ..................................................................................................................... 42-2
制御レジスタ ............................................................................................................. 42-4
動作 : クロック生成とクロック源 ............................................................................ 42-14
割り込み ................................................................................................................... 42-30
省電力モード中の動作 ............................................................................................. 42-30
各種リセットの影響 ................................................................................................. 42-31
クロック供給に関するガイドライン ....................................................................... 42-31
関連アプリケーション ノート ................................................................................. 42-34
改訂履歴 ................................................................................................................... 42-35
© 2014 Microchip Technology Inc.
Preliminary
DS60001250A_JP - p. 42-1
拡張 PLL を備えた
オシレータ
42.1
42.2
42.3
42.4
42.5
42.6
42.7
42.8
42.9
PIC32 ファミリ リファレンス マニュアル
Note:
ファミリ リファレンス マニュアルの本セクションは、デバイス データシートの補
足を目的としています。本書の内容は PIC32 ファミリの一部のデバイスには対応
していません。
本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デバイス
データシート内の「オシレータ コンフィグレーション」の冒頭に記載している注意書き
でご確認ください。
デバイス データシートとファミリ リファレンス マニュアルの各セクションは、Microchip
社のウェブサイト (http://www.microchip.com) からダウンロードできます。
42.1
はじめに
本書では、PIC32 のオシレータ システムとその動作について説明します。PIC32 のオシレータ
システムは以下のモジュールと機能を備えます。
• クロック源として選択可能な 5 つの外部および内部オシレータ オプション
• 入力分周比 / 逓倍比 / 出力分周比を選択可能な内蔵位相ロックループ (PLL) ( 内部および外部
オシレータ信号源の動作周波数を逓倍可能 )
• オシレータ信号源を分周する内蔵ポストスケーラ ( 分周比は選択可能 )
• ソフトウェア制御によるクロック源の切り換え
• 柔軟な参照クロック出力
• 周辺モジュール向けに周波数の異なる複数のクロックを生成可能 ( 性能の柔軟性が向上 )
• クロック障害を検出し、アプリケーションを安全に回復またはシャットダウンするフェイル
セーフ クロック監視 (FSCM) 機能
• クロック障害発生時に 8 MHz クロックを供給する事でクラス B 動作をサポートするための
専用バックアップ高速 RC オシレータ (BFRC) ( 一部の PIC32 デバイスでのみ利用可能。利
用の可否は各デバイス データシート内の「オシレータ コンフィグレーション」参照 )
PIC32 オシレータ システムのブロック図を図 42-1 に示します。
DS60001250A_JP - p. 42-2
Preliminary
© 2014 Microchip Technology Inc.
セクション 42. 拡張 PLL を備えたオシレータ
図 42-1: PIC32 ファミリ オシレータ システムのブロック図
この図は PIC32 オシレータ モジュールを全般的に説明するためのものであり、全てのデバイスが全ての機能を実
装しているわけではありません。ご使用になるデバイスで利用可能な機能については、各デバイス データシート内
の「オシレータ コンフィグレーション」を参照してください。
Note:
(12 or 24 MHz only)
From POSC
USB Clock (USBCLK)
USB PLL
Reference Clock(5)
UPLLEN
REFOxCON
UPLLFSEL
System PLL
N
FIN(6)
Fvco(6)
PLL x M
PLLIDIV<2:0>
PLLRANGE<2:0>
(N)
PLLMULT<2:0>
PLLICLK
(M)
PLLODIV<2:0>
(N)
 N FSYS
(6)
REFOxTRIM
ROTRIM<8:0> (M)
M 

 2   N + ----------
512
RODIV<4:0> (N)
OE
42
REFCLKOx
FREF(6)
To SPI,
ADC,
SQI
‘x’ = 1-4
SPLL
ROSEL<3:0>
SPLL
Primary Oscillator (POSC)
OSC1
C1(3)
RP(1)
RF(2)
XTAL
Enable
RS(1)
C2
(3)
POSC (HS, EC)
Peripheral Bus Clock(5)
Peripherals,
CPU
Postscaler
PBCLKx
PBxDIV<6:0>
(N)
‘x’ = 1-8
OSC2(4)
To ADC and Flash
FRC
Oscillator
8 MHz typical
Postscaler  N
FRCDIV<2:0>
(N)
TUN<5:0>
Backup FRC
Oscillator
8 MHz typical
LPRC
Oscillator
SYSCLK
FRCDIV
BFRC
LPRC
31.25 kHz typical
Secondary Oscillator (SOSC)
SOSCO
32.768 kHz
SOSC
SOSCEN
Clock Control Logic
SOSCI
凡例 :
Fail-Safe
Clock
Monitor
一部のデバイスは、影付きの破線で囲んだ機能を複数個実
装しています。詳細は、各デバイス データシート内の「オ
シレータ コンフィグレーション」を参照してください。
FSCM INT
FSCM Event
NOSC<2:0>
COSC<2:0>
OSWEN
FCKSM<1:0>
WDT, PWRT, RTCC
Timer1, RTCC
Note 1:
2:
3:
4:
5:
6:
AT ストリップカット水晶振動子を使う場合や、クリッピングを防ぐ必要がある場合、直列抵抗 Rs が必要になる事が
あります。あるいは、オシレータ回路のゲインを高くする必要がある場合、1 M の並列抵抗 RP を追加します。
内部フィードバック抵抗 RF の標準的なレンジは 2 ~ 10 M です。
42.7.3.1「最適オシレータ部品の選択方法」を参照してください。
特定のクロックモードでは、OSC2 ピンから PBCLK1 を 2 分周したクロックを出力できます。
この機能は一部の PIC32 デバイスのみで利用可能です。利用の可否は各デバイス データシート内の「オシレータ
コンフィグレーション」を参照してください。
FSYS 周波数の制限については、各デバイス データシート内の「電気的特性」を参照してください。
© 2014 Microchip Technology Inc.
Preliminary
DS60001250A_JP - p. 42-3
拡張 PLL を備えた
オシレータ
REFCLKIx
POSC
FRC
LPRC
SOSC
PBCLK1
SYSCLK
BFRC
PIC32 ファミリ リファレンス マニュアル
42.2
制御レジスタ
オシレータ モジュールは下記の特殊機能レジスタ (SFR) を備えています。
• OSCCON: オシレータ制御レジスタ
このレジスタはクロック切り換えを制御し、使用中のクロック源、PLL ロック、クロック
障害条件を監視するためのステータス情報を提供します。
• OSCTUN: FRC Tuning Register(1)
このレジスタは、ソフトウェアによる内部 FRC オシレータ周波数の調整に使います。こ
のレジスタを使う事で、FRC オシレータ周波数を ±12% の範囲で調整できます。
• SPLLCON: システム PLL 制御レジスタ
このレジスタは、システムクロック PLL を制御するために使います。このレジスタを使う
と、入力周波数よりも高いシステム周波数を生成できます。
• REFOCON/REFOxCON: 参照オシレータ制御レジスタ
このレジスタは参照オシレータ出力を制御します。
• REFOTRIM/REFOxTRIM: 参照オシレータ調整レジスタ
このレジスタは参照オシレータの微調整に使います。
• PBxDIV: 周辺モジュールバス「x」クロック分周比制御レジスタ (「x」= 1 ~ 8)
このレジスタは、個々の周辺モジュール クロックに対してシステムクロックの分周比を設
定するために使います。
Note:
DS60001250A_JP - p. 42-4
オシレータ モジュール関連の設定には、上記のレジスタに加えてデバイス コン
フィグレーション ワードレジスタも使います。これらのレジスタの詳細について
は、各デバイス データシート内の「その他の特殊機能」を参照してください。
Preliminary
© 2014 Microchip Technology Inc.
© 2014 Microchip Technology Inc.
特殊機能レジスタの一覧
42.2.1
表 42-1 に、オシレータ モジュールに関連するレジスタの一覧を示します。その後に、各レジスタの詳細な説明を記載しています。
表 42-1: オシレータ関連 SFR の一覧
名称
OSCCON
OSCTUN
Bit
Bit 31/15 Bit 30/14 Bit 29/13 Bit 28/12 Bit 27/11 Bit 26/10
レンジ
31:16
—
15:0
—
31:16
—
—
—
—
COSC<2:0>
—
—
—
Bit 25/9
Bit 24/8
—
FRCDIV<2:0>
—
NOSC<2:0>
—
—
DRMEN SOSCRDY
—
—
ULOCK
—
—
15:0
—
—
—
—
—
—
—
—
—
—
PLLODIV<2:0>
—
15:0
—
—
—
—
—
PLLIDIV<2:0>
PLLICLK
REFOCON/ 31:16
REFOxCON 15:0
—
ON
—
Bit 22/6
CLKLOCK
31:16
SPLLCON
—
—
Bit 23/7
—
Bit 21/5 Bit 20/4 Bit 19/3
—
—
SLOCK SLPEN
—
—
Bit
118/2
—
—
CF
—
—
—
Bit 17/1 Bit 16/0
—
—
SOSCEN OSWEN
—
—
TUN<5:0>(1)
—
PLLMULT<6:0>
—
—
—
—
—
—
—
—
—
—
—
PLLRANGE<2:0>
RODIV<14:0>
—
SIDL
OE
RSLP
—
DIVSWEN ACTIVE
—
ROSEL<3:0>
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
PBxDIV
31:16
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
15:0
ON
—
—
—
PBDIVRDY
—
—
—
—
Note 1:
ROTRIM<8:0>
PBDIV<6:0>
一部のデバイスでは、これらのビットを利用できません。利用の可否については、各デバイス データシート内の「オシレータ コンフィグレーション」を参照してください。
DS60001250A_JP - p. 42-5
セクション 42. 拡張 PLL を備えたオシレータ
Preliminary
REFOTRIM/ 31:16
REFOxTRIM 15:0
42
拡張 PLL を備えた
オシレータ
PIC32 ファミリ リファレンス マニュアル
レジスタ 42-1: OSCCON: オシレータ制御レジスタ
ビット
レンジ
31:24
23:16
15:8
7:0
Bit
Bit
31/23/15/7 30/22/14/6
U-0
U-0
Bit
29/21/13/5
U-0
Bit
Bit
28/20/12/4 27/19/11/3
U-0
U-0
Bit
26/18/10/2
Bit
25/17/9/1
Bit
24/16/8/0
R/W-0
R/W-0
FRCDIV<2:0>
R/W-1
—
—
—
—
—
R/W-0
R-0
U-0
U-0
U-0
U-0
—
R-y
COSC<2:0>
R-0
SLOCK
—
R-y
—
U-0
—
R/W-0, HS
CF(2)
—
R/W-y
DRMEN(1) SOSCRDY
U-0
R-y
—
R/W-0
R-0
CLKLOCK ULOCK(1)
R/W-0
SLPEN
U-0
—
U-0
—
R/W-y
NOSC<2:0>
R/W-y
SOSCEN
U-0
—
R/W-y
R/W-y
OSWEN(3)
凡例 :
y = POR 時にコンフィグレーション ビットの値に設定
HS = ハードウェアでセット
R = 読み出し可能ビット
W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し
-n = POR 時の値
1 = ビットはセット
0 = ビットをクリア
x = ビットは未知
bit 31-27 未実装 :「0」として読み出し
bit 26-24 FRCDIV<2:0>: 内部高速 RC (FRC) オシレータ クロック分周比ビット
111 = FRC を 256 分周する
110 = FRC を 64 分周する
101 = FRC を 32 分周する
100 = FRC を 16 分周する
011 = FRC を 8 分周する
010 = FRC を 4 分周する
001 = FRC を 2 分周する
000 = FRC を 1 分周する (POR 時の既定値 )
bit 23
DRMEN: ドリームモード イネーブルビット (1)
1 = ドリームモードを有効にする
割り込み発生時に CPU をスリープから復帰させずに DMA 転送を実行できる
0 = ドリームモードを無効にする
動作中の周辺モジュールが生成する全ての割り込みは CPU を復帰させる
bit 22
SOSCRDY: セカンダリ オシレータ (Sosc) レディ表示ビット
1 = SOSC は安定動作中
0 = SOSC は動作準備中または動作していない
bit 21-15 未実装 :「0」として読み出し
bit 14-12 COSC<2:0>: 切り換え前オシレータ選択ビット
111 = FRCDIV<2:0> の設定に従って分周した高速 RC オシレータ (FRC)
110 = バックアップ高速 RC オシレータ (BFRC) ( このクロックへの切り換えはハードウェア FSCM によっ
て行われます。ユーザがこのクロックを選択する事はできません )(1)
101 = 低消費電力 RC (LPRC) オシレータ
100 = SOSC
011 = 予約済み ( 使用禁止 )
010 = プライマリ オシレータ (POSC) (HS および EC モード )
001 = システム PLL (SPLL)
000 = FRCDIV<2:0> の設定に従って分周した FRC オシレータ
これらのビットが利用可能かどうかと、これらのビットの定義は、デバイスによって異なります。詳細は
各デバイス データシート内の「オシレータ コンフィグレーション」を参照してください。これらのビッ
トは、リセット時に FNOSC コンフィグレーション ビット (DEVCFG1<2:0>) の値に設定されます。
一部のデバイスではこのビットまたは機能を利用できません。利用の可否は各デバイス データシート内
の「オシレータ コンフィグレーション」を参照してください。
2: このビットに「1」を書き込むと、FSCM クロック切り換えが発生します。
3: このビットのリセット値は、IESO ビット (DEVCFG1<7>) の値によって決まります。IESO ビットが「1」
の場合、OSWEN ビットは「1」にリセットされ、FRC から DEVCFG1 および DEVCFG2 レジスタで選
択されているオシレータ オプションへの切り換えがトリガされます。
Note: このレジスタに書き込むには、ロック解除シーケンスを実行する必要があります。詳細は 42.3.7.2「オシ
レータ切り換えシーケンス」を参照してください。
Note 1:
DS60001250A_JP - p. 42-6
Preliminary
© 2014 Microchip Technology Inc.
セクション 42. 拡張 PLL を備えたオシレータ
レジスタ 42-1: OSCCON: オシレータ制御レジスタ ( 続き )
bit 11
未実装 :「0」として読み出し
bit 10-8
NOSC<2:0>: 切り換え後オシレータ選択ビット
111 = FRCDIV<2:0> の設定に従って分周した FRC
110 = 予約済み ( 使用禁止 )
101 = LPRC
100 = SOSC
011 = 予約済み ( 使用禁止 )
010 = POSC (HS および EC モード )
001 = SPLL
000 = FRCDIV<2:0> の設定に従って分周した FRC
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
これらのビットが利用可能かどうかと、これらのビットの定義は、デバイスによって異なります。詳細は
各デバイス データシート内の「オシレータ コンフィグレーション」を参照してください。これらのビッ
トは、リセット時に FNOSC<2:0> コンフィグレーション ビット (DEVCFG1<2:0>) の値に設定されます。
CLKLOCK: クロック選択ロック イネーブルビット
1 = クロックと PLL の選択をロックする
0 = クロックと PLL は変更可能
CLKLOCK を一度セットすると、デバイスリセットが発生するまでクリアできません。このビットがセッ
トされている場合、NOSC<2:0> および OSWEN ビットへの書き込みは禁止されます。
ULOCK: USB PLL ロック ステータスビット (1)
1 = USB PLL モジュールはロックされている、または USB PLL モジュールの起動タイマは終了した
0 = USB PLL モジュールはロックされていない、または USB PLL モジュールの起動タイマが作動中、また
は USB PLL は無効
SLOCK: システム PLL ロック ステータスビット
1 = システム PLL モジュールはロックされている、またはモジュール起動タイマは終了した
0 = システム PLL モジュールはロックされていない、またはモジュール起動タイマが作動中、またはシス
テム PLL は無効
SLPEN: スリープモード イネーブルビット
1 = WAIT 命令の実行によってデバイスはスリープに移行する
0 = WAIT 命令の実行によってデバイスはアイドルに移行する
CF: クロック障害検出ビット (2)
1 = FSCM がクロック障害を検出した
0 = クロック障害は検出されていない
未実装 :「0」として読み出し
SOSCEN: セカンダリ オシレータ (SOSC) イネーブルビット
1 = SOSC を有効にする
0 = SOSC を無効にする
POR 時の既定値は FSOCSEN ビット (DEVCFG1<5>) で設定します。
OSWEN: オシレータ切り換えイネーブルビット (3)
1 = NOSC<2:0> ビットが指定するオシレータへの切り換えを開始する
0 = オシレータ切り換えは完了した
一部のデバイスではこのビットまたは機能を利用できません。利用の可否は各デバイス データシート内
の「オシレータ コンフィグレーション」を参照してください。
2: このビットに「1」を書き込むと、FSCM クロック切り換えが発生します。
3: このビットのリセット値は、IESO ビット (DEVCFG1<7>) の値によって決まります。IESO ビットが「1」
の場合、OSWEN ビットは「1」にリセットされ、FRC から DEVCFG1 および DEVCFG2 レジスタで選
択されているオシレータ オプションへの切り換えがトリガされます。
Note: このレジスタに書き込むには、ロック解除シーケンスを実行する必要があります。詳細は 42.3.7.2「オシ
レータ切り換えシーケンス」を参照してください。
Note 1:
© 2014 Microchip Technology Inc.
Preliminary
DS60001250A_JP - p. 42-7
拡張 PLL を備えた
オシレータ
bit 7
42
PIC32 ファミリ リファレンス マニュアル
レジスタ 42-2: OSCTUN: FRC 調整レジスタ
ビット
レンジ
31:24
23:16
15:8
7:0
Bit
31/23/15/7
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
Bit
24/16/8/0
U-0
U-0
U-0
U-0
U-0
U-0
U-0
U-0
—
—
—
—
—
—
—
—
U-0
U-0
U-0
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
R/W-0
R/W-0
—
—
—
U-0
U-0
U-0
—
—
—
U-0
—
U-0
—
U-0
—
R/W-0
R/W-0
R/W-0
R/W-0
TUN<5:0>(1)
凡例 :
y = POR 時にコンフィグレーション ビットの値に設定
R = 読み出し可能ビット
W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し
-n = POR 時の値
1 = ビットはセット
0 = ビットをクリア
bit 31-6
未実装 :「0」として読み出し
bit 5-0
TUN<5:0>: FRC オシレータ調整ビット (1)
100000 = 中心周波数 -12.5%
100001 =
•
•
•
111111 =
000000 = 中心周波数 ( オシレータは公称周波数 (8 MHz) で動作する )
000001 =
•
•
•
011110 =
011111 = 中心周波数 -12.5%
x = ビットは未知
Note 1:
OSCTUN レジスタを設定する事で、FRC 周波数に対する温度の影響を幅広いレンジで補償できます。上
記の周波数調整量は近似値であり、正確な特性値ではありません。
Note:
このレジスタに書き込むには、ロック解除シーケンスを実行する必要があります。詳細は 42.3.7.2「オシ
レータ切り換えシーケンス」を参照してください。
DS60001250A_JP - p. 42-8
Preliminary
© 2014 Microchip Technology Inc.
セクション 42. 拡張 PLL を備えたオシレータ
レジスタ 42-3: SPLLCON: システム PLL 制御レジスタ
ビット
レンジ
31:24
23:16
15:8
7:0
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
Bit
24/16/8/0
U-0
U-0
U-0
U-0
U-0
R/W-y
—
—
—
—
R/W-y
PLLODIV<2:0>
R/W-y
—
U-0
R/W-y
R/W-y
R/W-y
R/W-y
PLLMULT<6:0>
R/W-y
R/W-y
R/W-y
U-0
U-0
U-0
U-0
R/W-y
R/W-y
PLLIDIV<2:0>
R/W-y
U-0
—
U-0
U-0
—
U-0
—
R/W-y
—
U-0
—
R/W-y
PLLICLK
—
R/W-y
R/W-y
PLLRANGE<2:0>
凡例 :
y = POR 時にコンフィグレーション ビットの値に設定
R = 読み出し可能ビット
W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し
-n = POR 時の値
1 = ビットはセット
0 = ビットをクリア
x = ビットは未知
bit 31-27 未実装 :「0」として読み出し
bit 26-24 PLLODIV<2:0>: システム PLL (SPLL) 出力クロック分周比ビット
これらのビットの詳細と利用の可否については、各デバイス データシート内の「オシレータ コンフィグ
レーション」を参照してください。
これらのビットの既定値設定は、DEVCFG2 レジスタの FPLLODIV<2:0> コンフィグレーション ビットで
指定します。詳細は各デバイス データシート内の「その他の特殊機能」を参照してください。
bit 23
未実装 :「0」として読み出し
bit 22-16 PLLMULT<6:0>: システムクロック PLL 逓倍比ビット
これらのビットの詳細と利用の可否については、各デバイス データシート内の「オシレータ コンフィグ
レーション」を参照してください。
これらのビットの既定値設定は、DEVCFG2 レジスタの FPLLMUL<6:0> コンフィグレーション ビットで
指定します。詳細は各デバイス データシート内の「その他の特殊機能」を参照してください。デバイスで
利用可能なその他のビット値については、各デバイス データシート内の「オシレータ コンフィグレーショ
ン」を参照してください。
bit 15-11 未実装 :「0」として読み出し
bit 10-8 PLLIDIV<2:0>: SPLL 入力クロック分周比ビット
これらのビットの詳細と利用の可否については、各デバイス データシート内の「オシレータ コンフィグ
レーション」を参照してください。
これらのビットの既定値設定は、DEVCFG2 レジスタの FPLLIDIV<2:0> コンフィグレーション ビットで
指定します。詳細は各デバイス データシート内の「その他の特殊機能」を参照してください。
bit 7
PLLICLK: SPLL 入力クロック源ビット
1 = FRC を SPLL への入力として選択する
0 = POSC を SPLL への入力として選択する
POR 時の既定値は、DEVCFG2 レジスタの FPLLICLK コンフィグレーション ビットで指定します。詳細
は各デバイス データシート内の「その他の特殊機能」を参照してください。
bit 6-3
未実装 :「0」として読み出し
bit 2-0
PLLRANGE<2:0>: SPLL 周波数レンジ選択ビット
これらのビットの詳細と利用の可否については、各デバイス データシート内の「オシレータ コンフィグ
レーション」を参照してください。
POR 時の既定値は、DEVCFG2 レジスタの FPLLRANGE<2:0> コンフィグレーション ビットで指定しま
す。詳細は各デバイス データシート内の「その他の特殊機能」を参照してください。
Note 1: このレジスタに書き込むには、ロック解除シーケンスを実行する必要があります。詳細は 42.3.7.2「オシ
レータ切り換えシーケンス」を参照してください。
2: SPLL をクロック源として選択 (COSC<2:0> = 001) している場合、このレジスタへの書き込みは禁止さ
れます。
© 2014 Microchip Technology Inc.
Preliminary
DS60001250A_JP - p. 42-9
42
拡張 PLL を備えた
オシレータ
Bit
31/23/15/7
PIC32 ファミリ リファレンス マニュアル
レジスタ 42-4: REFOCON/REFOxCON: 参照オシレータ制御レジスタ
ビット
レンジ
Bit
31/23/15/7
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
U-0
R/W-0
R/W-0
R/W-0
R/W-0
31:24
—
R/W-0
23:16
R/W-0
U-0
R/W-0
RODIV<7:0>(3)
R/W-0
R/W-0
ON
U-0
—
SIDL
OE
U-0
U-0
U-0
—
—
—
—
(5)
7:0
RODIV<14:8>
R/W-0
R/W-0
R/W-0
15:8
凡例 :
R/W-0
凡例 :
HC = ハードウェア クリア可能ビット
R = 読み出し可能ビット
W = 書き込み可能ビット
-n = POR 時の値
1 = ビットはセット
(2)
RSLP
R/W-0
Bit
26/18/10/2
Bit
25/17/9/1
Bit
24/16/8/0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
U-0
R/W-0, HC
R-0, HS,
—
DIVSWEN
ACTIVE
R/W-0
R/W-0
R/W-0
(3)
ROSEL<3:0>
(1,3)
HS = ハードウェア セット可能ビット
U = 未実装ビット、「0」として読み出し
0 = ビットをクリア
x = ビットは未知
bit 31
未実装 :「0」として読み出し
bit 30-16 RODIV<14:0>: 参照クロック分周比ビット (1,3)
出力クロック周波数は、源クロック周波数 /2 × [RODIV + (ROTRIM  512)] です。この値は以下のように
参照クロック分周比を選択します。詳細は図 42-1 を参照してください。
111111111111111 = 出力クロック周波数 = 源クロック周波数 /65,534
111111111111110 = 出力クロック周波数 = 源クロック周波数 /65,532
•
•
•
000000000000010 = 出力クロック周波数 = 源クロック周波数 /4
000000000000001 = 出力クロック周波数 = 源クロック周波数 /2
000000000000000 = 出力クロック周波数 = 源クロック周波数 ( 分周しない )
ON: 出力イネーブルビット (1)
1 = 参照オシレータ モジュールを有効にする
0 = 参照オシレータ モジュールを無効にする
未実装 :「0」として読み出し
SIDL: アイドル中周辺モジュール停止ビット
1 = デバイスがアイドルに移行するとモジュールは動作を停止する
0 = デバイスがアイドル中でもモジュールは動作を継続する
OE: 参照クロック出力イネーブルビット
1 = REFCLKOx ピンで参照クロックを出力する
0 = REFCLKOx ピンで参照クロックを出力しない
RSLP: スリープ中参照オシレータ モジュール動作ビット (2)
1 = スリープ中も参照オシレータ モジュール出力は動作を継続する
0 = スリープ中に参照オシレータ出力は停止する
bit 15
bit 14
bit 13
bit 12
bit 11
Note 1:
2:
3:
4:
5:
Note:
ACTIVE ビットが「1」の時に ROSEL<3:0> および RODIV<14:0> ビットに書き込まないでください。書
き込んだ場合の結果は不確定です。
ROSEL<3:0> ビットが「0000」または「0001」の場合、このビットは無視されます。
ON ビット (REFOCON<15>) が「1」の時にこれらのビットに書き込んだ場合、その効果は DIVSWEN
ビットが「1」にセットされるまで反映されません。
このビット設定は、BFRC オシレータを備えたデバイスでのみ選択可能です。利用の可否は各デバイス
データシート内の「オシレータ コンフィグレーション」を参照してください。
ON ビットと ACTIVE ビットの値が一致していない時にこのレジスタに書き込まないでください。
一部のデバイスではこのレジスタを利用できません。利用の可否は各デバイス データシート内の「オシ
レータ コンフィグレーション」を参照してください。
DS60001250A_JP - p. 42-10
Preliminary
© 2014 Microchip Technology Inc.
セクション 42. 拡張 PLL を備えたオシレータ
レジスタ 42-4: REFOCON/REFOxCON: 参照オシレータ制御レジスタ ( 続き )
bit 10
bit 9
未実装 :「0」として読み出し
DIVSWEN: 分周比切り換えイネーブルビット
1 = 分周比切り換えを実行中
0 = 分周比切り換えは完了した
ACTIVE: 参照クロック要求ステータスビット
1 = 参照クロック要求はアクティブ
0 = 参照クロック要求は非アクティブ
未実装 :「0」として読み出し
ROSEL<3:0>: 参照クロック源選択ビット (1)
1111 = 予約済み ( 使用禁止 )
•
•
•
1001 = BFRC オシレータ未実装デバイスでは予約済み ( 使用禁止 )
= BFRC(4)
1000 = REFCLKI
0111 = システム PLL
0110 = 予約済み ( 使用禁止 )
0101 = SOSC
0100 = LPRC
0011 = FRC
0010 = POSC
0001 = PBCLK/PBCLK1
0000 = SYSCLK
bit 8
bit 7-4
bit 3-0
2:
3:
4:
5:
Note:
拡張 PLL を備えた
オシレータ
Note 1:
42
ACTIVE ビットが「1」の時に ROSEL<3:0> および RODIV<14:0> ビットに書き込まないでください。書
き込んだ場合の結果は不確定です。
ROSEL<3:0> ビットが「0000」または「0001」の場合、このビットは無視されます。
ON ビット (REFOCON<15>) が「1」の時にこれらのビットに書き込んだ場合、その効果は DIVSWEN
ビットが「1」にセットされるまで反映されません。
このビット設定は、BFRC オシレータを備えたデバイスでのみ選択可能です。利用の可否は各デバイス
データシート内の「オシレータ コンフィグレーション」を参照してください。
ON ビットと ACTIVE ビットの値が一致していない時にこのレジスタに書き込まないでください。
一部のデバイスではこのレジスタを利用できません。利用の可否は各デバイス データシート内の「オシ
レータ コンフィグレーション」を参照してください。
© 2014 Microchip Technology Inc.
Preliminary
DS60001250A_JP - p. 42-11
PIC32 ファミリ リファレンス マニュアル
レジスタ 42-5: REFOTRIM/REFOxTRIM: 参照オシレータ調整レジスタ
ビット
レンジ
31:24
23:16
15:8
7:0
Bit
31/23/15/7
Bit
30/22/14/6
Bit
29/21/13/5
R/W-0
R/W-0
R/W-0
R/W-0
U-0
U-0
ROTRIM<0>
—
—
U-0
U-0
U-0
—
—
—
U-0
—
U-0
—
U-0
—
Bit
28/20/12/4
Bit
27/19/11/3
R/W-0
R/W-0
ROTRIM<8:1>
Bit
26/18/10/2
Bit
25/17/9/1
Bit
24/16/8/0
R/W-0
R/W-0
R/W-0
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
凡例 :
y = POR 時にコンフィグレーション ビットの値に設定
R = 読み出し可能ビット
W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し
-n = POR 時の値
1 = ビットはセット
0 = ビットをクリア
x = ビットは未知
bit 31-23 ROTRIM<8:0>: 参照オシレータ調整ビット
111111111 = RODIV 値に分周比 511/512 を加算する
111111110 = RODIV 値に分周比 510/512 を加算する
•
•
•
100000000 = RODIV 値に分周比 256/512 を加算する
•
•
•
000000010 = RODIV 値に分周比 2/512 を加算する
000000001 = RODIV 値に分周比 1/512 を加算する
000000000 = RODIV 値に分周比 0/512 を加算する
bit 22-0 未実装 :「0」として読み出し
Note 1:
2:
3:
4:
ON ビット (REFOCON<15>) が「1」の時にこのビットに書き込んだ場合、その効果は DIVSWEN ビット
が「1」にセットされるまで反映されません。
ON ビット (REFOxCON<15>) と ACTIVE ビット (REFOxCON<8>) の値が一致していない時にこのレジ
スタに書き込まないでください。
RODIV<14:0> (REFOxCON<30:16>) = 0 の場合、このレジスタで指定した値は効力を持ちません。
一部のデバイスではこのレジスタを利用できません。利用の可否は各デバイス データシート内の「オシ
レータ コンフィグレーション」を参照してください。
DS60001250A_JP - p. 42-12
Preliminary
© 2014 Microchip Technology Inc.
セクション 42. 拡張 PLL を備えたオシレータ
レジスタ 42-6: PBxDIV: 周辺モジュールバス「x」クロック分周比制御レジスタ (「x」= 1 ~ 8)
ビット
レンジ
Bit
31/23/15/7
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
Bit
24/16/8/0
31:24
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
U-0
U-0
—
—
—
U-0
—
U-0
—
U-0
—
U-0
—
U-0
—
23:16
15:8
7:0
U-0
U-0
—
—
U-0
—
R-1
PBDIVRDY
U-0
—
U-0
—
U-0
—
U-0
R/W-x
R/W-x
R/W-x
R/W-x
PBDIV<6:0>
R/W-x
R/W-x
R/W-x
—
凡例 :
R = 読み出し可能ビット
W = 書き込み可能ビット
U = 未実装ビット、「0」として読み出し
-n = POR 時の値
1 = ビットはセット
0 = ビットをクリア
x = ビットは未知
bit 31-16 未実装 :「0」として読み出し
bit 15
ON: 周辺モジュールバス「x」出力クロック イネーブルビット (1)
1 = 出力クロックを有効にする
0 = 出力クロックを無効にする
bit 14-12 未実装 :「0」として読み出し
bit 11
PBDIVRDY: 周辺モジュールバス「x」クロック分周レディビット
1 = クロック分周ロジックは分周比を切り換え中ではなく、PBxDIV<6:0> ビットは書き込み可能
0 = クロック分周ロジックは分周比を切り換え中であり、PBxDIV<6:0> ビットは書き込み不可
bit 10-7
未実装 :「0」として読み出し
bit 6-0
PBDIV<6:0>: 周辺モジュールバス「x」クロック分周比制御ビット
1111111 = SYSCLK を 128 分周して PBCLKx を生成する
1111110 = SYSCLK を 127 分周して PBCLKx を生成する
•
•
•
0000011 = SYSCLK を 4 分周して PBCLKx を生成する
0000010 = SYSCLK を 3 分周して PBCLKx を生成する
0000001 = SYSCLK を 2 分周して PBCLKx を生成する ( x  7 の場合の既定値 )
0000000 = SYSCLK を 1 分周して PBCLKx を生成する ( x = 7 の場合の既定値 )
デバイスが PBCLK を 1 つだけ実装している場合、POR 時の既定値は DEVCFG1 レジスタの FPDIV<6:0>
コンフィグレーション ビットで指定します。デバイスが複数の PBCLK を実装している場合、POR 時の
既定値はデバイスごとに決まっており、ユーザによる設定はできません。詳細は各デバイス データシート
内の「オシレータ コンフィグレーション」と「その他の特殊機能」を参照してください。
Note 1: 周辺モジュールバス 1 のクロックは OFF にできません。従って、PB1DIV レジスタの ON ビットに「0」を
書き込む事はできません。
Note 1: このレジスタに書き込むには、ロック解除シーケンスを実行する必要があります。詳細は
レータ切り換えシーケンス」を参照してください。
42.3.7.2「オシ
2: 一部のデバイスではこのレジスタを利用できません。利用の可否は各デバイス データシート内の「オシ
レータ コンフィグレーション」を参照してください。
© 2014 Microchip Technology Inc.
Preliminary
DS60001250A_JP - p. 42-13
42
拡張 PLL を備えた
オシレータ
R/W-1
ON(1)
PIC32 ファミリ リファレンス マニュアル
42.3
動作 : クロック生成とクロック源
PIC32 ファミリのデバイスは、内部または外部のクロック源を使って生成する複数の内部ク
ロックを備えています。これらのクロック源の一部は、PLL とプログラマブルな出力分周器ま
たは入力分周器 ( もしくはその両方 ) を使って、入力周波数をアプリケーションに適した周波
数にスケーリングします。動作中に、ソフトウェアでクロック源を切り換える事ができます。
オシレータ制御レジスタはハードウェアでロックされるため、ソフトウェアでクロック切り換
えを実行する前に、ロック解除シーケンスを実行する必要があります。
PIC32 は以下の 3 種類のメインクロックを備えます。
• システムクロック (SYSCLK)
• 1 つまたは複数の周辺モジュールバス クロック (PBCLKx)
• USB クロック (USBCLK)
これらの PIC32 クロックの生成には、以下のいずれかのクロック源を使います。
•
•
•
•
•
プライマリ オシレータ (POSC): OSC1 および OSC2 ピンを使用
セカンダリ オシレータ (SOSC): SOSCI および SOSCO ピンを使用
内部高速 RC (FRC) オシレータ
内部バックアップ FRC (BFRC) オシレータ
内部低消費電力 RC (LPRC) オシレータ
Note:
一部のデバイスだけが BFRC オシレータを実装しています。利用の可否は各デバ
イス データシート内の「オシレータ コンフィグレーション」を参照してください。
クロック源ごとに設定可能なオプション (PLL、入力分周比、出力分周比等 ) が異なります。こ
れらについては後で詳しく説明します。
Note:
42.3.1
外部クロックを使う周辺モジュール ( リアルタイム クロック / カレンダ (RTCC)、
Timer1 等 ) のクロック源については、PIC32 ファミリ リファレンス マニュアルの
『セクション 14. タイマ』(DS60001105) と『セクション 29. リアルタイム クロッ
ク / カレンダ』(DS60001125) を参照してください。
システムクロック (SYSCLK) の生成
SYSCLK の生成には、以下の 4 種類あるクロック源のいずれかを使います。
• POSC
• SOSC
• 内部 FRC オシレータ
• LPRC オシレータ
一部のクロック源では、固有のクロック逓倍または分周 ( もしくはその両方の ) オプションを
選択できます。
ユーザが値を指定しない限り、クロックのスケーリングは適用されません。
SYSCLK のクロック源はデバイス コンフィグレーションで選択しますが、動作中にソフトウェ
アで変更できます。動作中にクロック源を切り換える事ができるため、状況に応じて低速クロッ
クに切り換える事で、アプリケーションの消費電力を低減できます。
表 42-2 に、SYSCLK の生成に使えるオシレータとシステム PLL の組み合わせを示します。
DS60001250A_JP - p. 42-14
Preliminary
© 2014 Microchip Technology Inc.
セクション 42. 拡張 PLL を備えたオシレータ
表 42-2: クロック選択コンフィグレーション ビットの値
オシレータモード
ポストスケーラ併用 FRC オシレータ (FRCDIV)
LPRC オシレータ
SOSC (Timer1/RTCC)
オシレータ PLLICLK POSCMOD<1:0>
(Note 4 参照 )
ソース
FNOSC<2:0>
(Note 4 参照 )
参照
Note
内部
x
xx
111
1、2
内部
x
xx
101
1
セカンダリ
x
xx
100
1
1
10
001
3
1
00
001
3
HS モードの POSC
プライマリ
x
10
010
—
EC モードの POSC
プライマリ
x
00
010
—
PLL モジュール併用 FRC オシレータ (FRCPLL)
内部
0
10
001
1
ポストスケーラ併用 FRC オシレータ (FRCDIV)
内部
x
xx
000
1
OSC2 ピンの機能 (PBCLK1 出力またはデジタル I/O) は、OSCIOFNC コンフィグレーション ビット
(DEVCFG1<10>) で指定します。選択したオシレータモードが OSC2 ピンを使わない場合、このピンの
機能はこれらのどちらかに設定できます。
2: 既定値 ( デバイスが未プログラムまたは消去後の状態 ) のオシレータモード
3: PLL 併用モードを使う場合、PLL に入力される周波数がデバイス データシート内の「電気的特性」で指
定されているレンジに収まるように入力分周比を選択する必要があります。
4: DEVCFG1 および DEVCFG2 レジスタについては、デバイス データシート内の「その他の特殊機能」と
『PIC32 ファミリ リファレンス マニュアル、セクション 32. コンフィグレーション』(DS60001124) を参
照してください。
Note 1:
© 2014 Microchip Technology Inc.
Preliminary
DS60001250A_JP - p. 42-15
42
拡張 PLL を備えた
オシレータ
PLL モジュール併用 HS モードの POSC (HSPLL) プライマリ
PLL モジュール併用 EC モードの POSC (ECPLL) プライマリ
PIC32 ファミリ リファレンス マニュアル
42.3.1.1
プライマリ オシレータ (POSC)
プライマリ オシレータ (POSC) が備える 4 種類の動作モードを図 42-2、表 42-3、図 42-4 に示
します。
表 42-3: プライマリ オシレータの動作モード
オシレータモード
Note:
概要
HS
高速水晶振動子
EC
外部クロック入力
HSPLL
高速水晶振動子、PLL 併用
ECPLL
外部クロック入力、PLL 併用
プリスケーラ、ポストスケーラ、PLL 逓倍器を経由して最終的に CPU に供給され
るクロックの周波数は、プロセッサの最大許容周波数以下である事が必要です。詳
細は各デバイス データシート内の「電気的特性」を参照してください。
図 42-2: 水晶振動子またはセラミック振動子の回路 (HS または HSPLL オシレータモード )
To Internal Logic
OSC1
C1(3)
RP(1)
RF(2)
XTAL
Enable
RS(1)
C2(3)
Note 1:
PIC32
OSC2
AT ストリップカット水晶振動子を使う場合やクリッピングを防ぐ必要がある場
合、直列抵抗 Rs が必要になる事があります。あるいは、オシレータ回路のゲイン
を高くする必要がある場合、1 M の並列抵抗 RP を追加します。
2:
内部フィードバック抵抗 RF の標準的なレンジは 2 ~ 10 M です。
3:
42.7.3.1「最適オシレータ部品の選択方法」を参照してください。
PIC32 デバイスファミリでは、POSC を OSC1 および OSC2 ピンに接続します。POSC は、外
部クロック入力または外部の水晶 / セラミック振動子向けに設定できます。
HS および HSPLL モードは、外部の水晶またはセラミック振動子を使うコントローラ オシレー
タモードです。HS オシレータモードの場合、OSC2 ピンを水晶 / セラミック振動子のフィード
バック用に使います。このためOSC2ピンを入力または出力として使う事はできません。HSPLL
モードでは、入力分周比および逓倍比と出力分周比を設定可能な PLL を併用するため、幅広い
レンジの出力周波数を生成できます。PLL を有効にすると、オシレータ回路の消費電流は増加
します。
外部クロックモード (EC、ECPLL) では、外部クロック源を使ってシステムクロックを生成で
きます。EC および ECPLL モードの場合、OSC1 ピンは CMOS ドライバで駆動可能なハイイ
ンピーダンス入力として設定されます。EC モードでは、外部クロックを使って SYSCLK を直
接駆動します。ECPLL モードでは、プリスケーラおよびポストスケーラを備えた PLL を使っ
て入力クロック周波数を変更できます。外部クロックモードでは、内部フィードバック バッ
ファが無効になるため、OSC2 ピンを他の機能向けに使えます。外部クロックモードでは、
OSC2 ピンは図 42-3 のように追加のデバイス I/O ピンとして使う事も、図 42-4 のように PBCLK
出力ピンとして使う事もできます。
Note:
DS60001250A_JP - p. 42-16
PLL 併用モードを使う場合、PLL に入力される周波数がデバイス データシート内
の「電気的特性」で指定されているレンジに収まるように入力分周比を選択する必
要があります。
Preliminary
© 2014 Microchip Technology Inc.
セクション 42. 拡張 PLL を備えたオシレータ
図 42-3: 外部クロック入力 (EC、ECPLL モード ) 動作 - クロック出力無効時
Clock from
External System
OSC1
PIC32
I/O
I/O (OSC2)
OSCIOFNC (DEVCFG1<10>) = 1
図 42-4: 外部クロック入力 (EC、ECPLL モード ) 動作 - クロック出力有効時
PBCLK, or PBCLK1 divided by 2
拡張 PLL を備えた
オシレータ
Clock from
External System
OSC1
PIC32
OSC2 (Clock Out)
OSCIOFNC (DEVCFG1<10>) = 0
42.3.1.1.1 プライマリ オシレータ (POSC) の設定
POSC は以下の手順で設定します。
1.
2.
3.
4.
デバイス コンフィグレーション レジスタ DEVCFG1 の FNOSC<2:0> ビットを「010」(PLL
を使わない場合 ) または「001」(PLL を使う場合 ) に設定して、POSC を既定値オシレータ
として選択する。PLL を使う場合、DEVCFG2 レジスタの FPLLICLK ビットをセットする
(FRC ではなく POSC に PLL を併用して SYSCLK を駆動する )。
DEVCFG1 レジスタの POSCMOD<1:0> ビットで HS または EC モードのどちらかを選択
する。
PLL を併用する場合 :
a) DEVCFG2 レジスタの FPLLIDIV<2:0> ビットで、PLL 入力分周比を適切に選択して
PLL 入力周波数をスケーリングする ( 入力周波数はデバイスの仕様レンジ内である
事が必要。詳細は各デバイス データシート内の「電気的特性」を参照 )。
b) DEVCFG2 レジスタの FPLLRNG<2:0> ビット (DEVCFG2<6:4>) で、逓倍器に入力
する周波数のレンジを選択する。
c) DEVCFG2 レジスタの FPLLMUL<2:0> ビットで PLL 逓倍比を選択する。
d) DEVCFG1 レジスタの FPLLODIV (DEVCFG1<29:27>) ビットで、目標の SYSCLK
周波数が得られるように PLL 出力分周比を選択する。
DEVCFGx レジスタの値はデバイスリセット時に OSCCON および SPLLCON レジスタに
コピーされる。実行中にこれらのレジスタを変更する事で調整も可能。
Note 1: DEVCFG1 および DEVCFG2 レジスタについては、デバイス データシート内の「そ
の他の特殊機能」と『PIC32 ファミリ リファレンス マニュアル、セクション 32. コ
ンフィグレーション』(DS60001124) を参照してください。
2: OSCTUN レジスタへの書き込みを実行する前に、ロック解除シーケンスが必要で
す。詳細は 42.3.7.2「オシレータ切り換えシーケンス」を参照してください。
© 2014 Microchip Technology Inc.
Preliminary
42
DS60001250A_JP - p. 42-17
PIC32 ファミリ リファレンス マニュアル
42.3.1.1.2 オシレータ起動タイマ (OST)
水晶振動子 ( またはセラミック振動子 ) を確実に起動して安定させるために、オシレータ起動
タイマ (OST) を使います。OST は 1024 TOSC サイクルをカウントする単純な 10 ビットカウン
タです。このカウントが終了した後に、システムへのオシレータ クロックの供給が始まりま
す。このタイムアウト時間を TOST と表記します。オシレータ信号の振幅がオシレータピンの
しきい値 VIL および VIH に達すると、OST はサイクルのカウントを始めます。
パワーオンリセット (POR) 時、ブラウンアウト リセット (BOR) 時、スリープモードからの復
帰時にオシレータを再起動するたびに TOST 遅延が必要です。OST は POSC の HS モードと
SOSC に適用されます (42.3.1.2「セカンダリ オシレータ (SOSC)」参照 )。
Note:
POSC を EC または ECPLL モード向けに設定した場合、オシレータ起動タイマは
無効です。
42.3.1.1.3 スリープからのプライマリ オシレータの起動
プライマリ オシレータ回路を設計する際は、スリープから確実に復帰できるように注意が必要
です。復帰時は、両方の負荷コンデンサがある程度充電され、位相差が最小になります。この
ため、発振が安定するまでに通常よりも長い時間を要します。また、低電圧条件、高温度条件、
周波数の低いクロックモードではループゲインが制限されるため、これらの条件も起動時間を
長引かせる要因となります。
起動時間を長引かせる要因として以下が挙げられます。
•
•
•
•
•
•
低周波数回路 ( 低ゲインのクロックモードを使用 )
ノイズの少ない環境 ( バッテリ駆動型機器等 )
シールドされたボックス内での動作 ( ノイズの多い RF エリアから隔離した場合 )
低電圧
高温度
スリープからの復帰
42.3.1.1.4 プライマリ オシレータのピン機能
プライマリ オシレータを使わない場合、プライマリ オシレータピン (OSCI/OSCO) は他の機能
向けに使えます。
オシレータピンの機能は、オシレータ コンフィグレーション (FOSC<1:0>) レジスタの
POSCMD コンフィグレーション ビットで指定します。
OSC2 ピンの機能は、OSCIOFNC ビット (DEVCFG1<10>) で指定します。OSCIOFNC の機能
については、各デバイス データシート内の「その他の特殊機能」を参照してください。
42.3.1.2
セカンダリ オシレータ (SOSC)
セカンダリ オシレータ (SOSC) は、外部の 32.768 kHz 水晶振動子を使う低消費電力動作向けの
オシレータです。このオシレータは SOSCO および SOSCI ピンを使い、低消費電力動作用の
補助的な水晶振動子クロック源として機能します。このオシレータは、リアルタイム クロック
(RTC) アプリケーション向けに、Timer1 またはリアルタイム クロック / カレンダ (RTCC) モ
ジュール ( もしくはその両方 ) を駆動する事もできます。
42.3.1.2.1 SOSC の有効化
SOSC は、FSOSCEN コンフィグレーション ビット (DEVCFG1<5>) によってハードウェアで
有効になります。DEVCFG1 コンフィグレーション レジスタについては、デバイス データシー
ト内の「その他の特殊機能」と『PIC32 ファミリ リファレンス マニュアル、セクション 32. コ
ンフィグレーション』(DS60001124) を参照してください。ソフトウェアは、SOSCEN ビット
(OSCCON<1>) を変更する事によって SOSC を制御できます。SOSCEN ビットをセットすると
セカンダリ オシレータが有効になります。この場合、セカンダリ オシレータは SOSCO およ
び SOSCI ピンを制御するため、これらのピンを I/O ポートやその他の機能向けに使う事はでき
ません。
Note:
OSCCON レジスタへの書き込みを実行する前に、ロック解除シーケンスが必要で
す。詳細は 42.3.7.2「オシレータ切り換えシーケンス」を参照してください。
SOSC がクロック源として使用可能になるまでに、ウォームアップ時間が必要です。オシレー
タを有効にすると、ウォームアップ カウンタが 1024 までインクリメントします。このカウン
トが終了すると、SOSCRDY ビット (OSCCON<22>) は「1」にセットされます。42.3.1.1.2
「オシレータ起動タイマ (OST)」を参照してください。
DS60001250A_JP - p. 42-18
Preliminary
© 2014 Microchip Technology Inc.
セクション 42. 拡張 PLL を備えたオシレータ
42.3.1.2.2 SOSC を常時動作させる
SOSCEN ビット (OSCCON<1>) をセットすると、SOSC は常時動作します。このオシレータを
常時動作させておくと、低消費電力動作用の 32 kHz システムクロックに素早く切り換える事
ができます。ただし、セカンダリ オシレータから高速のメインオシレータ ( 水晶振動子および
/ または PLL を使用 ) へ戻る際には、やはりオシレータ起動時間が必要です (42.3.1.1.2「オシ
レータ起動タイマ (OST)」参照 )。
また、リアルタイム クロック アプリケーションでは、セカンダリ オシレータを常時動作させ
る必要があります (Timer1 用に必要な場合もあります )。詳細は PIC32 ファミリ リファレンス
マニュアルの『セクション 14. タイマ』(DS60001105) と『セクション 29. リアルタイム クロッ
ク / カレンダ』(DS60001125) を参照してください。
例 42-1:
OSCCON |= 2;
SYSKEY = 0x0;
//
//
//
//
//
//
//
//
//
Ensure OSCCON is locked
Write Key1 to SYSKEY
Write Key2 to SYSKEY
OSCCON is now unlocked
Make the desired change
Enable Secondary Oscillator
Relock the SYSKEY
Write any value other than Key1 or Key2
OSCCON is relocked
外部クロック源による SOSC
水晶振動子の代わりに外部の 32.768 kHz クロック源を使って SOSCI ピンを駆動する事もでき
ます。この場合も SOSCEN ビットはセットしておく必要がありますが、SOSCO ピンは I/O ピ
ンとして使えます。
42.3.1.4
内部高速 RC (FRC) オシレータ
FRC オシレータはユーザ設定可能な入力分周器、PLL 逓倍器、出力分周器を備えた内部高速
RC オシレータです ( 公称値 8 MHz)。ユーザによる周波数の微調整も可能です。FRC オシレー
タの詳細は各デバイス データシート内の「オシレータ コンフィグレーション」を参照してく
ださい。
42.3.1.4.1 FRC ポストスケーラモード (FRCDIV)
内部高速オシレータをクロック源として使う場合、公称値 8 MHz 以外の FRC 出力も生成でき
ます。FRC に出力分周器 ( ポストスケーラ ) を併用する FRCDIV モードでは、分周比を選択す
る事により、8 MHz をそのまま出力する以外に、これよりも低い 7 通りのクロック周波数を選
択できます。出力分周比は FRCDIV<2:0> ビット (OSCCON<26:24>) で設定します。FRC の公
称出力周波数 (8 MHz) からは、4 MHz (2 分周 ) ~ 31 kHz (256 分周 ) の周波数を生成できます。
FRCDIV<2:0> ビットの設定を変更するだけで、いつでも簡単に周波数を低減してアプリケー
ションの消費電力を削減できます。
42.3.1.4.2 PLL 併用 FRC オシレータ モード (FRCPLL)
FRCにPLLを併用し、PLL逓倍比と出力分周比を選択する事で、幅広い周波数レンジでSYSCLK
を生成できます。FRC PLL モードを選択するには、COSC<2:0> ビット (OSCCON<14:12>) を
「001」に設定します。PLL 逓倍比と出力分周比を選択する事で、目標のデバイス周波数を生成
できます。
42.3.1.4.3 オシレータ調整レジスタ (OSCTUN)
FRC オシレータ調整レジスタ OSCTUN を使うと、FRC オシレータの出力周波数を約 ±12%
(typical) のレンジで微調整できます。このレジスタの調整ビット値を増減すると、FRC オシ
レータの工場校正周波数が一定量変化します。
Note:
© 2014 Microchip Technology Inc.
OSCTUN レジスタへの書き込みを実行する前に、ロック解除シーケンスが必要で
す。詳細は 42.3.7.2「オシレータ切り換えシーケンス」を参照してください。
Preliminary
DS60001250A_JP - p. 42-19
拡張 PLL を備えた
オシレータ
SYSKEY = 0x0;
SYSKEY = 0xAA996655;
SYSKEY = 0x556699AA;
42.3.1.3
42
SOSC の有効化
PIC32 ファミリ リファレンス マニュアル
42.3.1.5
内部バックアップ高速 RC (BFRC) オシレータ
一部のデバイスはバックアップ高速 RC オシレータ (BFRC) を備えています。このオシレータ
は、FSCM がクロック障害を検出した時に 8 MHz クロックを供給する事で、クラス B 動作を
サポートします。このオシレータをプライマリ SYSCLK として選択する事はできません。BFRC
はバックアップ クロック専用として設計されています。従って、工場で FRC と同等の精度ま
で校正されていません。利用の可否は各デバイス データシート内の「オシレータ コンフィグ
レーション」を参照してください。
42.3.1.6
内部低消費電力 RC (LPRC) オシレータ
LPRC オシレータは、FRC とは別のオシレータです。このオシレータは公称値 31.25 kHz で発
振します。LPRC オシレータはパワーアップ タイマ (PWRT)、ウォッチドッグ タイマ (WDT)、
フェイルセーフ クロックモニタ (FSCM)、位相ロックループ (PLL) 参照回路用のクロック源で
す。また、タイミング精度よりも低消費電力が重視されるアプリケーションでは、LPRC オシ
レータを使ってデバイスに低周波数のクロックを供給する事もできます。
42.3.1.6.1 LPRC オシレータの有効化
LPRC オシレータは PWRT 用のクロック源として使われるため、内蔵電圧レギュレータが有効
な場合、LPRC は POR 時に動作します。PWRT が終了した後も、以下の条件の 1 つが真であ
れば、LPRC オシレータは動作を続けます。
• フェイルセーフ クロックモニタが有効
• WDT が有効
• LPRC オシレータが SYSCLK として選択されている (COSC<2:0> = 100)
上記の条件がどれも真ではない場合、LPRC は PWRT が終了すると停止します。
42.3.2
PLL クロック ジェネレータ
42.3.2.1
システムクロックの位相ロックループ (PLL)
システムクロック用 PLL は、POSC の HS および EC モードと内部 FRC オシレータモードで使
う事ができ、入力分周比、逓倍比、出力分周比を設定する事で、1 つのクロック源から各種の
クロック周波数を生成できます。
入力分周比、逓倍比、出力分周比の制御初期値ビットは、DEVCFG2 デバイス コンフィグレー
ション レジスタに格納されています。逓倍比ビットと出力分周比ビットは、OSCCON レジス
タにも格納されています。デバイスリセット時に、デバイス コンフィグレーション レジスタ
DEVCFG2 内の値が OSCCON レジスタにコピーされます。このため、デバイスをプログラミ
ングする際に、PLL に適切な入力周波数を供給可能な PLL 入力分周比、PLL 逓倍比、出力分周
比の初期値を設定できます。動作中は、ソフトウェアで逓倍比と出力分周比を変更する事で、
アプリケーションに適したクロック周波数にスケーリングできます。
PLL は以下の手順で設定します。
1.
2.
PLL 入力分周比、PLL 逓倍比、PLL 出力分周比の値を求める。
デバイスをプログラミングする際に、DEVCFG2 レジスタで PLL 入力分周比、入力クロッ
ク、レンジ、逓倍比 / 出力分周比の初期値を設定する。
これらの 4 つの設定値は、実行時にアプリケーションに適するよう SPLLCON を使って変
更できます。
3.
Note:
DS60001250A_JP - p. 42-20
DEVCFG2 コンフィグレーション レジスタについては、デバイス データシート内
の「その他の特殊機能」と『PIC32 ファミリ リファレンス マニュアル、セクショ
ン 32. コンフィグレーション』(DS60001124) を参照してください。
Preliminary
© 2014 Microchip Technology Inc.
セクション 42. 拡張 PLL を備えたオシレータ
例 42-2 に、200 MHz で動作するシステム向けのコンフィグレーション例を示します。
例 42-2:
200 MHz 動作向けの設定例
#include <xc.h>
#pragma
#pragma
#pragma
#pragma
#pragma
#pragma
#pragma
config
config
config
config
config
config
config
POSCMOD = EC
FNOSC = SPLL
FPLLICLK = PLL_POSC
FPLLIDIV = DIV_3
FPLLRNG = RANGE_5_10_MHz
FPLLMUL = MUL_50
FPLLODIV = DIV_2
//
//
//
//
//
//
//
External Clock Mode
System Clock is through System PLL
Input to PLL is from Primary Oscillator
Divide input by 3
Input to PLL will be in 5-10 MHz range after division
Multiply frequency by 50
Divide VCO output by 2
42.3.2.2
PLL ロックステータス
PLL が安定した出力を供給し始めるまでに一定時間を要するため、SLOCK ステータスビット
(OSCCON<5>) によって PLL の状態が示されます。PLL へのクロック入力が変更されると、こ
のビットは LOW (0) になります。このビットは、PLL がロックを完了するか、PLL 起動タイマ
が終了した時点でセットされます。このビットは、PLL がロックを完了していなくても、タイ
マが終了するとセットされます。
PLL ロックステータス ビットは、PLL のロック状態を示します。このビットは、PLL がロック
を完了するまでに要する標準的な遅延時間 (TLOCK) が経過した後に自動的にセットされます。
PLL がこの遅延時間中に安定しなかった場合、SLOCK ビットは PLL のロック状態を正しく反
映しません。また、正常動作中に PLL ロックを喪失した場合も、SLOCK ビットには反映され
ません。PLLSLOCK ビットは、PLL を併用するクロック源への切り換え時と POR 時にクリア
されます。PLL を併用しないクロック源が選択されている場合、LOCK ビットはクリア状態を
保持します。PLL ロック遅延の詳細は、各デバイス データシート内の「電気的特性」を参照し
てください。
42.3.3
周辺モジュールバス クロック (PBCLKx) の生成
一部の PIC32 は複数の PBCLK を内蔵し、アプリケーションに応じて各種の周辺モジュールを
異なるバス速度で動作させる事ができます。デバイスが PBCLK を実装しているかどうかと、
各周辺モジュールバスで利用可能な周辺モジュールについては、各デバイス データシート内の
「オシレータ コンフィグレーション」を参照してください。
42.3.3.1
PBCLKx のレート制御
SYSCLK を PBCLKx 分周比ビット PBDIV<6:0> (PBxDIVx<6:0>) の設定に従って分周する事で、
各 PBCLK を生成します。PBDIV<6:0> ビットでは、分周比を 1:1 ~ 1:128 の範囲で設定できます。
周辺モジュールバスの周波数は、PBxDIV レジスタの PBDIV<6:0> ビットに新しい値を書き込
む事で、動作中に変更できます。PB 周波数の変更を制御するために、ステートマシンを使い
ます。このステートマシンは、分周比の切り換えを実行してから新しい PBxDIV 値を受け取れ
るようになるまでに、最大 60 CPU クロックを要します。ステートマシンが動作を完了する前
に新しい値を PBDIV ビットに書き込んだ場合、この値は無視され、PBDIV<6:0> ビットは以前
の値を反映します。
© 2014 Microchip Technology Inc.
Preliminary
DS60001250A_JP - p. 42-21
42
拡張 PLL を備えた
オシレータ
PLL 入力分周比、逓倍比、出力分周比を組み合わせる事で、入力周波数を約 0.004 ~ 128 倍の
レンジでスケーリングできます。信頼性の高い動作を得るために、PLL モジュールの出力周波
数はデバイスの最大クロック周波数以下である事が必要です。PLL 入力分周比は、PLL への入
力周波数がデバイスの仕様レンジ内に収まるように選択する必要があります。
PIC32 ファミリ リファレンス マニュアル
PBDIVRDY ビ ッ ト (PBxDIV<11>) は、現 在 分 周 比 を 切 り 換 え 中 か ど う か ( つ ま り 現 在
PBDIV<6:0> ビットは書き込み可能かどうか ) を示します。PBDIV<6:0> ビットに現在の内容と
同じ値を書き込んでも無視されます ( 動作に影響しません )。
Note:
PBDIV 分周比を 1:1 に設定した場合、SYSCLK と PBCLK の周波数は同じです。
PBCLK 周波数をプロセッサ クロック周波数よりも高くする事はできません。
PBDIV 値を選択または変更する際は、PBCLK 周波数の変化が各周辺モジュールに
与える影響を考慮する必要があります。
PB 分周比が 1:1 に設定されていない場合に PBCLK 周辺モジュール レジスタに対
して連続した操作を行うと、CPU が複数サイクル間ストールします。このストー
ルにより、前の動作が完了する前に次の動作が発生する事を防ぎます。ストールの
長さは、SYSCLK 対 PBCLK の周波数比と、2 つのバス間の同期時間によって決ま
ります。
PBCLK 周波数を変更しても、SYSCLK を使う周辺モジュールの動作には影響しま
せん。
42.3.3.2
PBCLKx の制限
一部の周辺モジュールバスは、SYSCLK と同じ速度で動作できません。PBCLKx は、対応する
周辺モジュールバスが最大速度を超えないように設定する必要があります。デバイス上の各周
辺モジュールバスの最大速度については、各デバイス データシート内の「電気的特性」を参照
してください。
42.3.3.3
PBCLKx の ON/OFF 制御
各周辺モジュールバス クロックは、必要に応じて ON/OFF できます。この機能を使うと、PIC32
の未使用部分を OFF にする事で、動作時消費電力を低減できます。ON ビット (PBxDIV<15>)
をセット / クリアする事で、PBCLKx を ON/OFF できます。
Note:
42.3.4
Note:
PBCLK1 は、クロック供給の停止によって動作が停止してはならない特定の機能
を制御します。このため、PBCLK1 を無効にする事はできません (PBCLK1 用の
ON ビットはありません )。
USB クロック (USBCLK) の生成
一部のデバイスでは、この機能を利用できません。利用の可否は各デバイス デー
タシート内の「オシレータ コンフィグレーション」を参照してください。
ハイスピード USB をサポートする PIC32 デバイスは、USB PHY 内で 480 MHz の USBCLK を
生成します。ソフトウェアはこの機能を制御しませんが、DEVCFG2 レジスタを使って設定で
きます。
42.3.4.1
USB PLL ロックステータス
ULOCK ビット (OSCCON<6>) は、USB PLL のロック状態を示す読み出し専用のステータス
ビットです。このビットは、USB PLL がロックするまでに要する標準的な遅延時間 (Tulock) の
後に自動的にセットされます。USB PLL がこの遅延時間中に正常に安定しなかった場合、
ULOCK ビットは USB PLL のロック状態を正しく反映しません。また、正常動作中に USB PLL
ロックを喪失した場合も、ULOCK ビットには反映されません。
42.3.4.2
クロック要件
HS USB PLL を 480 MHZ で正しく動作させるには、プライマリ オシレータ (POSC) を使う必要
があり、水晶振動子またはクロック源は 12 または 24 MHZ である事が必要です。
UPLLFSEL ビット (DEVCFG2<30>) で、どちらのクロックの速度で USB PHY に供給するか設
定します。また、USB PLL は UPLLEN ビット (DEVCFG2<31>) をセットして有効にする必要
があります。USB PLL の制御に関する設定はこの 2 つです。
DEVCFG2 コンフィグレーション レジスタについては、デバイス データシート内の「その他
の特殊機能」と『PIC32 ファミリ リファレンス マニュアル、セクション 32. コンフィグレー
ション』(DS60001124) を参照してください。
DS60001250A_JP - p. 42-22
Preliminary
© 2014 Microchip Technology Inc.
セクション 42. 拡張 PLL を備えたオシレータ
42.3.5
2 段階起動
外部の水晶振動子を使う全ての POSC モード (PLL 併用モードを含む ) では、2 段階起動モード
を使ってデバイスの起動時間を短縮できます。2 段階起動では、プライマリ オシレータ (POSC)
が安定するまで、FRC クロックを SYSCLK 用クロック源として使います。ユーザが選択した
オシレータが安定した後に、クロック源は FRC から POSC に切り換わります。これにより CPU
は、オシレータが安定するまで待たずに、低速でコードの実行を開始できます。POSC が起動
基準を満たした時点で、POSC へのクロック切り換えが自動的に発生します。このモードは、
IESO コンフィグレーション ビット (DEVCFG1<7>) によって有効になります。
Note:
42.3.6
ウォッチドッグ タイマ (WDT) が有効になっている場合、WDT は SYSCLK 周波数
に関係なく同じレートでカウントし続けます。2 段階起動中に WDT をサービスす
る場合、SYSCLK の変化に注意する必要があります。
フェイルセーフ クロックモニタ (FSCM) の動作
フェイルセーフ クロックモニタ (FSCM) 機能を使うと、使用中のオシレータで障害が発生して
も、デバイスの動作を継続できます。FSCM は、使用中のクロック源で障害を検出すると、自
動的に SYSCLK を内部 FRC オシレータに切り換えます。内部 FRC オシレータへ切り換えて
デバイスの動作を継続し、POSC への復帰を試みるか、あるいはクロック障害に対応したコー
ドを実行できます。
FSCM モードの制御には、DEVCFG1 レジスタの FCKSM<1:0> ビットを使います。FSCM は
全ての POSC モードで使えます。DEVCFG1 コンフィグレーション レジスタについては、デバ
イス データシート内の「その他の特殊機能」と『PIC32 ファミリ リファレンス マニュアル、
セクション 32. コンフィグレーション』(DS60001124) を参照してください。
FSCM がクロック障害を検出すると、ノンマスカブル割り込み (NMI) が生成されます。NMI に
対応する割り込みサービスルーチン (ISR) は、RMNICON レジスタの CF ビットを読み出す事
で、この NMI が FSCM によって生成された事を判別できます。詳細は、デバイス データシー
ト内の「リセット」を参照してください。
Note:
全てのデバイスは少なくとも 1 つの高速 RC オシレータ (FRC) を実装しています。
しかし、フェイルセーフ クロック機能専用に別の FRC オシレータ ( バックアップ
FRC (BFRC)) を実装しているのは、一部のデバイスだけです。
FSCM モジュールは、クロック障害検出時に以下を実行します。
1.
2.
3.
BFRC オシレータが存在しない場合、COSC<2:0> ビット (OSCCON<14:12>) に「000」を
書き込み、存在する場合は「110」を書き込む。
クロック障害の発生を示すために CF ビット (OSCCON<3>) をセットする。
OSWEN 制御ビット (OSCCON<0>) をクリアして、未完了の全てのクロック切り換えを
キャンセルする。
FSCM を有効にするには、FCKSM<1:0> ビット (DEVCFG1<15:14>) を「1」にセットし、42.3.1
「システムクロック (SYSCLK) の生成」で説明したように SYSCLK を適切に設定します。
42.3.6.1
FSCM 遅延
POR、BOR、スリープからの復帰後、FSCM が SYSCLK クロック源の監視を始めるまでに、
公称遅延時間 (TFSCM) が挿入される場合があります。FSCM 遅延は、パワーアップタイマ
(PWRT) を使わない場合に、オシレータや PLL が安定するまでの時間を確保する事を目的とし
ます。FSCM 遅延は、内部システムリセット信号 SYSRST がリリースされた後に生成されま
す。FSCM 遅延タイミングの詳細は、
『PIC32 ファミリ リファレンス マニュアル、セクション
07. リセット』(DS60001118) を参照してください。
TFSCM 遅延は、FSCM が有効で、SYSCLK として HS、HSPLL、SOSC モードのどれかが選さ
れている場合に適用されます。
Note:
© 2014 Microchip Technology Inc.
TFSCM の仕様値については、各デバイス データシート内の「電気的特性」を参照
してください。
Preliminary
DS60001250A_JP - p. 42-23
42
拡張 PLL を備えた
オシレータ
DEVCFG2 コンフィグレーション レジスタについては、デバイス データシート内の「その他
の特殊機能」と『PIC32 ファミリ リファレンス マニュアル、セクション 32. コンフィグレー
ション』(DS60001124) を参照してください。2 段階起動は、POR 後とスリープからの復帰後
に実行されます。ソフトウェアは、COSC<2:0> ビット (OSCCON<14:12>) を読み出す事で、現
在どちらのクロック源を使って動作しているのかを判別できます。
PIC32 ファミリ リファレンス マニュアル
42.3.6.2
FSCM と起動の遅いオシレータ
選択したデバイス オシレータが POR、BOR、スリープ後の起動に長時間を要する場合、オシ
レータが完全に起動する前に FSCM 遅延が終了する可能性があります。この場合、FSCM はク
ロック障害トラップを生成し、COSC<2:0> ビット (OSCCON<14:12>) に BFRC オシレータを
選択する値を書き込みます。この結果、起動を試みていたオシレータは停止します。ソフトウェ
アは、NMI ISR を使うか、CF ビット (OSCCON<3>) をポーリングする事で、クロック障害を
検出できます。
42.3.6.3
FSCM と WDT
FSCM と WDT はどちらもタイムベースとして LPRC オシレータを使います。これらのデバイ
スでは、クロック障害が発生しても WDT は影響を受けずに動作を続けます。
42.3.6.4
FSCM のソフトウェア トリガ
ソフトウェアで FSCM 切り換えシーケンスをトリガすると、クロック源を物理的に取り除かな
くても、PIC32 アプリケーションによる FSCM イベントの処理をテストできるので便利です。
ソフトウェアで FSCM イベントをトリガする手順は以下の通りです。
1.
ロック解除シーケンスを実行して OSCCON レジスタの書き込みロックを解除する (42.3.7.2
「オシレータ切り換えシーケンス」参照 )。
2. CF ビット (OSCCON<3>) に「1」を書き込む。
切り換えが完了すると、NMI 割り込みサービスルーチン (ISR) が始まります。
クロックを実際に BFRC へ切り換える事なく NMI ISR をトリガする事も可能です。これを行う
には、RNMICON レジスタの CF ビットに「1」を書き込みます。詳細は PIC32 ファミリ リ
ファレンス マニュアルの『セクション 06. リセット』(DS60001112) を参照してください。
42.3.6.5
FSCM イベント条件のクリア
MPLAB® XC32 C コンパイラが提供する NMI ハンドラ プロシージャ (_nmi_handler) を使う
と、メイン オシレータの再起動を試みる事ができます。FSCM イベント発生時の実行位置へ戻
るには、ERET 命令を使います。
クロック切り換え動作
42.3.7
アプリケーションは、ソフトウェアが制御する 4 つのクロック源 (POSC、SOSC、FRC、LPRC)
を常時ほぼ無制限に切り換える事ができます。このような柔軟な切り換え動作によって予期せ
ぬ結果が生じる可能性もあるため、PIC32 は切り換えプロセスに保護ロック機能を組み込んで
います。
Note 1: プライマリ オシレータモードでは、DEVCFG1 レジスタの POSCMOD コンフィグ
レーション ビットで 2 種類のサブモード (HS、EC) を選択できます。プライマリ オ
シレータモードと他のモード間の切り換えはソフトウェアで実行できますが、プラ
イマリ オシレータのサブモードを切り換えるにはデバイスの再プログラミングが
必要です。DEVCFG2 コンフィグレーション レジスタについては、デバイス データ
シート内の「その他の特殊機能」と『PIC32 ファミリ リファレンス マニュアル、セ
クション 32. コンフィグレーション』(DS60001124) を参照してください。
2: また、PLL 併用クロック源を使って動作している時に、これに影響する PLL 逓倍
比またはポストスケーラ値を変更しないでください。これらのクロック切り換え
機能を実行するには、クロック源を一度 PLL 非併用クロック源 (FRC 等 ) に切り
換えた後に、必要なクロック源に切り換える必要があります。この要件は、PLL
を使うクロック源にのみ適用されます。
42.3.7.1
クロック切り換えの有効化
クロック切り換えを有効にするには、
FCKSM<0> コンフィグレーション ビット (DEVCFG1<14>)
を「0」に書き換える ( プログラミングする ) 必要があります。
クロック切り換えが無効の場合、NOSC<2:0> 制御ビット (OSCCON<10:8>) を使ってクロック
の選択を制御する事はできません。ただし、COSC<2:0> ビット (OSCCON<14:12>) は、
FNOSC<2:0> コンフィグレーション ビットで選択されているクロック源を反映します。
クロック切り換えが無効の場合、OSWEN 制御ビット (OSCCON<0>) は動作に影響せず、常に
「0」です。
DS60001250A_JP - p. 42-24
Preliminary
© 2014 Microchip Technology Inc.
セクション 42. 拡張 PLL を備えたオシレータ
42.3.7.2
オシレータ切り換えシーケンス
クロック切り換えの実行には少なくとも以下のシーケンスが必要です。
1.
2.
3.
4.
5.
必要に応じて、COSC<2:0> ビット (OSCCON<14:12>) を読み出して、現状使用中のオシ
レータソースを確認する。
OSCCON レジスタに書き込むためのロック解除シーケンスを実行する。ロック解除シー
ケンスではタイミングが重要であるため、割り込みと DMA をあらかじめ無効にしておく
事。
切り換え後のオシレータソースを指定する値を NOSC<2:0> 制御ビット (OSCCON<10:8>)
に書き込む。
OSWEN ビット (OSCCON<0>) をセットしてオシレータ切り換えを開始する。
必要に応じて、OSCCON レジスタをロックするためのロックシーケンスを実行する。ロッ
クシーケンスは、他の全ての動作から分離して実行する必要がある。
1.
2.
3.
4.
クロック切り換えハードウェアは、COSC<2:0> ステータスビットと NOSC<2:0> 制御ビッ
トの新しい値を比較する。両者が一致する場合、クロック切り換えは冗長動作であるため、
OSWEN ビットは自動的にクリアされ、クロック切り換えは中止される。
切り換え先のオシレータが動作中ではない場合、ハードウェアはそのオシレータを起動す
る。水晶振動子を起動する必要がある場合、ハードウェアはオシレータ起動タイマ (OST)
が終了するまで待機する。切り換え先のオシレータソースが PLL を併用する場合、ハード
ウェアは PLL ロック (SLOCK = 1) を検出するまで待機する。
ハードウェアは OSWEN ビットをクリアしてクロック切り換えに成功した事を示す。加え
て、NOSC<2:0> ビットの値を COSC<2:0> ステータスビットに転送する。
この時点で切り換え前に使っていたクロック源が OFF になる ( このクロックを使うモジュー
ルが存在しない場合 )。
クロック源の切り換えタイミングを図 42-5 に示します。
Note:
クロック切り換えシーケンス中もプロセッサはコード実行を継続します。この間に
タイミングが重要なコードを実行しない事が必要です。
図 42-5: クロック切り換えのタイミング 図
New Source
Enabled
New Source
Stable
Old Source
Disabled
Old Clock Source
New Clock Source
SYSCLK
OSWEN bit
Both Oscillators Active
Note: SYSCLK には POSC、
SOSC、FRC、
LPRC のいずれかを選択可能です。
© 2014 Microchip Technology Inc.
Preliminary
DS60001250A_JP - p. 42-25
拡張 PLL を備えた
オシレータ
上記の基本シーケンスが完了すると、SYSCLK ハードウェアは自動的に以下のように応答しま
す。
42
PIC32 ファミリ リファレンス マニュアル
クロック切り換えの推奨コード シーケンスは以下の通りです。
1.
2.
システムのロック解除シーケンスを実行する前に、割り込みと DMA を無効にする。
連続した 2 回のアセンブリ命令または C 命令を実行して SYSKEY レジスタに 2 つのキー
値 (0xAA996655 と 0x556699AA) を書き込む事により、システムロック解除シーケンスを
実行する。
NOSC<2:0> 制御ビットに切り換え先のオシレータソースを指定する値を書き込む。
OSCCON レジスタの OSWEN ビットをセットしてオシレータの切り換えを開始する。
SYSKEY レジスタにキー値以外の任意の値 ( 例 : 0x33333333) を書き込む事により、解除
したロックを再ロックする。クロックに影響されにくいコードの実行を継続する ( 必須で
はない )。
OSWEN ビットが「0」であるかどうかを確認する (「0」であれば、クロック切り換えは
成功 )。このビットが「0」になるまで読み出しを繰り返す。
割り込みと DMA を再び有効にする。
3.
4.
5.
6.
7.
Note:
最初に 2 つのキー値を連続して書き込むロック解除シーケンス以外の手順には、タ
イミング要件はありません。
ロック解除シーケンスは、ロック機能によって保護されている全てのレジスタの
ロックを解除します。システムロックを解除している時間を最小限に留める事を推
奨します。OSCCON レジスタのロックを解除するサンプルコードは例 42-1 を参
照してください。
DS60001250A_JP - p. 42-26
Preliminary
© 2014 Microchip Technology Inc.
セクション 42. 拡張 PLL を備えたオシレータ
42.3.7.3
クロック切り換えに関する注意事項
クロック切り換えをアプリケーションに組み込む場合、以下の点に注意してコードを作成する
必要があります。
Note 1: フェイルセーフ クロックモニタが有効な時に、100 kHz よりも低いクロックへ切り
換えないでください。このような切り換えを実行すると、誤認によるオシレータ障
害イベントが発生し、FRC または BFRC オシレータへ切り換えられてしまう可能性
があります。
2: また、PLL 併用クロック源を使って動作している時に、これに影響する PLL 逓倍
比またはポストスケーラ値を変更しないでください。このようなクロック切り換
え機能を実行するには、クロック源を一度 PLL 非併用クロック源 (FRC 等 ) に切
り換えた後に、必要なクロック源に切り換える必要があります。この要件は、PLL
を使うクロック源にのみ適用されます。
42.3.7.4
クロック切り換え中のスリープへの移行
クロック切り換え動作中にデバイスがスリープに移行した場合、クロック切り換え動作は中止
されます。デバイスがスリープに移行する前にクロック切り換えが完了しなかった場合、デバ
イスはスリープからの復帰時に切り換えを実行した後に、WAIT 命令の直後のコードを通常通
り実行します。
© 2014 Microchip Technology Inc.
Preliminary
DS60001250A_JP - p. 42-27
42
拡張 PLL を備えた
オシレータ
• SYSLOCK のロック解除シーケンスではタイミングが重要です。2 つのキー値を連続して書
き込む必要があります (2 回の書き込みの間に周辺モジュール レジスタへのアクセスが発生
しない事が必要です )。意図しない周辺モジュール レジスタへのアクセスを防ぐため、全て
の割り込みと DMA 転送を無効にする必要があります。
• システムは自動的に再ロックしません。クロックを切り換えた後は、できるだけすみやかに
再ロック シーケンスを実行してください。
• ロック解除シーケンスは、他のレジスタ ( リアルタイム クロック制御関連のレジスタ等 ) の
ロックも解除します。
• クロック源を水晶振動子へ切り換える場合、クロック切り換え時間は振動子の起動時間に
よって大きく左右されます。
• 切り換え先のクロック源が起動しないか存在しない場合、OSWEN ビットはセットされたま
まです。
• 周波数が異なるクロックへ切り換えると、周辺モジュールに供給されるクロックの周波数が
変化します。クロック切り換え前と同じレートで周辺モジュールの動作を継続するには、設
定の変更が必要になる場合があります。
• 切り換え先クロック源が PLL を併用する場合、PLL のロックが完了するまでクロックは切り
換わりません。
• WDT を使う場合、切り換え後のクロックレートでも WDT が正しいタイミングで機能するよ
うに注意が必要です。
PIC32 ファミリ リファレンス マニュアル
42.3.8
リアルタイム クロック オシレータ
正確な計時を行うために、リアルタイム クロック / カレンダ (RTCC) には高精度のタイムベー
スが必要です。このため、RTCC のタイムベースには SOSC を使います。SOSC は、SOSCI お
よび SOSCO ピンに接続した外部の 32.768 kHz 水晶振動子を使います。
42.3.8.1
SOSC の制御
RTCC 以外のモジュールも SOSC を使う場合があるため、SOSC はソフトウェアとハードウェ
アの組み合わせによって制御されます。SOSCEN ビット (OSCCON<1>) を「1」にセットする
と SOSC は有効になります。CPU モジュールが SOSC を使用中ではなく、かつ SOSCEN ビッ
トが「0」の場合、Sosc は無効になります。SOSC を SYSCLK として使っている場合 ( クロッ
ク切り換え後等 )、SOSCEN ビットに「0」を書き込んで Sosc を無効にする事はできません。
SOSCEN ビットで SOSC を有効にしている場合、デバイスがスリープ中であっても Sosc は動
作を継続します。不用意なクロック切り換えを防ぐため、OSCCON レジスタはロックされて
います。ソフトウェアで SOSC を有効または無効に切り換える前に、このレジスタのロックを
解除する必要があります。
Note:
RTCC を使う場合、CPU クロック源を SOSC と他のクロック源との間で切り換え
る際は、ソフトウェアで SOSCEN ビットを「1」にセットしておく必要がありま
す。このビットをセットしなかった場合、CPU が他のクロック源に切り換わった
時に SOSC は無効になります。
外部水晶振動子には起動時間が必要であるため、SOSC オシレータ出力が安定し
た後に RTCC を有効にする必要があります。外部水晶振動子の起動時間について
は、その振動子のデータシートを参照してください。クロックが安定した後、さら
に 256 サイクル ( 約 8 ms) が経過してから RTCC モジュールを ON にする必要が
あります。実際に必要な遅延時間は、使用する水晶振動子とアプリケーションに
よって異なります。
SYSREG ロック機能は、各種のシステムおよび周辺モジュール レジスタを不用意
な書き込みから保護します。ロックまたはロック解除は、OSCCON レジスタだけ
でなく SYSREG が保護している全てのレジスタへのアクセスに影響します。
42.3.8.2
LPRC の制御
一部の PIC32 デバイスでは、LPRC コントローラを使って RTCC モジュールを駆動する事がで
きます。その場合、RTCC モジュールの計時精度は、日付 / 時刻用として不十分です。
42.3.9
Timer1 外部オシレータ
タイマには、外部信号または TxCK ピン (「x」はタイマモジュールの番号 ) を使ってクロック
を供給できます。また、Timer1 モジュールは、インクリメントするためのクロック源として
SOSC を使う事ができます。SOSC は、SOSCI および SOSCO ピンに接続した外部の 32.768
kHz 水晶振動子を使います。
42.3.9.1
SOSC の制御
Timer1 以外のモジュールも SOSC を使う可能性があるため、SOSC はソフトウェアとハードウェ
アの組み合わせによって制御されます。SOSCEN ビット (OSCCON<1>) を「1」にセットする
と SOSC は有効になります。CPU モジュールが SOSC を使用中ではなく、かつ SOSCEN ビッ
トが「0」の時に、Sosc は無効になります。SOSC を SYSCLK として使っている場合 ( クロッ
ク切り換え後等 )、SOSCEN ビットに「0」を書き込んで Sosc を無効にする事はできません。
SOSCEN ビットで SOSC を有効にしている場合、デバイスがスリープ中であっても Sosc は動
作を継続します。不用意なクロック切り換えを防ぐため、OSCCON レジスタはロックされて
います。ソフトウェアで SOSC を有効または無効に切り換える前に、このレジスタのロックを
解除する必要があります。
Note:
Timer1 モジュールを使う場合、CPU クロック源を SOSC と他のクロック源との間
で切り換える際は、ソフトウェアで SOSCEN ビットを「1」にセットしておく必
要があります。
外部水晶振動子には起動時間が必要であるため、正確に計測するには、SOSC オシ
レータ出力が安定した後に Timer1 の使用を開始する必要があります。外部水晶振
動子の起動時間については、その振動子のデータシートを参照してください。ク
ロックが安定した後、さらに 256 サイクル ( 約 8 ms) が経過してから Timer1 モ
ジュールを ON にします。実際に必要な遅延時間は、使用する水晶振動子とアプリ
ケーションによって異なります。
SYSREG ロック機能は、各種のシステムおよび周辺モジュール レジスタを不用意
な書き込みから保護します。ロックまたはロック解除は、OSCCON レジスタだけ
でなく SYSREG が保護している全てのレジスタへのアクセスに影響します。
DS60001250A_JP - p. 42-28
Preliminary
© 2014 Microchip Technology Inc.
セクション 42. 拡張 PLL を備えたオシレータ
42.3.10 参照クロック出力
参照クロック出力は、REFCLKOx ピンにクロック信号を供給します。参照クロックは各種のク
ロック源から選択できます。
参照クロックは、以下を含む各種のクロック源から選択できます ( 選択可能なクロック源はデ
バイスによって異なります )。
外部 REFCLKI ピン
内部 FRC オシレータ
内部 LPRC オシレータ
Sosc
PBCLK1
SYSCLK
BFRC
42
これらのクロック源は、ROSEL<3:0> ビット (REFOxCON<3:0>) で選択します。
選択したクロック源の出力は、RODIV<14:0>) ビット (REFOxCON<30:16>) と ROTRIM<8:0>
ビット (REFOxTRIM<31:23>) を使って分周できます。最終的な出力周波数を求める式を式 42-1
に示します。
式 42-1: 最終的な出力周波数の計算
F REFIN
F REFOUT = -----------------------------M -
2   N + -------
512
FREFOUT = 出力周波数
FREFIN = 入力周波数
N = RODIV<14:0>
M = ROTRIM<8:0>
N = 0 の場合、
初期クロックは入力クロックと同じです。
例として入力周波数 = 100 MHz、
N = 5、M = 256 の場合、
出力周波数は以下のように求まります。
100 MHz
F REFOUT = -------------------------------  9.091 MHz
2   5 + 256
---------
512
参照クロックのブロック図は図 42-1 を参照してください。参照クロック出力に関連するビット
については、REFOxCON レジスタ ( レジスタ 42-4) を参照してください。
Note:
© 2014 Microchip Technology Inc.
一部のデバイスでは、この機能を利用できません。利用の可否については、各デバ
イス データシート内の「オシレータ」を参照してください。
Preliminary
DS60001250A_JP - p. 42-29
拡張 PLL を備えた
オシレータ
•
•
•
•
•
•
•
PIC32 ファミリ リファレンス マニュアル
42.4
割り込み
オシレータ モジュールは、ノンマスカブル割り込み (NMI) だけを生成します。NMI が発生した
事は、RNMICON 内の CF ビット ( クロック障害検出ビット ) を使って検出できます。
42.4.1
FSCM ノンマスカブル割り込み
NMI に対応する ISR (_nmi_handler) は、CF ビット (RNMICON<1>) を読み出す事で、この
NMI が FSCM によって生成された事を判別できます。RNMICON レジスタの詳細と、CF ビッ
トの利用の可否については、各デバイス データシート内の「リセット」を参照してください。
42.5
省電力モード中の動作
42.5.1
スリープ中のオシレータ動作
クロック源は、スリープ中にそのクロック源を使うモジュールが存在しなければ、スリープ中
に停止します。以下では、スリープ中の各クロック源の挙動について説明します。
42.5.1.1
スリープ中のプライマリ オシレータの動作
POSC はスリープ時に停止します。スリープからの復帰時に起動遅延が適用されます。
42.5.1.2
スリープ中のセカンダリ オシレータの動作
SOSCEN ビットがセットされていない場合、またはスリープ中に動作するモジュールが Sosc
を使わない場合、SOSC はスリープ時に停止します。SOSC がスリープ中に停止していた場合、
スリープからの復帰時に起動遅延が適用されます。
42.5.1.3
スリープ中の高速 RC オシレータの動作
FRC オシレータはスリープ時に停止します。
42.5.1.4
スリープ中の低消費電力オシレータの動作
LPRC オシレータは、WDT が無効であれば、スリープ時に停止します。
42.5.2
ドリームモード中のオシレータ動作
ドリームモードが有効にした場合、スリープ中に DMA 割り込みが発生すると、オシレータは
以下のように動作します。
DMA 割り込みの優先度が CPU よりも高い場合、デバイスは復帰して動作モードへ移行します。
データ転送が完了した後、コード実行はデバイスをスリープへ移行させた命令の直後の命令か
ら再開します。従って、DMA 割り込みが発生するまでは、デバイスはスリープ中であり、オシ
レータの挙動はスリープ中 (42.5.1.1「スリープ中のプライマリ オシレータの動作」参照 ) と同
じです。DMA 割り込みが発生すると、デバイスはスリープから復帰して動作モードに移行しま
す。
DMA 割り込みの優先度が CPU よりも低い場合、デバイスはスリープからアイドルへ移行しま
す。CPU は復帰しないままデータ転送が実行され、転送が完了するとデバイスはスリープへ戻
ります。従って、DMA 割り込みが発生するまでは、デバイスはスリープ中であり、オシレータ
の挙動はスリープ中 (42.5.1.1「スリープ中のプライマリ オシレータの動作」参照 ) と同じで
す。DMA 割り込みが発生するとデバイスはアイドルへ移行します。DMA 転送が完了した時点
で、デバイスはスリープへ戻ります。
42.5.3
アイドル中のオシレータ動作
クロック源はアイドル中も動作を続けます。アイドルからの復帰時に起動遅延は適用されませ
ん。
42.5.4
デバッグモード中のオシレータ動作
オシレータ モジュールはデバッグモード中も動作を続けます。
DS60001250A_JP - p. 42-30
Preliminary
© 2014 Microchip Technology Inc.
セクション 42. 拡張 PLL を備えたオシレータ
42.6
各種リセットの影響
全ての形態のデバイスリセット時に、OSCCON レジスタは既定値に設定され、COSC<2:0>、
PLLIDIV<2:0>、PLLMULT<6:0>、PLLODIV<2:0>、PLLICLK、PLLRANGE<2:0> ビットは DEVCFG1
および DEVCFG2 レジスタで定義されている値に設定されます。オシレータソースは、DEVCFG1
レジスタ内の定義に従ってクロック源に供給されます。また、オシレータ起動遅延が適用されま
す。
Note:
42.7
DEVCFG2 コンフィグレーション レジスタについては、デバイス データシート内
の「その他の特殊機能」と『PIC32 ファミリ リファレンス マニュアル、セクショ
ン 32. コンフィグレーション』(DS60001124) を参照してください。
42
クロック供給に関するガイドライン
水晶振動子とセラミック振動子
HS モードでは、水晶またはセラミック振動子を OSC1 および OSC2 ピンに接続して発振回路
を構成します。PIC32 のオシレータ回路にはパラレルカット水晶振動子を使う必要があります。
シリーズカット水晶振動子を使うと、水晶振動子メーカーの仕様レンジ外の周波数が発生する
可能性があります。
一般的には、アプリケーション要件を満たす範囲内で可能な限りゲインの低いオシレータ オプ
ションを選択します。これにより動作電流 (IDD) を低く抑える事ができます。各オシレータモー
ドの周波数レンジは推奨カットオフ周波数に基づきますが、想定される電圧および温度条件と
部品 ( 抵抗、コンデンサ、内部オシレータ回路等 ) のばらつきを考慮した完全な検証を行えば、
上記レンジ外のゲインモードでも使えます。
42.7.2
水晶 / セラミック振動子の起動
デバイスの電圧が VSS から上昇するにつれてオシレータが発振を始めます。オシレータの発振
開始までに要する時間は、以下を含む各種要因によって決まります。
•
•
•
•
•
•
•
•
•
水晶 / セラミック振動子の周波数
コンデンサの容量
直列抵抗を使う場合、その値とタイプ
デバイスの VDD 立ち上がり時間
システム温度
デバイスのオシレータモード ( 内部オシレータ インバータのゲイン選択 )
水晶振動子の品質
オシレータ回路のレイアウト
システムノイズ
図 42-6 に、代表的な水晶 / セラミック振動子の起動時挙動を示します。起動してから発振が安
定するまでに一定時間が必要である事に注意してください。水晶振動子を使う各モードの周波
数レンジの詳細は、各デバイス データシート内の「電気的特性」を参照してください。
図 42-6: 水晶 / セラミック振動子の起動時挙動の例
Maximum VDD of System
Device Vdd
VIH
Voltage
VIL
0V
Crystal Start-up Time
Time
© 2014 Microchip Technology Inc.
Preliminary
DS60001250A_JP - p. 42-31
拡張 PLL を備えた
オシレータ
42.7.1
PIC32 ファミリ リファレンス マニュアル
42.7.3
オシレータ回路の調整
Microchip 社のデバイスは、製品やバージョンごとに動作レンジ ( 周波数 / 電圧 / 温度等 ) が異
なり、また、外付け部品 ( 水晶振動子、コンデンサ等 ) の品質はメーカーによって異なるため、
選択した部品がアプリケーション要件を満たす事を確認するために動作の検証が必要です。外
付け部品の選択と配置には各種の要因を考慮する必要があります。アプリケーションによって
も異なりますが、そのような要因として以下が挙げられます。
•
•
•
•
•
•
•
•
•
•
•
•
アンプのゲイン
目標周波数
水晶振動子の共振周波数
動作温度
電源電圧レンジ
起動時間
安定性
水晶振動子の寿命
消費電力
回路の複雑さ
標準部品の使用
部品点数
42.7.3.1
最適オシレータ部品の選択方法
部品の選択においては、多少の知識も必要ですが、それよりも計測とテストを何度も繰り返す
事が重要です。通常、水晶振動子は共振周波数だけを基準に選択されますが、他のパラメータ
( 温度または周波数公差等 ) が回路設計にとって重要になる場合もあります。水晶振動子の動作
と製品情報に関しては、Microchip 社のアプリケーション ノート『AN588 - PIC® Microcontroller
Oscillator Design Guide』(DS00000588) を参考にしてください。
PIC32 の内部オシレータは並列オシレータ回路を採用するため、並列共振水晶振動子を選択す
る必要があります。負荷容量の仕様値は通常 22 ~ 33 pF です。負荷容量がこのレンジ内であ
れば、水晶振動子は目標周波数にきわめて近い周波数で発振します。ただし後述するように、
他の利点を得るために、これらの値の変更が必要になる場合もあります。
C1 と C2 の値も、水晶振動子メーカーが推奨する負荷容量値とデバイスのデータシートに記載
されている一覧表に基づいて選択します。ただし、工場での特性評価に使った回路とユーザが
実際に使う回路とでは、水晶振動子のメーカー、電源電圧、基板レイアウトや上記の各種要因
が異なるため、デバイスのデータシートに記載されている値はあくまでも初期値としてのみ使
えます。
容量値は、想定されるデバイス動作環境において最も高温かつ最も VDD が低い条件でも発振す
るように選択するのが理想的です。高温および低 VDD 条件はどちらもループゲインを下げる方
向に作用するため、これらが共に最悪な条件で回路を動作させる事ができれば、想定範囲内の
全ての温度 / 電源電圧条件で正常な動作を期待できます。ゲインが最大になる条件 (VDD が最高
で温度が最低の条件 ) では、出力正弦波にクリッピングが生じない事が必要です。また、ゲイ
ンが最小になる条件 (VDD が最低で温度が最高の条件 ) では、出力正弦波の振幅がデバイスの
データシートに記載されているクロックの論理入力要件を十分に満たしている事が必要です。
起動時間を短縮するため、C2 の値を C1 より大きくするという方法があります。これにより電
源投入時に水晶振動子に生じる位相差が大きくなり、オシレータの起動が速くなります。これ
らのコンデンサは、水晶振動子の周波数応答を適正にするだけでなく、値を大きくする事でルー
プゲインを下げる効果も持ちます。C2 の選択は回路の総ゲインに影響します。水晶振動子が
オーバードライブされている場合、C2 の値を大きくするとゲインを下げる事ができます。た
だし、容量が大きすぎると、充放電によって水晶振動子に過大な電流が流れるため、C1 と C2
の値を極端に大きくすべきではありません。水晶振動子に流れる電流量は簡単に計測できませ
んが、容量が推奨値から大きく外れなければ、この問題を心配する必要はありません。
DS60001250A_JP - p. 42-32
Preliminary
© 2014 Microchip Technology Inc.
セクション 42. 拡張 PLL を備えたオシレータ
全ての外付け部品をどのように選択しても水晶振動子がオーバードライブされる場合、回路に
直列抵抗 Rs を追加します。直列抵抗を追加すべきかどうかは、被駆動側の OSC2 ピンをオシ
ロスコープで観察して判断します。OSC1 ピンにプローブを接続すると、ピンに負荷がかかり
すぎて性能が低下します。オシロスコープのプローブが持つ静電容量が回路に追加される事を
考慮に入れる必要があります ( つまり、10 pF のプローブで観察した時に、22 pF の C2 で回路
の動作が最適であった場合、実際には 33 pF のコンデンサが必要です )。出力信号のクリッピ
ング ( 波形ピークが平坦になる事 ) を防ぐ必要があります。水晶振動子をオーバードライブす
ると、回路が高次の高調波にジャンプしたり、場合によっては水晶振動子が損傷する可能性が
あります。
この限界状態で、オーバードライブが発生しないようにトリマ ポテンショメータを調整しま
す。そして、この調整値に最も近い標準値を持つ抵抗を直列抵抗 Rs として、トリマの代わり
に回路に挿入します。Rs が 20kΩ を超える場合、入出力間が疎となりすぎるため、クロックが
ノイズの影響を受けやすくなります。水晶振動子のオーバードライブを避けるためにこれほど
大きな値の直列抵抗が必要になる場合、C2 の値を大きくするか他のオシレータ動作モードを
試してください。このようにして、Rs が 10kΩ を大きく超えず、負荷容量がメーカーの仕様値
からあまり離れないような組み合わせを見つけてください。
© 2014 Microchip Technology Inc.
Preliminary
DS60001250A_JP - p. 42-33
42
拡張 PLL を備えた
オシレータ
OSC2 ピンでの信号は、クロック入力ピンの入力最小値と最大値を楽々超える振幅を持つ歪の
ない正弦波である事が必要です。そのように回路を設定する簡単な方法として、上記のように
予期される最小温度 / 最大 VDD 条件で回路を動作させて出力信号を観察します。この時のク
ロック出力の振幅が、予期される最大振幅です。この条件でクリッピングが生じたり、VDD と
VSS 付近で正弦波が歪んだりする場合、負荷容量を大きくすると水晶振動子に過大な電流が流
れたり、メーカーの負荷仕様値から大きく逸脱する可能性があります。このような場合、水晶
振動子の出力ピンと C2 ピンの間にトリマ ポテンショメータを接続し、歪みのない正弦波にな
るように水晶振動子に流れる電流量を調整します。水晶振動子の駆動電流は、温度が最も低く
VDD が最も高い条件で最大です。
PIC32 ファミリ リファレンス マニュアル
42.8
関連アプリケーション ノート
本セクションに関連するアプリケーション ノートの一覧を以下に記載します。一部のアプリ
ケーション ノートは PIC32 デバイスファミリ向けではありません。ただし概念は共通してお
り、変更が必要であったり制限事項が存在するものの利用が可能です。拡張 PLL を備えたオシ
レータモジュールに関連する最新のアプリケーション ノートは以下の通りです。
タイトル
アプリケーション ノート番号
Crystal Oscillator Basics and Crystal Selection for rfPIC® and PIC® MCU Devices
®
Basic PIC Microcontroller Oscillator Design
®
AN826
AN849
Practical PIC Microcontroller Oscillator Analysis and Design
AN943
Making Your Oscillator Work
AN949
Note:
DS60001250A_JP - p. 42-34
PIC32 デバイス ファミリ関連のアプリケーション ノートとサンプルコードは
Microchip 社のウェブサイト (www.microchip.com) でご覧になれます。
Preliminary
© 2014 Microchip Technology Inc.
セクション 42. 拡張 PLL を備えたオシレータ
42.9
改訂履歴
リビジョン A (2013 年 11 月 )
本書は初版です。
42
拡張 PLL を備えた
オシレータ
© 2014 Microchip Technology Inc.
Preliminary
DS60001250A_JP - p. 42-35
PIC32 ファミリ リファレンス マニュアル
NOTE:
DS60001250A_JP - p. 42-36
Preliminary
© 2014 Microchip Technology Inc.
Microchip 社製デバイスのコード保護機能に関して次の点にご注意ください。
•
Microchip 社製品は、該当する Microchip 社データシートに記載の仕様を満たしています。
•
Microchip 社では、通常の条件ならびに仕様に従って使用した場合、Microchip 社製品のセキュリティ レベルは、現在市場に流
通している同種製品の中でも最も高度であると考えています。
•
しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解ではこうした手法は、
Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事になります。このような行為は知的所
有権の侵害に該当する可能性が非常に高いと言えます。
•
Microchip 社は、コードの保全性に懸念を抱くお客様と連携し、対応策に取り組んでいきます。
•
Microchip 社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コード保護
機能とは、Microchip 社が製品を「解読不能」として保証するものではありません。
コード保護機能は常に進歩しています。Microchip 社では、常に製品のコード保護機能の改善に取り組んでいます。Microchip 社
のコード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはその他の著
本書に記載されているデバイス アプリケーション等に関する
情報は、ユーザの便宜のためにのみ提供されているものであ
り、更新によって無効とされる事があります。お客様のアプ
リケーションが仕様を満たす事を保証する責任は、お客様に
あります。Microchip 社は、明示的、暗黙的、書面、口頭、法
定のいずれであるかを問わず、本書に記載されている情報に
関して、状態、品質、性能、商品性、特定目的への適合性を
は じ め と す る、い か な る 類 の 表 明 も 保 証 も 行 い ま せ ん。
Microchip 社は、本書の情報およびその使用に起因する一切の
責任を否認します。Microchip 社の明示的な書面による承認な
しに、生命維持装置あるいは生命安全用途に Microchip 社の製
品を使用する事は全て購入者のリスクとし、また購入者はこ
れによって発生したあらゆる損害、クレーム、訴訟、費用に
関して、Microchip 社は擁護され、免責され、損害をうけない
事に同意するものとします。暗黙的あるいは明示的を問わず、
Microchip社が知的財産権を保有しているライセンスは一切譲
渡されません。
商標
Microchip 社の名称と Microchip ロゴ、dsPIC、FlashFlex、
KEELOQ、KEELOQ ロゴ、MPLAB、PIC、PICmicro、PICSTART、
PIC32 ロゴ、rfPIC、SST、SST ロゴ、SuperFlash、UNI/O は、
米 国お よ びそ の 他の 国 にお け る Microchip
Technology
Incorporated の登録商標です。
FilterLab、Hampshire、HI-TECH C、Linear Active Thermistor、
MTP、SEEVAL、Embedded Control Solutions Company は、
米国における Microchip Technology Incorporated の登録商標
です。
Silicon Storage Technology は、
その他の国における Microchip
Technology Incorporated の登録商標です。
Analog-for-the-Digital Age、Application Maestro、BodyCom、
chipKIT、chipKIT ロゴ、CodeGuard、dsPICDEM、dsPICDEM.net、
dsPICworks、dsSPEAK、ECAN、ECONOMONITOR、FanSense、
HI-TIDE、In-Circuit Serial Programming、ICSP、Mindi、MiWi、
MPASM、MPF、MPLAB 認証ロゴ、MPLIB、MPLINK、mTouch、
Omniscient Code Generation、PICC、PICC-18、PICDEM、
PICDEM.net、PICkit、PICtail、REAL ICE、rfLAB、Select Mode、
SQI、Serial Quad I/O、Total Endurance、TSHARC、UniWinDriver、
WiperLock、ZENA、Z-Scale は、米国およびその他の国におけ
る Microchip Technology Incorporated の登録商標です。
SQTP は、米国における Microchip Technology Incorporated
のサービスマークです。
GestICとULPPは、その他の国におけるMicrochip Technology
Germany II GmbH & Co. & KG (Microchip Technology
Incorporated の子会社 ) の登録商標です。
その他、本書に記載されている商標は各社に帰属します。
©2013, Microchip Technology Incorporated, Printed in the
U.S.A., All Rights Reserved.
ISBN: 978-1-63276-112-5
QUALITY MANAGEMENT SYSTEM
CERTIFIED BY DNV
== ISO/TS 16949 ==
 2014 Microchip Technology Inc.
Microchip 社では、Chandler および Tempe ( アリゾナ州 )、Gresham
( オレゴン州 ) の本部、設計部およびウェハー製造工場そしてカリフォ
ルニア州とインドのデザインセンターが ISO/TS-16949:2009 認証を
取得しています。Microchip 社の品質システム プロセスおよび手順は、
PIC® MCU および dsPIC® DSC、KEELOQ® コード ホッピング デバイ
ス、シリアル EEPROM、マイクロペリフェラル、不揮発性メモリ、ア
ナログ製品に採用されています。さらに、開発システムの設計と製造
に関する Microchip 社の品質システムは ISO 9001:2000 認証を取得し
ています。
DS60001250A_JP - p. 42-37
各国の営業所とサービス
北米
アジア / 太平洋
アジア / 太平洋
ヨーロッパ
本社
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel:480-792-7200
Fax:480-792-7277
技術サポート :
http://www.microchip.com/
support
URL:
www.microchip.com
アジア太平洋支社
Suites 3707-14, 37th Floor
Tower 6, The Gateway
Harbour City, Kowloon
Hong Kong
Tel:852-2943-5100
Fax:852-2401-3431
インド - バンガロール
Tel:91-80-3090-4444
Fax:91-80-3090-4123
オーストリア - ヴェルス
Tel:43-7242-2244-39
インド - ニューデリー
Tel:91-11-4160-8631
Fax:91-11-4160-8632
デンマーク - コペンハーゲン
Tel:45-4450-2828
Fax:45-4485-2829
インド - プネ
Tel:91-20-3019-1500
フランス - パリ
Tel:33-1-69-53-63-20
Fax:33-1-69-30-90-79
アトランタ
Duluth, GA
Tel:678-957-9614
Fax:678-957-1455
中国 - 北京
Tel:86-10-8569-7000
Fax:86-10-8528-2104
オーストラリア - シドニー
Tel:61-2-9868-6733
Fax:61-2-9868-6755
オースティン (TX)
Tel:512-257-3370
中国 - 成都
Tel:86-28-8665-5511
Fax:86-28-8665-7889
ボストン
Westborough, MA
Tel:774-760-0087
Fax:774-760-0088
中国 - 重慶
Tel:86-23-8980-9588
Fax:86-23-8980-9500
シカゴ
Itasca, IL
Tel:630-285-0071
Fax:630-285-0075
クリーブランド
Independence, OH
Tel:216-447-0464
Fax:216-447-0643
ダラス
Addison, TX
Tel:972-818-7423
Fax:972-818-2924
デトロイト
Novi, MI
Tel:248-848-4000
中国 - 杭州
Tel:86-571-8792-8115
Fax:86-571-8792-8116
中国 - 香港 SAR
Tel:852-2943-5100
Fax:852-2401-3431
中国 - 南京
Tel:86-25-8473-2460
Fax:86-25-8473-2470
中国 - 青島
Tel:86-532-8502-7355
Fax:86-532-8502-7205
中国 - 上海
Tel:86-21-5407-5533
Fax:86-21-5407-5066
ヒューストン (TX)
Tel:281-894-5983
中国 - 瀋陽
Tel:86-24-2334-2829
Fax:86-24-2334-2393
インディアナポリス
Noblesville, IN
Tel:317-773-8323
Fax:317-773-5453
中国 - 深圳
Tel:86-755-8864-2200
Fax:86-755-8203-1760
ロサンゼルス
Mission Viejo, CA
Tel:949-462-9523
Fax:949-462-9608
ニューヨーク (NY)
Tel:631-435-6000
中国 - 武漢
Tel:86-27-5980-5300
Fax:86-27-5980-5118
中国 - 西安
Tel:86-29-8833-7252
Fax:86-29-8833-7256
サンノゼ (CA)
Tel:408-735-9110
中国 - 厦門
Tel:86-592-2388138
Fax:86-592-2388130
カナダ - トロント
Tel:905-673-0699
Fax:905-673-6509
中国 - 珠海
Tel:86-756-3210040
Fax:86-756-3210049
Fax:43-7242-2244-393
日本 - 大阪
Tel:81-6-6152-7160
Fax:81-6-6152-9310
ドイツ - デュッセルドルフ
Tel:49-2129-3766400
日本 - 東京
Tel:81-3-6880- 3770
Fax:81-3-6880-3771
ドイツ - ミュンヘン
Tel:49-89-627-144-0
Fax:49-89-627-144-44
韓国 - 大邱
Tel:82-53-744-4301
Fax:82-53-744-4302
ドイツ - プフォルツハイム
Tel:49-7231-424750
イタリア - ミラノ
Tel:39-0331-742611
Fax:39-0331-466781
韓国 - ソウル
Tel:82-2-554-7200
Fax:82-2-558-5932 または
82-2-558-5934
イタリア - ベニス
Tel:39-049-7625286
マレーシア - クアラルンプール
Tel:60-3-6201-9857
Fax:60-3-6201-9859
オランダ - ドリューネン
Tel:31-416-690399
Fax:31-416-690340
マレーシア - ペナン
Tel:60-4-227-8870
Fax:60-4-227-4068
ポーランド - ワルシャワ
Tel:48-22-3325737
フィリピン - マニラ
Tel:63-2-634-9065
Fax:63-2-634-9069
シンガポール
Tel:65-6334-8870
Fax:65-6334-8850
台湾 - 新竹
Tel:886-3-5778-366
Fax:886-3-5770-955
スペイン - マドリッド
Tel:34-91-708-08-90
Fax:34-91-708-08-91
スウェーデン - ストックホルム
Tel:46-8-5090-4654
イギリス - ウォーキンガム
Tel:44-118-921-5800
Fax:44-118-921-5820
台湾 - 高雄
Tel:886-7-213-7830
台湾 - 台北
Tel:886-2-2508-8600
Fax:886-2-2508-0102
タイ - バンコク
Tel:66-2-694-1351
Fax:66-2-694-1350
03/25/14
DS60001250A_JP - p. 42-38
2014 Microchip Technology Inc.