セクション 10. 省電力モードww1.microchip.com/downloads/jp/DeviceDoc/60001130H_JP.pdf©...
Transcript of セクション 10. 省電力モードww1.microchip.com/downloads/jp/DeviceDoc/60001130H_JP.pdf©...
注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジナルの英語版をご参照願います。
セクション 10. 省電力モード
省電力
モード
10
ハイライト
本セクションには以下の主要項目を記載しています。
10.1 はじめに....................................................................................................................... 10-210.2 省電力モード ............................................................................................................... 10-210.3 省電力モードの制御レジスタ ...................................................................................... 10-410.4 標準の省電力モード..................................................................................................... 10-810.6 XLP 省電力モード...................................................................................................... 10-1710.7 関連アプリケーション ノート ................................................................................... 10-2410.8 改訂履歴..................................................................................................................... 10-25
© 2007-2015 Microchip Technology Inc. DS60001130H_JP-p.10-1
PIC32 ファミリ リファレンス マニュアル
10.1 はじめに
本書では、PIC32 デバイスが実装している省電力モードについて説明します。PIC32 ファミリのデバイスは、ユーザ アプリケーションが性能と消費電力を最適にバランスさせる事ができるように、各種の内蔵機能を備えています。VBAT モードを除く全ての省電力モードはソフトウェアで選択できます。
10.2 省電力モード
PIC32 が実装する省電力機能には以下が含まれます。
• 周辺モジュールバス スケーリング モード
• アイドルモード
• スリープモード
• ドリームモード
• ディープスリープ モード
• VBAT モード
全てのデバイスが全ての省電力モードを備えている訳ではありません。詳細は各デバイス データシート内の「省電力機能」を参照してください。
10.2.1 周辺モジュールバス スケーリング モード
このモードでは CPU は通常に動作し、周辺モジュールはシステムクロック (SYSCLK) から分周したクロックを使って低速で動作します ( 分周比は設定可能 )。
一部のデバイスは周辺モジュールバス スケーリング モードをサポートしていません。詳細はデバイス データシートの「省電力機能」を参照してください。
10.2.2 アイドルモード
このモードでは CPU は停止しますが、周辺モジュールは動作を続けます。個々の周辺モジュールを選択的に無効にする事により、さらに消費電力を低減できます。SYSCLK はプライマリ オシレータ (POSC)、内部高速 RC (FRC) オシレータ、内部低消費電力 RC (LPRC) オシレータ、セカンダリ オシレータ (SOSC) から生成できます。
10.2.3 スリープモード
CPU、SYSCLK クロック源、SYSCLK クロック源を使って動作する全ての周辺モジュールが停止します。特定のクロック源を使って動作する一部の周辺モジュールはスリープモード中でも動作できます。
Note: ファミリ リファレンス マニュアルの本セクションは、デバイス データシートの補足を目的としています。本書の内容は PIC32 ファミリの一部のデバイスに対応していません。
本書の内容がお使用いのデバイスに対応しているかどうかは、最新デバイス データシート内の「省電力機能」の冒頭に記載している注意書きでご確認ください。
デバイス データシートとファミリ リファレンス マニュアルの各セクションは、Microchip社のウェブページ (http://www.microchip.com)からダウンロードできます。
Note: 全てのデバイスが全ての省電力モードを備えている訳ではありません。ご使用になるデバイスで利用できる省電力モードについては、デバイス データシート内の
「省電力機能」を参照してください。
DS60001130H_JP--p.10-2 © 2007-2015 Microchip Technology Inc.
省電力モード省
電力
モード
10
10.2.4 ドリームモード
このモードでは、スリープモード中の割り込みにより、CPU を復帰させる事なく DMA 転送を行えます。DMA 転送が完了すると、デバイスはスリープモードに戻ります。DMA 転送中もCPU は停止したままです。
ドリームモードは一部のデバイスでのみ利用できます。詳細はデバイス データシートの「省電力機能」を参照してください。
10.2.5 ディープスリープ モード このモードでは、CPU、RAM、周辺モジュールへの電力供給が停止します。デバイスへの VDD電源は維持されます。ディープスリープ ウォッチドッグ タイマ (DSWDT)、リアルタイム クロック/カレンダ(RTCC)、ディープスリープ時データ保持汎用レジスタ(DSGPR1~DSGPR32)に電力を供給するかどうかは、オプションで選択できます。DSGPR0 レジスタと I/O ピンの状態は保持されます。
ディープスリープ モードは一部のデバイスでのみ利用できます。詳細はデバイス データシートの「省電力機能」を参照してください。
10.2.6 VBAT モード VDD が VPOR よりも低下すると自動的にこのモードに移行し、デバイスには VBAT ピンから電源 ( バッテリまたはスーパーキャパシタ ) が供給されます。DSWDT、CPU、RAM、周辺モジュールへの電力供給は停止します。RTCC モジュールと DSGPR1 ~ DSGPR32 レジスタへの電力供給を停止するかどうかは、オプションで選択できます。VBAT モードでは DSGPR0 レジスタには電力が供給されますが、ディープスリープ モードとは異なり、ピン I/O 状態は保持されません。プログラマブル低電圧検出 (PLVD) モジュールを使ってユーザ定義可能なトリップ点でノンマスカブル割り込み (NMI) を生成する事により、VBAT モードへ移行する前のデータの状態をディープスリープ時データ保持汎用レジスタに保存できます。
VBAT モードは一部のデバイスでのみ利用できます。詳細は各デバイス データシート内の「省電力機能」を参照してください。
© 2007-2015 Microchip Technology Inc. DS60001130H_JP--p.10-3
PIC32 ファミリ リファレンス マニュアル
10.3 省電力モードの制御レジスタ
省電力モードのサポートに使える特殊機能レジスタ (SFR) は以下の通りです。
• OSCCON: オシレータ制御レジスタ
• PBDIVx: 周辺モジュールバス クロック分周比 x 制御レジスタ
これらのレジスタについては、デバイス データシート内の「オシレータ コンフィグレーション」と セクション6.「オシレータ」(DS61112)を参照してください。
• WDTCON: ウォッチドッグ タイマ制御レジスタ
このレジスタについては、セクション9.「ウォッチドッグ タイマ(WDT)とパワーアップタイマ(PWRT)」(DS61114)内の「ウォッチドッグ/デッドマン/パワーアップタイマ」(DS60001114)を参照してください。
• RCON: リセット制御レジスタ
このレジスタについては、デバイスデータシート内の「リセット」とセクション 7.「リセット」(DS60001118)を参照してください。
• RTCCON: リアルタイム クロック / カレンダ制御レジスタ
このレジスタについては、デバイスシート内の「リアルタイム クロック/カレンダ(RTCC)」とセクション29.「RTCC」を参照してください。
• DSCON: ディープスリープ制御レジスタ
• DSWAKE: ディープスリープ復帰要因レジスタ
• DSGPRx: ディープスリープ時データ保持汎用レジスタ x (x = 0 ~ 32)• PMDx: 周辺モジュール無効化 x レジスタ
• PMDCON: 周辺モジュール無効化制御レジスタ
• PWRCON: 電源制御レジスタ
これらのレジスタの詳細はデバイス データシート内の「省電力機能」を参照してください。
省電力モードに関連するレジスタの要約を下表に示します。この表の後に、各レジスタの詳細な説明を記載しています。
Note: デバイスによって利用できるレジスタが異なります。詳細はデバイス データシートを参照してください。
表 10-1: 省電力モード関連 SFR の要約
SFR 名ビット
レンジ
Bit31/23/15/7
Bit30/22/14/6
Bit29/21/13/5
Bit28/20/12/4
Bit27/19/11/3
Bit26/18/10/2
Bit25/17/9/1
Bit24/16/8/0
DSCON 31:24 — — — — — — — —23:16 — — — — — — — —15:8 DSEN — DSGPREN RTCDIS — — — RTCCWDIS7:0 — — — — — WAKEDIS DSBOR RELEASE
DSWAKE 31:24 — — — — — — — —23:16 — — — — — — — —15:8 — — — — — — — DSINT07:0 DSFLT BOR DSEXT DSWDT DSRTC DSMCLR — DSPOR
DSGPRx 31:24 ディープスリープ時データ保持汎用ビット <31:24>23:16 ディープスリープ時データ保持汎用ビット <23:16>15:8 ディープスリープ時データ保持汎用ビット <15:8>7:0 ディープスリープ時データ保持汎用ビット <7:0>
凡例 : — = 未実装、「0」として読み出し
DS60001130H_JP--p.10-4 © 2007-2015 Microchip Technology Inc.
省電力モード省
電力
モード
10
レジスタ 10-1: DSCON: ディープスリープ制御レジスタ
ビットレンジ
Bit31/23/15/7
Bit30/22/14/6
Bit29/21/13/5
Bit28/20/12/4
Bit27/19/11/3
Bit26/18/10/2
Bit25/17/9/1
Bit24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — — — — — — —
23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — — — — — — —
15:8HC, R/W-0 U-0 R/W-0 R/W-0 U-0 U-0 U-0 R/W-0
DSEN(1) — DSGPREN RTCDIS — — — RTCCWDIS
7:0U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0
— — — — — WAKEDIS DSBOR RELEASE
凡例 : HC = ハードウェア クリア可能ビット
R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し
-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知
bit 31-16 未実装: 「0」として読み出し
bit 15 DSEN: ディープスリープ イネーブルビット(1)
1 = WAITコマンドでディープスリープ モードに移行する0 = WAITコマンドでスリープモードに移行する
bit 14 未実装: 「0」として読み出し
bit 13 DSGPREN: ディープスリープ汎用レジスタ イネーブルビット
1 = ディープスリープ モード中に汎用レジスタのデータを保持する0 = ディープスリープ モード中に汎用レジスタのデータを保持しない
bit 12 RTCDIS: RTCCモジュール ディセーブルビット
1 = RTCCモジュールを無効にする0 = RTCCモジュールを有効にする
bit 11-9 未実装: 「0」として読み出し
bit 8 RTCCWDIS: RTCC復帰ディセーブル ビット
1 = RTCCからの復帰を無効にする0 = RTCCからの復帰を有効にする
bit 7-3 未実装: 「0」として読み出し
bit 2 WAKEDIS: 復帰要因ディセーブルビット
1 = 外部復帰要因を無効にする0 = 外部復帰要因を有効にする
bit 1 DSBOR: ディープスリープBORイベント ステータスビット
1= DSBORENが有効な状態でディープスリープ中にVDDがDSBORしきい値よりも低下した(2)
0= DSBORENが無効であった、または有効であったがディープスリープ中にVddはDSBORしきい値よりも低下しなかった
bit 0 RELEASE: I/Oピン状態リリースビット
1= ディープスリープからの復帰時にI/Oピンは以前の状態を保持する0 = I/Oピンをリリースし、対応するTRISおよびLATビットでI/Oピンの状態を制御する
Note 1: ディープスリープ モードに移行するには、DSEN ビットをセットしてからスリープモードへの移行を実行する必要があります。
2: ディープスリープ ブラウンアウト リセット (BOR) イベントは、他の全てのイベントとは異なり、ディープスリープからの復帰をトリガしません。このビットはステータスビットとしてのみ機能します。
Note: デバイスによってはこのレジスタを実装していません。詳細は各デバイス データシート内の「省電力機能」を参照してください。
© 2007-2015 Microchip Technology Inc. DS60001130H_JP--p.10-5
PIC32 ファミリ リファレンス マニュアル
レジスタ 10-2: DSWAKE: ディープスリープ復帰要因レジスタ
ビットレンジ
Bit31/23/15/7
Bit30/22/14/6
Bit29/21/13/5
Bit28/20/12/4
Bit27/19/11/3
Bit26/18/10/2
Bit25/17/9/1
Bit24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — — — — — — —
23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — — — — — — —
15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 HS, R/W-0
— — — — — — — DSINT0
7:0HS, R/W-0 HS, R/W-0 HS, R/W-0 HS, R/W-0 HS, R/W-0 HS, R/W-0 U-0 HS, R/W-1
DSFLT BOR DSEXT DSWDT DSRTC DSMCLR — DSPOR(1)
凡例 : HS = ハードウェア セット可能ビット
R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し
-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知
bit 31-9 未実装: 「0」として読み出し
bit 8 DSINT0: ディープスリープ入力状態変化時割り込みビット
1 = ディープスリープ中に入力状態変化割り込みがアサートされた0 = ディープスリープ中に入力状態変化割り込みはアサートされなかった
bit 7 DSFLT: ディープスリープ フォルト検出ビット
1 = ディープスリープ中にフォルトが発生し、一部のディープスリープ コンフィグレーション設定が破損した可能性がある
0 = ディープスリープ中にフォルトは発生しなかった
bit 6 BOR: ディープスリープBORイベントビット
1 = ディープスリープ中にBORイベントはアクティブでありアサートされた0 = ディープスリープ中にBORイベントはアサートされなかった
bit 5 DSEXT: ディープスリープ外部復帰要因ビット
1 = ディープスリープ中に外部復帰イベントが検出された0 = ディープスリープ中に外部復帰イベントは検出されなかった
bit 4 DSWDT: ディープスリープ ウォッチドッグ タイマ タイムアウトビット
1 = ディープスリープ中にディープスリープ ウォッチドッグ タイマがタイムアウトした0 = ディープスリープ中にディープスリープ ウォッチドッグ タイマはタイムアウトしなかった
bit 3 DSRTC: ディープスリープ リアルタイム クロック/カレンダ アラームビット
1 = ディープスリープ中にリアルタイム クロック/カレンダがアラームをトリガした0 = ディープスリープ中にリアルタイム クロック/カレンダはアラームをトリガしなかった
bit 2 DSMCLR: ディープスリープMCLRイベントビット
1 = アクティブであったMCLRピンがディープスリープ中にアサートされた0 = MCLRピンはアクティブではなかった、またはアクティブであったがディープスリープ中にアサートさ
れなかった
bit 1 未実装: 「0」として読み出し
bit 0 DSPOR: ディープスリープ フォルト検出ビット(1)
1 = アクティブであったVDD電源POR回路がパワーオンリセット(POR)イベントを検出した0 = VDD電源POR回路はアクティブでなかった、またはアクティブであったがPORイベントを検出しなかった
Note 1: このビットは、このレジスタ内の他のビットとは異なり、ディープスリープ モードとは無関係の通常のPOR 時にもセットされます。
Note: デバイスによってはこのレジスタを実装していません。詳細は各デバイス データシート内の「省電力機能」を参照してください。また、DSENビット(DSCON<15>)をセットすると、このレジスタ内の全てのビットがクリアされます。
DS60001130H_JP--p.10-6 © 2007-2015 Microchip Technology Inc.
省電力モード省
電力
モード
10
レジスタ 10-3: DSGPRx: ディープスリープ時データ保持汎用レジスタx (x = 0~32)
ビットレンジ
Bit31/23/15/7
Bit30/22/14/6
Bit29/21/13/5
Bit28/20/12/4
Bit27/19/11/3
Bit26/18/10/2
Bit25/17/9/1
Bit24/16/8/0
31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x
ディープスリープ時データ保持汎用ビット
23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x
ディープスリープ時データ保持汎用ビット
15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x
ディープスリープ時データ保持汎用ビット
7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x
ディープスリープ時データ保持汎用ビット
凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し
-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知
bit 31-0 ディープスリープ時データ保持汎用ビット
Note: DSGPR0レジスタの内容は、ディープスリープ モードでもVBATモードでも保持されます。ディープスリープおよびVBATモード時のDSPGR1~DSPGR32レジスタのデータ保持機能は、既定値では無効ですが、DSGPRENビット(DSCON<13>)を使って有効にできます。全てのレジスタビットは、ディープスリープモードとは無関係のVDDパワーオン リセット(POR)イベントの場合にのみリセットされます。
© 2007-2015 Microchip Technology Inc. DS60001130H_JP--p.10-7
PIC32 ファミリ リファレンス マニュアル
10.4 標準の省電力モード
PIC32 デバイスファミリは各種の省電力モードを備えています。これらのモードでは、クロック周波数の低減と電力供給の部分的停止のいずれかまたは両方を使って消費電力を低減します。
• 周辺モジュールバスのスケーリング
• アイドルモード
• スリープモード
• ドリームモード
• 周辺モジュールの選択的消費電力制御
10.4.1 周辺モジュールバスのスケーリング
デバイス上のほとんどの周辺モジュールのクロックは、周辺モジュールバス クロック (PBCLK)を使って供給されます。周辺モジュールバス周波数を SYSCLK 周波数からスケーリング ( 分周) する事により、周辺モジュールの動的な消費電力を最小限に抑える事ができます。PBCLK の分周比は PBDIVx ビットにより制御します。分周比を変更すると、PBCLK を使う全ての周辺モジュールに影響します。SYSCLK から直接クロックの供給を受ける割り込みコントローラ、ダイレクトメモリ アクセス (DMA)、バスマトリクス、プリフェッチ キャッシュ等の周辺モジュールは、PBCLK 分周比を変更しても影響を受けません。
PBCLK 分周比の変更は以下に影響します。
• CPU から周辺モジュールへのアクセス レイテンシ : CPU は、1 回の読み出しを完了するために次の PBCLK エッジまで待機する必要があります。例えば 1:8 モードの場合、最大で 7SYSCLK の遅延が生じます。
• 周辺モジュールの消費電力 : 周辺モジュールの消費電力はクロックの周波数に直接比例します。分周比を大きくすればするほど周辺モジュールの消費電力は低下します。
動的消費電力を最小限にするために、満足なシステム性能が得られる最低限の周波数で周辺モジュールが動作するよう PBCLK 分周比を選択する必要があります。PBCLK 分周比を選択する際に、周辺モジュールのクロック要件 (baud レート精度等 ) を考慮する必要があります。例えば、SYSCLK 周波数と PBCLK 分周比の組み合わせによっては、UART 周辺モジュールが一部の baud レート値を達成できなくなる場合があります。
10.4.1.1 動的な周辺モジュールバスのスケーリング
デバイスが低消費電力モードで動作する時に、ソフトウェアで PBCLK を動的にスケーリングする事により、消費電力をさらに低減できます。PBCLK をスケーリングする際は以下を考慮する必要があります。
• PBCLK からクロックの供給を受ける全ての周辺モジュールは、同時に同じ分周比でスケーリングされます。この事は、低消費電力モード中も baud レートまたはパルス周期を一定に維持する必要のある周辺モジュールに対して考慮する必要があります。
• PBCLK が変化した時に周辺モジュールバス上の周辺モジュールで通信が進行中であった場合、送受信中の周波数変化によってデータエラーまたはプロトコルエラーが発生します。
Note: 全てのデバイスが全ての省電力モードを備えている訳ではありません。ご使用になるデバイスで利用できる省電力モードについては、デバイス データシート内の
「省電力機能」を参照してください。
Note: PBDIV ビットは一部のデバイスにのみ実装されています。詳細はデバイス データシート内の「オシレータ コンフィグレーション」とセクション 6.「オシレータ」を参照してください。
DS60001130H_JP--p.10-8 © 2007-2015 Microchip Technology Inc.
省電力モード省
電力
モード
10
PBCLK 分周比を動的に変更する場合、以下の手順を推奨します。
1. baud レートに影響を受ける全ての通信用周辺モジュールを無効にします。モジュールを無効にする前に、それらが現在通信中ではない事を確認する必要があります。通信中のモジュールを無効にすると、プロトコルエラーが発生する可能性があります。
2. 分周比を変更した後の PBCLK 周波数で動作要件を満たせるよう、通信用周辺モジュールの baud レート ジェネレータ (BRG) の設定を変更します。
3. 周辺モジュールバスの分周比を変更します。
4. baud レートに影響を受ける全ての通信用周辺モジュールを有効にします。
10.4.2 アイドルモード
アイドルモードでは CPU は停止しますが、SYSCLK クロック源は有効なままです。このため周辺モジュールは CPU が停止中であっても動作を続ける事ができます。個々の周辺モジュールの SIDL ビットをセットする事により、アイドルモードに移行する際に一部のモジュールだけを選択的に停止させる事ができます。アイドルモード中も CPU オシレータは動作を続けるため、アイドルモードから復帰する際のレイテンシは非常に短くて済みます。
アイドルモードでは以下の 4 つの SYSCLK クロック源を使えます。
• POSC: POSC から SYSCLK を生成します。PLL を併用する場合、PLLMULT<2:0> ビット(OSCCON<18:16>) で設定されている逓倍値を下げる事によっても、周辺モジュールの消費電力を低減できます。
• FRC: FRC から SYSCLK を生成します。PLL を併用する場合、PLLMULT<2:0> ビット(OSCCON<18:16>) で設定されている逓倍値を下げる事によっても、周辺モジュールの消費電力を低減できます。FRC クロックはポストスケーラ (RCDIV<2:0> ビット(OSCCON<26:24>)) を使ってさらに分周できます。
• DCO: デジタル制御オシレータ (DCO) から SYSCLK を生成します。
• SOSC: SOSC から SYSCLK を生成します。
• LPRC: LPRC から SYSCLK を生成します。CPU は停止します。周辺モジュールは動作を続けますが、個々のモジュールを選択的に無効にする事もできます。
SLPEN ビット (OSCCON<4>) をクリアした状態で WAIT 命令を実行すると、デバイスはアイドルモードに移行します。プロセッサは、以下の全てのイベントで復帰します。
• 割り込み要因が有効になっている全ての割り込みイベント : 割り込みイベントの優先度がCPUの現在の優先度よりも高い事が必要です。割り込みイベントの優先度が現在の CPU 優先度以下である場合、CPU は停止したまま、デバイスは選択されたアイドルモードに留まります。
• 全てのデバイスリセット ( 要因を問わず )• WDT タイムアウト割り込み ( セクション 10.4.3.9「ウォッチドッグ タイマのタイムアウトに
よるスリープまたはアイドルモードからの復帰」とセクション 9.「ウォッチドッグ、デッドマン、パワーアップ タイマ」(DS60001114) 参照 )
Note: これらの周辺モジュールの baud レートの変更は、対応する周辺モジュール SFRに書き込む事により行います。レイテンシを最小限にするために、PBCLK ができるだけ高い周波数数で動作している時に周辺モジュールの設定を変更する必要があります。
Note 1: PBCLK 分周比を変更する場合、周辺モジュールのタイミングを計算し直す必要があります。例として、PBCLK 分周比 = 1:1 かつ POSC = 8 MHz の条件で 9600baud が得られるように UART を設定している場合を想定します。PBCLK 分周比を 1:2 に変更すると、baud クロックへの入力周波数は 1/2 に分周されるため、baud レートも元の値の 1/2 になります。baud レート分周器等の計算では切り捨て誤差が生じるため、実際の baud レートは予測値と少し異なる場合があります。このため、周辺モジュールのタイミング計算には、変更前の PBCLK 周波数から分周比の変化に基づいてスケーリングした値の代わりに、変更後の実際の PBCLK周波数を使う必要があります。
2: 未起動の水晶振動子クロック源 (PLL 併用または非併用 ) に切り換える場合、切り換え時にオシレータ起動遅延と PLL ロック遅延 (PLL を併用する場合 ) が適用されます。例として、スリープモードへ移行する前にクロック源を POSC から LPRCへ切り換える場合を想定します。アイドルモードを終了する際にオシレータ起動遅延は適用されません。しかし、LPRC から POSC へ切り換える際に、適切なオシレータ起動遅延と PLL ロック遅延 (PLL を併用する場合 ) が適用されます。
© 2007-2015 Microchip Technology Inc. DS60001130H_JP--p.10-9
PIC32 ファミリ リファレンス マニュアル
例 10-1 に、デバイスをアイドルモードに設定し ADC イベントで復帰させるサンプルコードを示します。
例 10-1: デバイスをアイドルモードに設定しADCイベントで復帰させる
10.4.3 スリープモード
SLPENビット (OSCCON<4>)をセットした状態でWAIT命令を実行すると、デバイスはスリープモードに移行します。デバイスがスリープモードに移行すると、CPU と大部分の周辺モジュールが停止します。しかし、一部の周辺モジュールは動作を継続でき、それらを使ってデバイスをスリープモードから復帰させる事ができます。周辺モジュールのスリープモード中の挙動については、ファミリ リファレンス マニュアルの各周辺モジュールに関連するセクションを参照してください。
スリープモードの特徴は以下のの通りです。
• CPU は停止する
• 通常、SYSCLK クロック源は停止する ( 詳細はセクション 10.4.3.1「スリープモード中のオシレータのシャットダウン」参照 )
• 選択したオシレータに応じて起動遅延は異なる ( 表 10-2 参照 )• フェイルセーフ クロック監視 (FSCM) 機能はスリープモード中に動作しない
• ブラウンアウト リセット (BOR) 回路はスリープモード中も動作を続ける
• 動作中のウォッチドッグ タイマ (WDT) はスリープモードへの移行前に自動的にクリアされない
• 一部の周辺モジュールはスリープモード中も動作を継続できます。これらの周辺モジュールには、入力信号の状態変化を検出する I/O ピン、WDT/RTCC/ADC/UART モジュール、外部クロック入力または内部 LPRC オシレータを使う周辺モジュールが含まれます。
• I/O ピンは、非スリープモード時と同様に、電流のシンクまたはソースを継続します。
• スリープモードに移行する前に、ソフトウェアで個々の周辺モジュールを選択的に無効にする ( 対応する周辺モジュール SIDL ビットをセットする ) 事により、消費電力をさらに低減できます。
• 既定値では、デバイスがスリープモードに移行するとフラッシュ パネル電圧レギュレータ(VREGB) がスタンバイ状態に移行します。これは VREGS ビット (RCON<8>) を使って阻止でき、そうする事により起動時間を短縮できます。
• USB (Universal Serial Bus) モジュールは、POSC または FRC の停止を阻止できます。詳細はデバイス データシートの「USB On-The-Go (OTG) モジュール」とセクション 27.「USBOn-The-Go (OTG)」(DS61126) を参照してください。
// Code example to put the device in Idle mode, and then wake the device when// the ADC completes a conversion
SYSKEY = 0x0; // Write invalid key to force lockSYSKEY = 0xAA996655; // Write Key1 to SYSKEYSYSKEY = 0x556699AA; // Write Key2 to SYSKEYOSCCONCLR = 0x10; // Set the power-saving mode to an idle modeSYSKEY = 0x0; // Write invalid key to force lock
asm volatile ( “wait” ); // Put device in selected power-saving mode// Code execution will resume here after wake and // the ISR is complete
... user code ...
// interrupt handlervoid __ISR(_ADC_VECTOR, ipl7) ADC_HANDLER(void){
unsigned long int result;
result = ADC1BUF0; // Read the result IFS1CLR = 2; // Clear ADC conversion interrupt flag
}
DS60001130H_JP--p.10-10 © 2007-2015 Microchip Technology Inc.
省電力モード省
電力
モード
10
プロセッサは、以下のいずれかのイベントが発生した時に、スリープモードを終了します ( またはスリープモードから復帰します )。
• スリープモード中に動作する有効な要因からの全ての割り込み : 割り込み優先度は現在のCPU 優先度よりも高い事が必要です。
• 全てのデバイスリセット ( 種類を問わず )• WDT タイムアウト ( セクション 10.4.3.9「ウォッチドッグ タイマのタイムアウトによるスリープまたはアイドルモードからの復帰」参照 )
割り込み優先度が現在の CPU 優先度以下である場合、CPU は停止したまま周辺モジュールバス クロック (PBCLK) が動作を開始し、デバイスはアイドルモードに移行します。例 10-2 に、デバイスをスリープモードに設定し WDT を使って復帰させるサンプルコードを示します。
例 10-2: デバイスをスリープモードに設定しWDTを使って復帰させる
10.4.3.1 スリープモード中のオシレータのシャットダウン
スリープモード中のオシレータの挙動は以下の通りです。
• CPU クロック源が POSC である場合、オシレータはスリープモード時に停止する
• CPU クロック源が FRC である場合、オシレータはスリープモード時に停止する
• CPU クロック源が SOSC である場合、SOSCEN ビットがセットされていなければ、オシレータはスリープモード時に停止する
• CPU クロック源が LPRC である場合、スリープモード中に動作する周辺モジュール (WDT等 ) が LPRC を使わないのであれば、オシレータはスリープモード時に停止する
• CPU クロック源が DCO である場合、オシレータはスリープモード時に停止する
10.4.3.2 スリープモードから復帰する際のクロックの選択
プロセッサは、スリープモードへの移行前にアクティブであったクロック源を使ってコード実行を再開します。水晶振動子 ( 位相ロックループ (PLL) を併用または非併用 ) をクロック源として使う場合、デバイスがスリープモードを終了する際に起動遅延が適用されます。
Note: スリープモードから復帰する際に適用される遅延を表 10-2 に示します。USB モジュールは、POSC または FRC の停止を阻止できます。詳細はデバイス データシートの「USB On-The-Go (OTG) モジュール」とセクション 27.「USB On-The-Go(OTG)」(DS61126) を参照してください。
// Code example to put the Device in sleep and then wake the device using// the WDT
OSCCONSET = 0x10; // set Power-Saving mode to Sleep
WDTCONCLR = 0x0002; // Disable WDT window modeWDTCONSET = 0x8000; // Enable WDT
// WDT time-out period is set in the device // configuration
... user code ...
WDTCONSET = 0x01; // service the WDTasm volatile( “wait” ); // put device in selected power-saving mode
// code execution will resume here after wake-up
© 2007-2015 Microchip Technology Inc. DS60001130H_JP--p.10-11
PIC32 ファミリ リファレンス マニュアル
を
10.4.3.3 スリープモードからのウェイクアップ時の遅延
表 10-2 に、スリープモードからの復帰時に適用されるオシレータ起動タイマ (OST) と FSCM遅延 (FSCM が有効な場合 ) を示します。
表 10-2: スリープモードからの復帰における遅延時間
10.4.3.4 水晶振動子オシレータ (PLL併 用または非併用 )を 使用する場合のスリープモードからの復帰
水晶振動子 (PLL 併用または非併用 ) から SYSCLK を生成する場合、デバイスへの SYSCLK クロック源の供給が可能になる前に、オシレータ起動タイマ (OST) と PLL ロックタイマ (PLL を併用する場合 ) による遅延時間が適用されます。例外として、SYSCLK クロック源に POSC オシレータを使い、このオシレータがスリープモード中に動作していた場合、オシレータ遅延は適用されません。
10.4.3.5 フェイルセーフ クロック監視遅延とスリープモード
FSCM はスリープモード中に動作しません。FSCM を有効にしている場合、デバイスがスリープモードから復帰すると FSCM が動作を再開します。FSCM が監視を再開する前に、オシレータソースの安定化を待機するために、遅延時間 TFSCM が適用されます。
以下の条件が成立する場合、スリープモードからの復帰時に TFSCM 遅延が適用されます。
• スリープモード中にオシレータが停止していた場合
• 水晶振動子オシレータソース (PLL 併用または非併用 ) から SYSCLK を生成する場合
ほとんどの場合、TFSCM 遅延が終了する前に、OST と PLL ロックタイマが終了してデバイスは実行を再開します。FSCM を有効にしている場合、TFSCM 遅延が終了した後に FSCM による SYSCLK クロック源の監視が始まります。
10.4.3.6 オシレータの起動に長い時間がかかる場合
オシレータの起動に長い時間がかかる場合、FSCM タイムアウトまでに OST および PLL ロックタイマが終了しない可能性があります。
FSCM を有効にしている場合、デバイスはこの状態をクロック障害として検出し、クロック障害トラップが発生します。するとデバイスはクロック源を FRC オシレータに切り換えますが、ユーザはクロック障害割り込みサービスルーチン (ISR) 内で水晶振動子オシレータソースを再度有効にできます。
クロック源 オシレータ遅延 FSCM 遅延
EC、EXTRC — —EC + PLL TLOCK TFSCM
XT + PLL TOST + TLOCK TFSCM
XT、HS、XTL TOST TFSCM
LP ( スリープ中 OFF の場合 ) TOST TFSCM
LP ( スリープ中 ON の場合 ) — —
FRC、LPRC — —DCO TDCO —
Note: TPOR、TFSCM、TLOCKの仕様値については、デバイス データシートの「電気的特性」参照してください。
Note: どのような遅延を適用したとしても、TOST または TLOCK 遅延の終了時に水晶振動子オシレータ ( および PLL) が必ず起動して発振するとは限りません。デバイスを正しく動作させるには、遅延期間内に確実な発振が起きるように外部オシレータ回路を設計する必要があります。
Note: FSCM 割り込みの挙動は、超低消費電力 (XLP) デバイスとそれ以外のデバイスで異なります。詳細はデバイス データシートの「オシレータ コンフィグレーション」とセクション 6.「オシレータ」を参照してください。
DS60001130H_JP--p.10-12 © 2007-2015 Microchip Technology Inc.
省電力モード省
電力
モード
10
FSCM を有効にしていない場合、クロックが安定するまでデバイスはコードの実行を開始しません。この場合、ユーザには、オシレータ クロックが起動するまでデバイスがスリープモードのままでいるかのように見えます。
10.4.3.7 USB周 辺モジュールによるスリープモード中のオシレータ制御
USB モジュールが動作している場合、デバイスがスリープモードに移行しても、USB モジュールが使っているクロック源は無効になりません。オシレータは動作し続けますが、CPU とその他の周辺モジュールは停止します。
10.4.3.8 周辺モジュール割り込みによるスリープまたはアイドルモードからの復帰
IECx レジスタ内の対応する割り込みイネーブル (IE) 制御ビットを使って個々に有効にした割り込み要因が省電力モード中に機能する場合、それらの割り込み要因はスリープまたはアイドルモードからデバイスを復帰させる事ができます。デバイスが復帰する際に、割り込み優先度に基づいて以下のいずれかのイベントが発生します。
• 割り込みに割り当てられている優先度が現在の CPU 優先度以下である場合、CPU は停止したままデバイスはアイドルモードに移行するかアイドルモードに留まります。
• 割り込み要因に割り当てられている優先度が現在の CPU 優先度よりも高い場合、デバイスは復帰し、CPU は対応する割り込みベクタへジャンプします。ISR が完了すると、CPU はWAIT 命令の次の命令の実行を開始します。
アイドルモードから復帰する際は、IDLE ステータスビット (RCON<2>) がセットされます。スリープモードから復帰する際は、SLEEP ステータスビット (RCON<3>) がセットされます。
10.4.3.9 ウォッチドッグ タイマのタイムアウトによるスリープまたはアイドルモードからの復帰
スリープまたはアイドルモード中に WDT がタイムアウトすると、ノンマスカブル割り込み(NMI) が生成されます。NMI により、CPU のコード実行はデバイスリセット ベクタへジャンプします。CPU はリセットベクタを実行しますが、これはデバイスリセットではなく、周辺モジュールおよび大部分の CPU レジスタの状態は変化しません。
リセットハンドラは、NMI が発生したかどうかを確認するために、CPU ステータスをチェックします。NMI が発生した場合、NMI ハンドラが実行されます。
既定値の NMI ハンドラは NMI のステータス表示をクリアし、ERET 命令を実行します。これにより、プログラム実行は、デバイスを省電力モードへ移行させた WAIT 命令の次の命令から再開します。
WDT タイムアウトに起因する省電力モードからの復帰を検出するには、WDTO ビット(RCON<4>)、SLEEP ビット (RCON<3>)、IDLE ビット (RCON<2>) を確認するために、NMIハンドラを変更する必要があります。WDTO ビット (RCON<4>) が「1」であれば、そのイベントは WDT タイムアウトによって発生したという事がわかります。次に SLEEP おおび IDLEビットを確認する事により、WDT イベントがスリープまたはアイドルのどちらのモードで発生したのかを判定できます。
既定値の NMI ハンドラは、コンパイラと一緒に配布される起動コードに含まれています。起動コードの保存場所と変更方法の詳細については、コンパイラのマニュアルを参照してください。
Note 1: IDLE ステータスビット (RCON<2>) は、スリープモードから復帰する際にもセットされます。
2: 割り込み優先度が「0」に設定された周辺モジュールはデバイスを復帰させる事はできません。
3: CPU がコード実行を再開する前に、適用可能な全てのオシレータ起動遅延が適用されます。
Note: CPU がコード実行を再開する前に、適用可能な全てのオシレータ起動遅延が適用されます。
Note: 周辺モジュール割り込みと WDT イベントがほとんど同時に発生した場合、デバイスは周辺モジュール割り込みによって復帰するため、NMI は発生しません。予期せぬ WDT リセットを防ぐために、デバイスが復帰する際にハードウェアが自動的に WDT をクリアします。
© 2007-2015 Microchip Technology Inc. DS60001130H_JP--p.10-13
PIC32 ファミリ リファレンス マニュアル
WDT 動作の詳細は、デバイス データシートの「特殊な機能」とセクション「ウォッチドッグ/ デッドマン / パワーアップ タイマ」(DS60001114) を参照してください。
10.4.4 ドリームモード
ドリームモードでは、デバイスを一時的にスリープモードからアイドルモードへ移行させ、CPU を復帰させる事なく DMA トランザクションを実行できます。デバイスがスリープモード中であり、かつ DRMEN ビット (OSCCON<23>) がセットされている場合、ドリームモードがアクティブになります。
この場合、割り込みによってデバイスは復帰するか、あるいはアイドルモードに移行します。
割り込み優先度が CPU 優先度よりも低いと、デバイスはアイドルモードに移行します。アイドルモードにおいて、DMA トランザクションが保留中であれば、デバイスは DMA トランザクションを実行します。このトランザクションが終了するまで、デバイスはアイドルモードに留まります。トランザクションが終了すると、デバイスはスリープモードに戻ります。DMA トランザクションが保留中ではない場合、デバイスは即座にスリープモードに戻ります。
割り込み要因に割り当てられている優先度が現在の CPU 優先度よりも高い場合、デバイスは復帰し、CPU は対応する割り込みベクタへジャンプします。ISR が完了すると、CPU は WAIT命令の次の命令の実行を開始します。
10.4.5 周辺モジュールの選択的消費電力制御
スリープおよびアイドルモードでは、CPU クロックを低下または停止する事によって消費電力を大幅に低減できます。しかし、周辺モジュールには依然としてクロックを供給し続けるため、一定の電力を消費します。アプリケーションによっては、これらの省電力モードでは提供できない機能 (周辺モジュールが消費する電力を削減して限られた電力リソースをCPUに割り当てる機能 ) が必要となります。このような要求に応えるために、特定の PIC32 デバイスでは、個々の周辺モジュールを選択的に無効にする事により、周辺モジュールの消費電力を低減または排除できます。
10.4.5.1 周辺モジュールの無効化
PIC32 ファミリ アーキテクチャのほとんどの周辺モジュールは、選択的に無効にでき、全動作モードにおける消費電力を低減または実質的にゼロにできます。これには 2 種類の方法があり、それぞれの効果は多少異なります。
10.4.5.1.1 モジュール イネーブルビット(XXXEN)多くの周辺モジュールはモジュール イネーブルビットを備えています。これらはビット名
「XXXEN」を持ち、通常は各周辺モジュールの制御レジスタ ( 複雑なモジュールの場合はプライマリ制御レジスタ ) の bit 15 に配置されています。
ビット名の「XXX」はモジュール名のニーモニックです。例えば、SPI モジュールのイネーブルビットは「SPIEN」です。このビットは、全てのシリアル / パラレル通信モジュールとリアルタイム クロック (RTC) に備わっています。このビットをクリアすると、モジュールの動作は無効になります。ただし、モジュールには引き続きクロック信号が供給され、最小限の電流を消費します。
従来の全ての PIC® MCU デバイスと同様に、タイマも選択的な動作が可能です (bit 15 に配置されたタイマ専用の TON ビットで制御 )。また、A/D コンバータも従来と同様にイネーブルビット (ADON) を備えます。このビットの機能は XXXEN ビットと同じです。I/O ポートとそれらのポートに関連する機能 (状態変更通知 (ICN)や入力キャプチャ等 )の動作は他のモジュールに付随したものであるため、これらの機能には独自のモジュール イネーブルビットはありません。
このような方法で不要なモジュールを無効にする事により、アプリケーションの実行中にソフトウェア制御で選択的かつ動的に消費電力を調整できます。
10.4.5.1.2 周辺モジュール ディセーブル ビット(XXXPMD)各周辺モジュール (I/O ポートを除く ) は、そのモジュールの機能を無効にできる第 2 の制御ビットを備えています。これらのビットは周辺モジュール ディセーブル (PMD) ビットと呼ばれ、ビット名「XXXPMD」を持ちます ( 上記同様「XXX」はモジュールのニーモニック名 )。これらのビットは、PMDx 特殊機能レジスタ内に格納されています。モジュール イネーブルビットとは異なり、モジュールを無効にするには PMD ビットをセット (= 1) する必要があります。
DS60001130H_JP--p.10-14 © 2007-2015 Microchip Technology Inc.
省電力モード省
電力
モード
10
PMDLOCKビットはPMDの設定に対して不要な変更が行われるのを防ぐために使います。PMDの設定を変更するには、まず PMDLOCK (PMDCON<11>) ビットにゼロを書き込んでこのビットをクリアする必要があります。PMD ビットとモジュール イネーブルビットは、どちらも周辺モジュールの機能を無効にしますが、PMD ビットは周辺モジュールを完全にシャットダウンします ( 実質的に全回路の電源と全クロック源を遮断します )。この場合、SFR 空間に配置されたそのモジュールの制御レジスタとバッファレジスタに対する操作も一切できなくなります。つまり、PMD ビットを使ってモジュールを無効にすると、PMD ビットがクリアされるまで、その周辺モジュールは存在しないのと同様になります。これとは異なり、モジュール イネーブルビットを使って周辺モジュールを無効にした場合、そのモジュールの動作は無効になっても、モジュールの設定変更とバッファレジスタのプリロードは可能です。
PMD ビットは、ごくわずかの消費電力の違いであってもアプリケーションの機能性を左右するような、省電力性に対する要求が高いアプリケーションで大きく役立ちます。このような場合、アプリケーション本体を実行する前に PMD ビットをセットする事により、全く必要のない周辺モジュールを除外できます。
10.4.6 アイドルモードにおけるモジュールの選択的無効化
デバイスがアイドルモードに移行するたびに周辺モジュールを選択的に無効にする事により、さらなる省電力化が図れます。これを行うには、アイドル時停止 (SIDL) 制御ビットを使用します。通常このビットは、ほとんどの周辺モジュールの制御レジスタのビットポジション 13 にあります。このビットはビット名「XXXSIDL」を持ちます ( 上記同様に「XXX」はモジュール名のニーモニック )。アイドル時停止機能を使用すると、アイドルモード中の消費電力をさらに低減し、電力がきわめて貴重なアプリケーションの省電力を強化できます。
アイドル時停止ビットは、モジュール イネーブルビットを持たない入力キャプチャや出力コンペア等を含むほぼ全ての周辺モジュールで使えます。例外として、リアルタイム クロック モジュールにはアイドル時停止ビットはありません。なぜならば、アプリケーションでリアルタイム クロック モジュールを使う場合、モジュールを常時動作させる必要があるためです。
10.4.7 VREG からの電力管理
一部の PIC32 デバイスは、以下を含む複数のスリープモード動作時の低電力オプションを備えています。
• 高速復帰
• 低消費電力
• データ保持高速復帰
• データ保持低消費電力
VREGS (PWRCON<1>) ビットがクリアされると、デバイス内部のメイン電圧レギュレータが低電流消費および低電流出力機能モードになります。この出力電流低下により、VCAP の再充電とスリープモードからの復帰時間が長くなります。
別の内蔵電圧レギュレータをスリープモード中の電力管理に使います。このレギュレータは「低電圧レギュレータ」と呼ばれ、コアロジックとその他の回路に、通常より低い VCORE レベル (公称約 1.2 V) の電源を供給します。これらの回路を通常の最小 VCORE レベルよりも低い電圧で動作させる事により、消費電力を低減できます。スリープモードでは、このレギュレータを使ってデータ RAM 全体とその内容を保持します。これによりデバイスは省電力モード終了後、以前の状態に戻ってコード実行を再開できます。この低電圧レギュレータは RETEN ビット(PWRCON<0>) で制御します。スリープモード以外で低電圧レギュレータを使う事はできません。デバイスが通常動作モードまたはアイドルモードで動作している時に低電圧レギュレータを有効にしても、デバイスを VCORE よりも低い電圧で動作させる事はできません。
デバイスをスリープモードに移行させる前に VREGS または RETEN ビットをセット / クリアする事で、表 10-2 に示す 4 つのスリープモードのいずれかにデバイスを移行させる事ができます。
© 2007-2015 Microchip Technology Inc. DS60001130H_JP--p.10-15
PIC32 ファミリ リファレンス マニュアル
10.5 マイクロコントローラ クロック操作
一般的に、マイクロコントローラのクロックを遅くすると、クロック周波数にほぼ比例して消費電力が低下します。PIC32 では、アプリケーション制御により、幅広いクロック周波数を選択できます。システムクロックのコンフィグレーションがロックされていない場合、NOSCx コンフィグレーション ビットを変更するだけで、内部 RC オシレータによる低消費電力動作と水晶振動子による高速 / 高精度動作を切り換える事ができます。実質的に、最大 4 種類のオシレータをいつでも切り換える事ができるため、アプリケーション速度、周波数精度、消費電力を非常に柔軟に設定できます。クロックの変化に関する制限事項等の詳細は、デバイス データシートの「オシレータ コンフィグレーション」を参照してください。
10.5.1 LPRC オシレータ
低電力消費電力 RC (LPRC) オシレータは、実行モード中の低電力消費システム クロックとして使う事ができます。コンフィグレーション ビットを使ってデバイスの起動時に LPRC モードを選択する事も、動作中に動的に LPRC モードに切り換える事もできます。LPRC の詳しい使い方は、デバイス データシートの「オシレータ コンフィグレーション」とセクション 6.「オシレータ」を参照してください。
DS60001130H_JP--p.10-16 © 2007-2015 Microchip Technology Inc.
省電力モード省
電力
モード
10
10.6 XLP省電力モード
ここでは、超低消費電力 (XLP) デバイスが備える以下の省電力機能について説明します。
• ディープスリープ モード
• VBAT モード
図 10-1 に、XLP デバイスのシステム領域および関連する省電力機能のブロック図を示します。各種のブロックは、以下のコンフィグレーション ビットの設定と SFR により制御されます。
• DSBOREN (DEVCFG2<23>)• DSEN (DSCON<15>)• DSGPREN (DSCON<13>)• DSWDTEN (DEVCFG2<30>)• DSWDTOSC (DEVCFG2<29>)• RELEASE (DSCON<0>)• RTCCLKSEL (RTCCON <10:9>)• RTCDIS (DSCON<12>)• SLPEN (OSCCON<4>)• VREGS (RCON<8>)
図 10-1: XLPデバイスのブロック図
Low-PowerVREG RTCC
DSWDT
SOSCI
SOSCODSPOR
DSBOR
POR
BOR
MCLR
Monitors
VBAT
VDD
MCLR
DSBOREN
DSENVREGS Program Flash
Memory
Peripheral I/O
PeripheralsSRAMCPU
I/O Lock Logic
DSGPREN
DSWDTOSCDSWDTEN
Deep SleepPersistent GeneralPurpose Registers
DSGPR1-32
DSGPR0
RELEASEIdle/Sleep (SLPEN)
Regulators
Main VREG
Flash VREG
Timers
RTCDISRTCCLKSEL
LPRC
SOSC
© 2007-2015 Microchip Technology Inc. DS60001130H_JP--p.10-17
PIC32 ファミリ リファレンス マニュアル
10.6.1 ディープスリープ モード
ディープスリープ モードは、外部スイッチでデバイスの電源を遮断する事なくデバイスの消費電力を最小限に抑えます。
ディープスリープ モードには以下の 2 つのカテゴリが存在します。
• 標準ディープスリープこのモードでは、CPU RAMとほとんどの周辺モジュールへの電力供給が停止します。DSGPR0レジスタとRTCC、DSWDT、DSGPR1~DSGPR32レジスタの1つまたは複数への電力供給は維持されます。
• 超低消費電力ディープスリープこのモードではRTCC、DSWDT、DSGPR1~DSGPR32レジスタへの電力供給も停止します。その他は標準ディープスリープと同じです。
どちらのカテゴリがアクティブになるかは、ディープスリープ モードに移行する際の以下のレジスタビットの状態によって決まります。
• RTCDIS (DSCON<12>)ディープスリープ モード中にRTCCを無効にするには、このビットをセットする必要があります(レジスタ 10-1参照)。
• DSWDTEN (DEVCFG2<30>)ディープスリープ モード中にDSWDTレジスタを有効にするには、このコンフィグレーション ビットをセットする必要があります。このレジスタについては、デバイス データシートの「特殊機能」とセクション32.「コンフィグレーション」(DS60001124)を参照してください。
• DSGPREN (DSCON<13>)ディープスリープ モード中にDSGPR1~DSGPR32レジスタを有効にするには、このビットをセットする必要があります(レジスタ 10-1参照)。
ディープスリープ モードでは、上記の条件付きで有効になる周辺モジュールに加えて、MCLRフィルタと INT0 ピンが有効になります。
ディープスリープ モードを実装したデバイスは、ディープスリープ モード中の電圧とタイムアウト イベントを監視するために、ディープスリープ専用のブラウンアウト リセット(DSBOR) とウォッチドッグ タイマ リセット (DSWDT) を備えています。DSBOR と DSWDTは、他の動作モード ( 通常動作モード、アイドルモード、スリープモード ) で使う標準の BORおよび WDT とは独立した機能です。
ディープスリープ モードに移行すると、DSWAKE レジスタがクリアされます。動作中のリアルタイム クロック / カレンダ (RTCC) は、中断なく動作を続けます。
ディープスリープ モード中にリセット、RTCC アラーム、外部割り込み (INT0 または DSWDT)のいずれかによって復帰イベントが発生すると、デバイスはディープスリープ モードを終了し、パワーオン リセット (POR) を実行します。デバイスのリセットが完了すると、コード実行はデバイスのリセットベクタから再開します。
10.6.1.1 ディープスリープへの移行
ディープスリープ モードに移行する手順は以下の通りです。
• INT0 を有効にする (INT0 を復帰要因として使う場合 )• CPU 割り込みを無効にする
• DSEN ビット (DSCON<15>) をセットする
• DSEN ビットをセットしてから 1 ~ 3 命令サイクル以内に WAIT命令を実行する
Note: ディープスリープ モードをサポートしていないデバイスもあります。この機能が特定のデバイスでサポートされているかどうかは、デバイス データシートの「省電力機能」を参照してください。
DS60001130H_JP--p.10-18 © 2007-2015 Microchip Technology Inc.
省電力モード省
電力
モード
10
不用意なディープスリープ モードへの移行を防ぐために、ハードウェアは DSEN ビットを 5 命令サイクル後にクリアします。従って、ディープスリープ モードに移行するには、DSEN ビットをセットした後 1~ 3命令サイクル以内にWAIT命令を実行する必要があります。DSENビットがセットされていない時に WAIT 命令を実行すると、デバイスは通常のスリープモードに移行します。
10.6.1.2 復帰遅延
各オシレータモードでのディープスリープからの復帰に関連するリセット遅延を表 10-3 に示します。
ディープスリープ復帰時間 TDSWU は、最悪条件での復帰時間を表します。この時間は、完全な POR リセット時間 (TPOR と TRST を含む ) と、0 V まで放電された VCAP 上の 10 µF コンデンサを完全に充電するための時間を含みます。コンデンサが放電されていなければ、復帰時間は大幅に短くなります。
表 10-3: ディープスリープ モードからの復帰遅延時間
Note: VBAT モードへの電源移行中に不正な SFR への書き込みが発生する事を防ぐために、DSCON、DSWAKE、DSGPR0 レジスタを更新する際に CPU は特別な書き込み手順を要求します。この手順では、同じ SFR に同じデータを続けて 2 回書き込む必要があります。2 回の書き込みの間に別の書き込みが発生した場合、または2 回目の書き込みが電源障害のために完了しなかった場合、SFR は更新されません。この間に CPU は、SFR の更新に影響する事なく、SFR 以外 ( すなわち SRAM)への書き込みを実行できます。DSGPR1~ DSGPR32レジスタへの書き込みには、この連続書き込みシーケンスは不要です。
クロック源ディープスリープ
復帰遅延オシレータ遅延 Notes
EC TDSWU —ECPLL TDSWU TLOCK 1, 3XT, HS TDSWU TOST 1, 2XTPLL, HSPLL TDSWU TOST + TLOCK 1, 2, 3, 4SOSC ( スリープ中 OFF の場合 ) TDSWU TOST 1, 2
( スリープ中 ON の場合 ) TDSWU — 1FRC, FRCDIV TDSWU TFRC 1, 5LPRC ( スリープ中 OFF の場合 ) TDSWU TLPRC 1, 5
( スリープ中 ON の場合 ) TDSWU — 1FRCPLL TDSWU TFRC + TLOCK 1, 3, 5
Note 1: TDSWU = ディープスリープ復帰遅延
2: TOST = オシレータ起動タイマ ( オシレータ クロックをシステムに供給し始める前の 1024 オシレータ周期の遅延 )
3: TLOCK = PLL ロック時間
4: HSPLL モードは、PIC24F の最大動作周波数を越えます。
5: TFRC と TLPRC は RC オシレータの起動時間です。
Note: 最大動作周波数、TDSWU、TFSCM、TLOCK、オシレータ起動時間の仕様値については、データシートの「電気的特性」を参照してください。
© 2007-2015 Microchip Technology Inc. DS60001130H_JP--p.10-19
PIC32 ファミリ リファレンス マニュアル
10.6.1.3 ディープスリープからの復帰要因
デバイスをディープスリープ モードから復帰させる事ができるイベントはMCLR、BOR、POR、RTCC、INT0 I/O ピン割り込み、DSWDT です。デバイスは復帰後に POR を実行します。デバイスのリセットが完了すると、コード実行はデバイスのリセットベクタから始まります。一般的に、ディープスリープ モードからの復帰時にデバイスの状態は保持されません。ただし、RTCC を有効にしている場合、RTCC は復帰を通して動作を継続します。またディープスリープ モード中の DSGPR1 ~ DSGPR32 レジスタの動作を有効にしている場合は、これらのレジスタの内容も保持されます。
DS ビット (RCON<10>) を読み出す事により、復帰がディープスリープ モードの終了によって発生したのかどうかをソフトウェアで判定できます。このビットがセットされている場合、ディープスリープの終了によって POR が発生したという事を意味します。DS ビットは、ソフトウェアで手動クリアする必要があります。
DSWAKE レジスタ読み出す事により、ソフトウェアで復帰イベントの要因を判定できます。このレジスタは、ディープスリープ モードへの移行時に自動的にクリアされます。このためソフトウェアは、ディープスリープ モードから復帰した後、またはディープスリープ モードに再度移行する前に、このレジスタを読み出す必要があります。
10.6.1.3.1 ディープスリープ モードからの復帰時のクロック選択
プロセッサはFNOSCコンフィグレーション ビットで選択されている既定値のオシレータソースを使って再起動します。ディープスリープから復帰する際に、POR が内部的に発生するため、システムは POR 状態にリセットされます (RCON、DSCON、DSGPRx レジスタはリセットされません )。
10.6.1.4 DSGPRxレ ジスタによるコンテクスト データの保存
ディープスリープ モードの終了によって POR が発生するため、ほとんどの特殊機能レジスタはPOR 時の既定値にリセットされます。また、ディープスリープ モードではコア電源が供給されないため、モードの終了時にデータ RAM 内の情報は失われます。ディープスリープへ移行する前に重要なデータを保存する必要があるアプリケーションでは、DSGPRx レジスタまたはデータEEPROM ( 利用可能な場合 ) を使えます。ディープスリープ モード中に POR または DSBOR イベントが発生しない限り、DSGPR0 レジスタの内容は保持されます。DSGPR1 ~ DSGPR32 レジスタの内容が保持されるかどうかは、デバイスがディープスリープ モードに移行する時のDSGPREN ビット (DSCON<13>) の状態によって決まります。ディープスリープ モードを終了した後、ユーザ ソフトウェアで DSGPRx レジスタを読み出す事によりデータを復元できます。
10.6.1.5 ディープスリープ中の I/Oピ ン
汎用 I/O ピンはディープスリープ中も移行前の状態を維持します。
ディープスリープへ移行する前に入力として設定 (TRISx ビットをセット ) されていたピンは、ディープスリープ中にハイ インピーダンスを維持します。
ディープスリープへ移行する前に出力として設定 (TRISx ビットをクリア ) されたピンは、ディープスリープ中も出力ピンとして機能します。ディープスリープ モード中、これらの出力ピンは、このモードへ移行する際に対応するLATxビットで設定されていた出力レベルを駆動し続けます。
デバイスが復帰し、POR シーケンスが終了した後にアプリケーション コードの実行を再開した後も、全ての I/O ピンは以前の状態を保持します。ディープスリープ中に入力として設定されていたピンはハイ インピーダンスを維持し、出力として設定されていたピンは以前の値を引き続き駆動します。復帰後、TRISx レジスタと LATx レジスタはそれぞれの POR リセット値に戻されます。ファームウェアが TRISx および LATx レジスタの値を変更しても、対応する I/O ピンの状態は即座には変化しません。ファームウェアが RELEASE ビット (DSCON<0>) をクリアすると、I/O ピンがリリースされます。これにより、I/O ピンは、それぞれの TRISx および LATx ビット値が指定する状態に変化します。
ディープスリープ BOR (DSBOR) を有効にした場合、ディープスリープ中に DSBOR イベントが発生すると ( または VDD が VSS まで低下すると )、RELEASE ビットをクリアした場合と同様に I/O ピンが即座にリリースされます。
Note: たとえ I/O ピンがラッチされていても、ディープスリープ モードから復帰する際にCPU と全ての周辺モジュールはリセットされます。RELEASE ビットをクリアして以前の設定に戻す前に、CPU と周辺モジュールを再初期化する必要があります。
DS60001130H_JP--p.10-20 © 2007-2015 Microchip Technology Inc.
省電力モード省
電力
モード
10
ディープスリープ中に MCLR リセットイベントが発生した場合も、I/O ピンは自動的にリリースされますが、DSGPR0 レジスタの内容は保持され、DSGPR1 ~ DSGPR32 レジスタを有効にしていた場合は、それらのレジスタの内容も保持されます。
10.6.1.6 ディープスリープ ウォッチドッグ タイマ (DSWDT)ディープスリープ モードはポストスケーラ付きのディープスリープ専用ウォッチドッグ タイマ (DSWDT) を備えます。このポストスケーラにより 2.1 ms ~ 25.7 日のタイムアウトを設定できます ( コンフィグレーション ビット DSWDTPS<3:0> で設定 )。
DSWDT は、設定可能な基準クロック源も備えています (LPRC または SOSC を選択 )。この基準クロック源は DSWDTOSC コンフィグレーション ビットで設定します。
DSWDT は DSWDTEN コンフィグレーション ビットで有効にします。ディープスリープ モードに移行すると、DSWDT カウンタは自動的にリセットされます。
特定の状況では、ディープスリープ モードへの移行時に、DSWDT クロック源が無効になる可能性があります。このような場合でも、DSWDT が有効であれば、そのクロック源は自動的に有効になります ( ソフトウェアの介入は不要 )。ただし、これが原因で DSWDT カウンタの開始が遅れる可能性があります。SOSC をクロック源として使う場合、ディープスリープに移行する前にアプリケーションで SOSC を有効にする事により、この遅延を回避できます。
10.6.1.7 ディープスリープ低消費電力ブラウンアウト リセット
デバイスはディープスリープ モード専用の BOR (DSBOR) を備えています。DSBOR のトリップポイント レンジは 1.7 ~ 2.3 V ( 公称値 ) です。DSBOR は DSBOREN コンフィグレーション ビットで有効にします。本デバイスはディープスリープ モード中に DSBOR イベントを受信しても、ウェイクアップせずディープスリープ モードを維持します。有効な復帰イベントが発生してデバイスがディープスリープ モードを終了した時に、DSBOR ステータスビット(DSCON<1>) を読み出す事により、ディープスリープ モード中に DSBOR イベントが発生したかどうかをソフトウェアで判定できます。
ディープスリープ BOR(DSBOR) を有効にした場合、ディープスリープ中に DSBOR イベントが発生すると ( または VDD が VSS まで低下すると )、それ以前の状態を示す情報 (DSGPR0 レジスタと有効であった DSGPR1 ~ DSGPR32 レジスタの内容を含む ) は全て失われます。
10.6.1.8 ディープスリープ中の BORと DSBORディープスリープ モード中に VDD が VBOR よりも低下すると、ブラウンアウト リセット (BOR)とディープスリープ ブラウンアウト リセット (DSBOR)の両方がBORイベントを生成します。ディープスリープ中は常に BOR が有効です。ディープスリープ モード中の DSBOR は有効にも無効にもできます。VDD と VBOR の定義については、デバイス データシートの「電気的特性」を参照してください。
図 10-2: BORイベント
ディープスリープ モード中の BOR イベントに対する応答は、BOR と DSBOR で以下のように異なります。
• ディープスリープ モード中に BOR イベントが発生すると、デバイスは復帰し、BOR ビット(DSWAKE<6>) がセットされます。
• ディープスリープ モードに移行する以前に DSBOR を有効にしていた場合、BOR イベントが発生してもデバイスはディープスリープ モードに留まり、DSBOR ビット (DSCON<1>) がセットされます。DSBOR は、DSBOREN コンフィグレーション ビット (DEVCFG2<23>) をセットすると有効になります。
VDD
VBOR
VPOR
VSS
© 2007-2015 Microchip Technology Inc. DS60001130H_JP--p.10-21
PIC32 ファミリ リファレンス マニュアル
BOR イベントの発生は、2 つのステータスビットにより示されます。通常動作、アイドルモード、スリープモード中に BOR イベントが発生すると、BOR ビット (RCON<1>) がセットされます。ディープスリープ モード中に BOR イベントが発生すると、BOR ビット (DSWAKE<6>)がセットされます。ディープスリープ モード中に DSBOR イベントが発生した場合は、1 つのイベント ステータスビット (DSCON<1>) だけがセットされます。
10.6.1.9 RTCC周 辺モジュールとディープスリープ
RTCC はディープスリープ モード中も中断する事なく動作できます。アラームを設定する事により、RTCC を使ってデバイスをディープスリープから復帰させる事ができます。
RTCC のクロック源は、RTCOSC コンフィグレーション ビットで設定します。基準クロック源には LPRC と SOSC を使えます。LPRC を使う場合、RTCC の精度は LPRC の精度に直接影響を受けます。
10.6.1.10 代表的なディープスリープ シーケンス
ディープスリープ モードへの移行と終了に必要な手順を以下に要約します。
1. デバイスはリセット終了後にアプリケーション コードの実行を開始する
2. DSWDT 機能が必要な場合、適切なコンフィグレーション ビットを設定する
3. DSWDT と RTCC に対して適切なクロックを選択する ( 必須ではない )。4. DSWDT を有効にして設定する ( 必須ではない )5. RTCC を有効にして設定する ( 必須ではない )6. コンテクスト データを DSGPRx レジスタに書き込む ( 必須ではない )7. INT0 割り込みを有効にする ( 必須ではない )8. DSCON レジスタ内の DSEN ビットをセットする
9. WAIT 命令を実行してディープスリープ モードに移行する
10. 復帰イベントが発生すると、デバイスはディープスリープを終了する
11. DSEN ビットは自動的にクリアされる
12. RCON レジスタ内の DS ステータスビットと DSWAKE ステータスビットを読み出した後にクリアする
13. DSGPRx レジスタを読み出す ( 必須ではない )14. CPU と周辺モジュールを再設定する ( 必須ではない )15. 設定に関連する全ての状態が完全になったら RELEASE ビットをクリアする
16. アプリケーションは通常の動作を再開する
10.6.2 VBAT モード
VBAT モードはディープスリープ モードに似ていますが、VBAT ピンからデバイスに電力を供給するという点で異なります。VBAT モードは完全にハードウェアにより制御され、ソフトウェアは一切介入しません。VDD が VPOR よりも低下すると VBAT モードに移行します。VDD と VPORの定義については、デバイス データシートの「電気的特性」を参照してください。VDD ピンへの電力供給が停止して VBAT モードへの移行が発生する前に、外部電源を VBAT ピンに接続しておく必要があります。VBAT モードは、RTCC の動作を維持できる最低消費電力のバッテリ駆動モードです。VDD に電力が供給されている場合にのみ VBAT モードから復帰できます。この復帰は、デバイスの他の部分からは POR のように見えます。
VBAT モードでは、ディープスリープ ウォッチドッグ タイマは無効になります。RTCC とDSGPR1 ~ DSGPR32 レジスタは、それぞれ RTCDIS (DSCON<12>) ビットと DSGPREN(DSCON<13>) ビットの設定により有効または無効にできます。ディープスリープ時データ保持汎用レジスタ 0 (DSGPR0) は、VBAT モード中も常に有効です。
10.6.2.1 他のモードからの VBATモ ードへの移行
VBAT ピンに外部電源 ( バッテリ ) を接続すると、デバイスは VBAT モードに移行できるようになります。デバイスの VBAT ピンに電力が供給されていれば、VDD I/O 電源が切れた時にディープスリープ ロジックは VBAT 電源に切り換わります。VBAT モードには、ディープスリープ以外の全ての動作モード ( 通常動作、アイドル、スリープ、ディープスリープ ) からも移行できます。
DS60001130H_JP--p.10-22 © 2007-2015 Microchip Technology Inc.
省電力モード省
電力
モード
10
10.6.2.2 VBATモ ードからの復帰
VDD 電源が回復すると、デバイスは自動的に VBAT モードから復帰します。この時、デバイスは POR を実行し、リセットベクタからコード実行を始めます。RTCC が有効であった場合、RTCC は動作を続けます。復帰の動作タイミングは、通常のパワーオンリセット (POR) と同様です。
VBAT ビット (RCON<16>) の状態を確認する事により、デバイスが VBAT モードから復帰したのかどうかを判定できます。デバイスが復帰してリセットベクタからコード実行を開始した時にこのビットがセットされていれば、デバイスは VBAT モードから復帰した事を意味します。次回の VBAT からの復帰イベントに備えて、このビットをユーザ ソフトウェアでクリアしておく必要があります。
VBAT ピンに電源を接続していない状態で POR が発生した場合、またはバッテリの消耗等によって VBAT モード中に VBAT 電圧が DSGPR0 レジスタの動作に必要なレベルよりも低下した場合、VBPOR ビット (RCON<17>) がセットされます。POR 時にこのビットがセットされていれば、VBAT ピンにバッテリを接続する必要がある事を意味します。
VBAT ピンに電力が供給されていても、マイクロコントローラへの電源投入時には VBPOR ビットがセットされます。これをクリアすると、VBAT モード中に POR が発生した時に再びセットされます。
10.6.2.3 VBAT BORVBAT モードをサポートするデバイスは、VBAT 電源電圧を監視するために専用の VBAT BOR を備えています。VBAT BOR は、VBATBOREN ビット (DEVCFG<21>) をセットすると有効になります。VBAT モード中の BOR イベントは POR をトリガします。VBAT モード中の POR イベントは VBPOR ビット (RCON<17>) をセットします。
10.6.2.4 DSGPRxレ ジスタによるコンテクスト データの保存
VBAT モードの終了時に POR が発生するため、ほとんどの SFR は POR 時の既定値にリセットされます。また、VBAT モードではコア電源が供給されないため、復帰時にデータ RAM 内の情報は失われます。アプリケーションが重要データの保持を必要とする場合、DSGPRx レジスタまたは外部の EEPROM にそれらのデータを保存できます。
設定したレベルよりも VDD が低下した時にノンマスカブル割り込み (NMI) を生成するために、プログラマブル低電圧検出 (PLVD) モジュールを使います。この割り込みへの対応として、通常はデータを DSGPRx レジスタに保存します。
全部で 33 個のディープスリープ時データ保持汎用レジスタを使えます。DSGPR0 レジスタには、ディープスリープおよび VBAT モード中も常に電力が供給されます。DSGPR1 ~ DSGPR32レジスタは、ディープスリープおよび VBAT モード中に有効にする事も無効にする事もできます。
10.6.2.5 VBATモ ード中の I/Oピ ン
I/O ピンの状態は、VBAT モード中に保持されません。全ての I/O ピンは VSS レベルである事が必要です。デバイスが VBAT モード中である時は、どの I/O ピンにも VDD を印加しないでください。ただし、セカンダリオシレータを RTCC クロック源として使う場合、例外として SOSCIおよび SOSCO ピンだけは状態を維持します。VDD が再び供給された時に、ユーザは、各 I/Oピンを適正な状態に復元するために、TRISx および LATx ビットを設定する必要があります。
Note: DSGPR0 レジスタに保存するデータは、2 回書き込む必要があります。2 回の書き込み動作を連続して実行する必要はありませんが、連続して書き込む事を推奨します。DSGPR1 ~ DSGPR32 にデータを書き込む場合は、1 回の書き込みだけで済みます。
Note: VBAT モードを使わない場合、VBAT ピンを VDD に接続する事を推奨します。Vbatモードを使う場合も使わない場合も常に VBAT ピンとグランドの間を 0.1 μF のコンデンサで接続する事を推奨します。このコンデンサは、VBAT ピンのなるべく近くに配置してください。
© 2007-2015 Microchip Technology Inc. DS60001130H_JP--p.10-23
PIC32 ファミリ リファレンス マニュアル
10.7 関連アプリケーション ノート
本書に関連するアプリケーション ノートの一覧を以下に記載します。一部のアプリケーションノートは PIC32 デバイスファミリ向けではありません。ただし概念は共通しており、変更が必要であったり制限事項が存在するものの利用が可能です。省電力モードに関連する最新のアプリケーション ノートは以下の通りです。
タイトル アプリケーション ノート番号
現在、関連するアプリケーション ノートはありません。
Note: PIC32 デバイスファミリ関連アプリケーション ノートとサンプルコードはMicrochip 社のウェブサイト (www.microchip.com) をご覧ください。
DS60001130H_JP--p.10-24 © 2007-2015 Microchip Technology Inc.
省電力モード省
電力
モード
10
10.8 改訂履歴
リビジョン A (2007 年 10 月 )本書の初版
リビジョン B (2007 年 10 月 )機密扱いのステータスを解除して内容を更新
リビジョン C (2008 年 4 月 )ステータスを「Preliminary」に変更、U-0 を r-x に変更
リビジョン D (2008 年 7 月 )例 10-1、例 10-3、表 10-1、レジスタ 10-5、レジスタ 10-9、10.3.2 の第 2 段落を変更、予約ビットは「Maintain as」から「Write」に変更、ON ビット (WDTCON レジスタ ) に Note を追加
リビジョン E (2008 年 7 月 )例 10-2 と例 10-3 を変更
リビジョン F (2011 年 8 月 )このリビジョンでの変更内容は以下の通りです。
• 例 :- 例 10-2 を更新
- 例 10-2: 「PBCLK 分周比の変更」を削除
- 例 10-1 を更新
• Notes:- セクション 10.4「省電力モードの動作」の第 1 段落の Note を削除
- セクション 10.4.3「スリープモード」のフリーズモードに関する Note を削除
- セクション 10.4.3.8「周辺モジュール割り込みによるスリープまたはアイドルモードからの復帰」に Note 1 を追加
• レジスタ :- レジスタ 10-1 ~ 10-12 を削除
• 項目 :- セクション 10.3「P 省電力モード制御レジスタ」を更新
- セクション 10.4.3「スリープモード」内のスリープモードの特徴を更新
- セクション 10.4.3.1「スリープモード時のオシレータのシャットダウン」を更新
- セクション 10.7「リセット」を削除
- セクション 10.8「設計のヒント」を削除を削除
• 表 :-「表 10-1: 省電力モード関連 SFR の要約」を削除
•「PIC32MX」を全て「PIC32」に更新
• 本書の「Preliminary」ステータスを解除
• 表現と体裁の変更等、本書全体の細部を修正
リビジョン G (2012 年 5 月 )次の新しい省電力モードのサポートに関連して大幅に更新 : ドリーム、ディープスリープ、VBAT既存の内容を再構成し、本書全体に新しい内容を追加
リビジョン H (2015 年 3 月 )セクション 10.4.5「周辺モジュールの選択的消費電力制御」、セクション 10.4.6「アイドルモードにおけるモジュールの選択的無効化」、セクション 10.4.7「VREG からの電力管理」を追加表現と体裁の変更等、本書全体の細部を修正
© 2007-2015 Microchip Technology Inc. DS60001130H_JP--p.10-25
Microchip社製デバイスのコード保護機能に関して以下の点にご注意ください。
• Microchip社製品は、該当するMicrochip社データシートに記載の仕様を満たしています。
• Microchip社では、通常の条件ならびに仕様に従って使用した場合、Microchip社製品のセキュリティ レベルは、現在市場に
流通している同種製品の中でも最も高度であると考えています。
• しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解では、こうした手法
はMicrochip社データシートにある動作仕様書以外の方法でMicrochip社製品を使用する事になります。このような行為は知
的所有権の侵害に該当する可能性が非常に高いと言えます。
• Microchip社は、コードの保全性に懸念を抱くお客様と連携し、対応策に取り組んでいきます。
• Microchip社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コード保
護機能とは、Microchip社が製品を「解読不能」として保証するものではありません。
コード保護機能は常に進歩しています。Microchip社では、常に製品のコード保護機能の改善に取り組んでいます。Microchip社の
コード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはその他の著作
物に不正なアクセスを受けた場合、デジタル ミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利があります。
本書に記載されているデバイス アプリケーション等に関する
情報は、ユーザの便宜のためにのみ提供されているものであ
り、更新によって無効とされる事があります。お客様のアプ
リケーションが仕様を満たす事を保証する責任は、お客様に
あります。Microchip 社は、明示的、暗黙的、書面、口頭、法
定のいずれであるかを問わず、本書に記載されている情報に
関して、状態、品質、性能、商品性、特定目的への適合性を
はじめとする、いかなる類の表明も保証も行いません。
Microchip 社は、本書の情報およびその使用に起因する一切の
責任を否認します。Microchip 社の明示的な書面による承認な
しに、生命維持装置あるいは生命安全用途に Microchip 社の製
品を使用する事は全て購入者のリスクとし、また購入者はこ
れによって発生したあらゆる損害、クレーム、訴訟、費用に
関して、Microchip 社は擁護され、免責され、損害をうけない
事に同意するものとします。暗黙的あるいは明示的を問わず、
Microchip社が知的財産権を保有しているライセンスは一切譲
渡されません。
© 2007-2015 Microchip Technology Inc.
QUALITY MANAGEMENT SYSTEM CERTIFIED BY DNV
== ISO/TS 16949 ==
商標
Microchip 社の名称とロゴ、Microchip ロゴ、dsPIC、
FlashFlex、flexPWR、JukeBlox、KEELOQ、KEELOQ ロゴ、
Kleer、LANCheck、MediaLB、MOST、MOST ロゴ、
MPLAB、OptoLyzer、PIC、PICSTART、PIC32 ロゴ、
RightTouch、SpyNIC、SST、SST ロゴ、SuperFlash、UNI/Oは米国およびその他の国における Microchip Technology Incorporated の登録商標です。
Embedded Control Solutions Company および mTouch は米国
における Microchip Technology Incorporated の登録商標です。
Analog-for-the-Digital Age、BodyCom、chipKIT、chipKIT logo、CodeGuard、dsPICDEM、dsPICDEM.net、ECAN、
In-Circuit Serial Programming、ICSP、Inter-Chip Connectivity、KleerNet、KleerNet logo、MiWi、MPASM、
MPF、MPLAB Certified logo、MPLIB、MPLINK、MultiTRAK、NetDetach、Omniscient Code Generation、PICDEM、PICDEM.net、PICkit、PICtail、RightTouch logo、REAL ICE、SQI, Serial Quad I/O、Total Endurance、TSHARC、USBCheck、VariSense、ViewSpan、WiperLock、Wireless DNA、ZENA は米国およびその他の Microchip Technology Incorporated の商標です。
SQTP は米国における Microchip Technology Incorporated の
サービスマークです。
Silicon Storage Technology は、その他の国における
Microchip Technology Inc. の登録商標です。
GestIC と ULPP はその他の国における Microchip Technology Inc. の子会社である Microchip Technology Germany II GmbH & Co. & KG の登録商標です。
その他本書に記載されている商標は各社に帰属します。
© 2007-2015, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved.
ISBN: 978-1-5224-1182-6
Microchip社では、ChandlerおよびTempe (アリゾナ州)、Gresham
DS60001130H-page 10-27
(オレゴン州)の本部、設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザイン センターがISO/TS-16949:2009認証を取得しています。Microchip社の品質システム プロセスおよび手順は、PIC® MCUおよびdsPIC® DSC、KEELOQ® コードホッピング デバイス、シリアルEEPROM、マイクロペリフェラル、不揮発性メモリ、アナログ製品に採用されています。さらに、開発システムの設計と製造に関するMicrochip社の品質システムはISO 9001:2000認証を取得しています。
DS60001130H-page 28 © 2007-2015 Microchip Technology Inc.
南北アメリカ本社2355 West Chandler Blvd.Chandler, AZ 85224-6199Tel: 480-792 -7200 Fax: 480-792-7277技術サポート: http://www.microchip.com/supportURL: www.microchip.com
アトランタDuluth, GA Tel: 678-957-9614 Fax: 678-957-1455
オースティン、TXTel: 512-257-3370
ボストンWestborough, MA Tel: 774-760-0087 Fax: 774-760-0088
シカゴ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
ヒューストン、TX Tel: 281-894-5983
インディアナポリスNoblesville, IN Tel: 317-773-8323Fax: 317-773-5453
ロサンゼルスMission Viejo, CA Tel: 949-462-9523 Fax: 949-462-9608
ニューヨーク、NY Tel: 631-435-6000
サンノゼ、CA Tel: 408-735-9110
カナダ - トロントTel: 905-673-0699 Fax: 905-673-6509
アジア太平洋
アジア太平洋支社Suites 3707-14, 37th FloorTower 6, The GatewayHarbour City, KowloonHong KongTel: 852-2943-5100Fax: 852-2401-3431オーストラリア - シドニーTel: 61-2-9868-6733Fax: 61-2-9868-6755
中国 - 北京Tel: 86-10-8569-7000 Fax: 86-10-8528-2104
中国 - 成都
Tel: 86-28-8665-5511Fax: 86-28-8665-7889
中国 - 重慶
Tel: 86-23-8980-9588Fax: 86-23-8980-9500
中国 - 東莞
Tel: 86-769-8702-9880
中国 - 杭州
Tel: 86-571-8792-8115 Fax: 86-571-8792-8116
中国 - 香港SARTel: 852-2943-5100 Fax: 852-2401-3431
中国 - 南京
Tel: 86-25-8473-2460Fax: 86-25-8473-2470
中国 - 青島
Tel: 86-532-8502-7355Fax: 86-532-8502-7205
中国 - 上海Tel: 86-21-5407-5533 Fax: 86-21-5407-5066
中国 - 瀋陽
Tel: 86-24-2334-2829Fax: 86-24-2334-2393
中国 - 深圳
Tel: 86-755-8864-2200 Fax: 86-755-8203-1760
中国 - 武漢
Tel: 86-27-5980-5300Fax: 86-27-5980-5118
中国 - 西安
Tel: 86-29-8833-7252Fax: 86-29-8833-7256
アジア太平洋
中国 - 厦門
Tel: 86-592-2388138 Fax: 86-592-2388130
中国 - 珠海
Tel: 86-756-3210040 Fax: 86-756-3210049
インド - バンガロールTel: 91-80-3090-4444 Fax: 91-80-3090-4123
インド - ニューデリー
Tel: 91-11-4160-8631Fax: 91-11-4160-8632
インド - プネ
Tel: 91-20-3019-1500
日本 - 大阪
Tel: 81-6-6152-7160 Fax: 81-6-6152-9310
日本 - 東京
Tel: 81-3-6880- 3770 Fax: 81-3-6880-3771
韓国 - 大邱Tel: 82-53-744-4301Fax: 82-53-744-4302
韓国 - ソウルTel: 82-2-554-7200Fax: 82-2-558-5932または 82-2-558-5934
マレーシア - クアラルンプール
Tel: 60-3-6201-9857Fax: 60-3-6201-9859
マレーシア - ペナン
Tel: 60-4-227-8870Fax: 60-4-227-4068
フィリピン - マニラ
Tel: 63-2-634-9065Fax: 63-2-634-9069
シンガポールTel: 65-6334-8870Fax: 65-6334-8850
台湾 - 新竹
Tel: 886-3-5778-366Fax: 886-3-5770-955
台湾 - 高雄Tel: 886-7-213-7828
台湾 - 台北Tel: 886-2-2508-8600 Fax: 886-2-2508-0102
タイ - バンコク
Tel: 66-2-694-1351Fax: 66-2-694-1350
ヨーロッパ
オーストリア - ヴェルス
Tel: 43-7242-2244-39Fax: 43-7242-2244-393デンマーク - コペンハーゲンTel: 45-4450-2828 Fax: 45-4485-2829
フランス - パリTel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79
ドイツ - デュッセルドルフTel: 49-2129-3766400
ドイツ - ミュンヘン
Tel: 49-89-627-144-0 Fax: 49-89-627-144-44
ドイツ - プフォルツハイムTel: 49-7231-424750
イタリア - ミラノ Tel: 39-0331-742611 Fax: 39-0331-466781
イタリア - ヴェニスTel: 39-049-7625286
オランダ - ドリューネン
Tel: 31-416-690399 Fax: 31-416-690340
ポーランド - ワルシャワ
Tel: 48-22-3325737
スペイン - マドリッドTel: 34-91-708-08-90Fax: 34-91-708-08-91
スウェーデン - ストックホルム
Tel: 46-8-5090-4654
イギリス - ウォーキンガム
Tel: 44-118-921-5800Fax: 44-118-921-5820
各国の営業所とサービス
2015/01/27