注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います セクション 9. ウォッチドッグタイマ (WDT) ハイライト 本セクションには以下の主要項目を記載しています 9.1 はじめに... 9-2 9.2 WDT の動作... 9-3 9.3 レジスタマップ... 9-7 9.4 設計のヒント... 9-8 9.5 関連アプリケーションノート... 9-9 9.6 改訂履歴... 9-10 9 ウォッチドッグタイマ (WDT) 2007-2011 Microchip Technology Inc. DS39697B_JP - p. 9-1
PIC24F ファミリリファレンスマニュアル Note: 本セクションは デバイスデータシートの内容の補足を目的としています 本セクションの内容は PIC24Fファミリの一部のデバイスには対応していません 本書の内容がお客様のご使用になるデバイスに対応しているかどうかは 各デバイスの最新のデータシートで ウォッチドッグタイマ (WDT) の冒頭に記載されている注意書きを参照してください デバイスデータシートとファミリリファレンスマニュアルの各セクションは マイクロチップ社の以下のウェブサイトからダウンロードできます http://www.microchip.com 9.1 はじめに ウォッチドッグタイマ (WDT) の主な機能は ソフトウェアの動作に異常が発生した場合にマイクロコントローラをリセットする事です ソフトウェアが WDT をクリアしないとデバイスをリセットします WDT はスリープまたはアイドルモードからのデバイスの復帰にも使用できます WDT は低消費電力 RC オシレータを使うフリーランタイマで 外付け部品は不要です 従って 通常の動作中にシステムの主クロック源 ( 水晶振動子等 ) がスリープモード等で停止しても WDT は動作を継続します 図 9-1 に WDT のブロック図を示します 図 9-1: WDT のブロック図 SWDTEN FWDTEN LPRC Control Wake from Sleep WDTPRE WDTPOST<3:0> LPRC Input 31 khz Prescaler WDT Postscaler (5-bit/7-bit) Counter 1:1 to 1:32.768 1 ms/4 ms WDT Overflow Reset All Device Resets Transition to New Clock Source Exit Sleep or Idle Mode CLRWDT PWRSAV Sleep or Idle Mode DS39697B_JP - p. 9-2 2007-2011 Microchip Technology Inc.
セクション 9. ウォッチドッグタイマ (WDT) 9.2 WDT の動作 WDT を有効にすると オーバーフローまたは タイムアウト になるまで WDT がインクリメントします スリープまたはアイドルモード中を除き WDT がタイムアウトになるとデバイスはリセットされます WDT タイムアウトリセットを防ぐには PWRSAV または CLRWDT 命令を使って WDT を周期的にクリアする必要があります スリープまたはアイドルモード中に WDT タイムアウトが発生するとデバイスは復帰し PWRSAV 命令実行直後の位置からコード実行を再開します いずれの場合も WDTO ビット (RCON<4>) がセットされるため デバイスのリセットまたは復帰イベントが WDT タイムアウトによって発生した事が分かります WDT によって CPU がスリープまたはアイドルモードから復帰した場合 SLEEP ステータスビット (RCON<3>) または IDLE ステータスビット (RCON<2>) もセットされ デバイスがそれまで省電力モードであった事を表します Note: RCON レジスタのビットの詳細は 各デバイスのデータシートを参照してください 9.2.1 WDT の有効化と無効化 WDT の有効 / 無効は FWDTEN (CW1<7>) コンフィグレーションビットで設定します FWDTEN コンフィグレーションビットをセットすると WDT が有効になります デバイスを消去した場合の既定値は セット状態です フラッシュコンフィグレーションワードレジスタの詳細は 各デバイスのデータシートを参照してください 9.2.2 ソフトウェア制御による WDT FWDTEN コンフィグレーションビットがセットの場合 WDT は常時有効です しかし FWDTEN コンフィグレーションビットが 0 の場合でも ユーザソフトウェアから WDT を制御できます SWDTEN 制御ビット (RCON<5>) をセットすると ソフトウェアから WDT を有効にできます SWDTEN 制御ビットは 全てのデバイスリセットでクリアされます ソフトウェア WDT を使うと ユーザアプリケーションで重要なコードセグメントでは WDT を有効化し 重要でないセグメントでは WDT を無効化する事で 消費電力を最小限に抑える事ができます 9.2.3 WDT ウィンドウ ウォッチドッグタイマにはオプションのウィンドウモードがあり WINDIS コンフィグレーションビット (CW1<6>) に 0 を書き込むとこのモードが有効になります ウィンドウモードでは WDT 周期の許容ウィンドウ幅以内で CLRWDT 命令を実行する必要があります このウィンドウの外で CLRWDT 命令が実行された場合 WDT タイムアウト時と同様に WDT リセットが発生します 9 Note: デバイスによっては WDT ウィンドウ選択ビット (WDTWIN<1:0>) が用意されているものもあります 表 9-1 に WDTWIN<1:0> ビットがあるデバイスとないデバイスの全てのウィンドウオプション一覧を示します 表 9-1: WDT のウィンドウモードを使用するには WDT を有効 (FWDTEN = 1) にしておく必要があります ウィンドウビットのオプション WDTWIN<1:0> 許容ウィンドウ幅 このビットを実装していないデバイス 25% 11 25% 10 37.50% 01 50% 00 75% ウォッチドッグタイマ (WDT) 2007-2011 Microchip Technology Inc. DS39697B_JP - p. 9-3
PIC24F ファミリリファレンスマニュアル 図 9-2: ウィンドウモードの WDT: WDTWIN<1:0> = 11 または WDTWIN<1:0> ビットが実装されていないデバイスの場合 Watchdog Time-out (WDTO) Period (TWTO) Disallowed Window Allowed Window (0.25 x TWTO) 図 9-3: ウィンドウモードの WDT: WDTWIN<1:0> = 10 の場合 Watchdog Time-out (WDTO) Period (TWTO) Disallowed Window Allowed Window (0.375 x TWTO) 図 9-4: ウィンドウモードの WDT: WDTWIN<1:0> = 01 の場合 Watchdog Time-out (WDTO) Period (TWTO) Disallowed Window Allowed Window (0.5 x TWTO) 図 9-5: ウィンドウモードの WDT: WDTWIN<1:0> = 00 の場合 Watchdog Time-out (WDTO) Period (TWTO) Disallowed Window Allowed Window (0.75 x TWTO) DS39697B_JP - p. 9-4 2007-2011 Microchip Technology Inc.
セクション 9. ウォッチドッグタイマ (WDT) 9.2.4 WDT プリスケーラとタイマ周期 WDT のクロック源には 公称周波数 31 khz の LPRC オシレータを使用します この周波数を 5 ビット (32 分周 ) または 7 ビット (128 分周 ) に設定可能なプリスケーラに供給します プリスケーラの設定は FWPSA コンフィグレーションビット (CW1<4>) で行います 31 khz 入力でプリスケーラから出力される WDT の公称タイムアウト周期 (TWDT) は WDTPRE クリア時で 1 ms セット時で 4 ms です この WDT プリスケーラからの出力を可変ポストスケーラで分周する事により さらに幅広いタイムアウト周期が得られます ポストスケーラは WDTPPOST<3:0> コンフィグレーションビット (CW1<3:0>) で設定します 1:1 から 1:32,768 まで合計 16 の設定が可能です WDTPOST ビットは デバイスのプログラミング時に最初に設定します プリスケーラとポストスケーラの組み合わせにより 1 ms ~ 131 s ( 公称 ) のタイムアウト周期が得られます WDT タイムアウト値は 式 9-1 により求まります 表 9-2 に 全てのプリスケーラ値と 対応する WDT タイムアウト周期の一覧を示します 式 9-1: WDT タイムアウト周期 WDT 周期 (ms) = プリスケーラ係数 x ポストスケーラ係数 プリスケーラ係数 = 1 (WDTPRE = 0 の時 ) 4 (WDTPRE = 1 の時 ) ポストスケーラ係数 =1/ ポストスケーラ比 表 9-2: WDT のコンフィグレーションとタイムアウト周期 ポストスケーラ設定 (WDTPS3:WDTPS0) ポストスケーラ比 (1/ ポストスケーラ係数 ) 5 ビットプリスケーラ (FWPSA = 0) タイムアウト周期 7 ビットプリスケーラ (FWPSA = 1) 0000 1:1 1 ms 4 ms 0001 1:2 2 ms 8 ms 0010 1:4 4 ms 16 ms 0011 1:8 8 ms 32 ms 0100 1:16 16 ms 64 ms 0101 1:32 32 ms 128 ms 0110 1:64 64 ms 256 ms 0111 1:128 128 ms 512 ms 1000 1:256 256 ms 1.024 s 1001 1:512 512 ms 2.048 s 1010 1:1024 1.024 s 4.096 s 1011 1:2048 2.048 s 8.192 s 1100 1:4096 4.096 s 16.384 s 1101 1:8192 8.192 s 32.768 s 1110 1:16384 16.384 s 65.536 s 1111 1:32768 32.768 s 131.072 s 9 ウォッチドッグタイマ (WDT) Note: WDT タイムアウト周期は LPRC オシレータの周波数に直接関係します また LPRC オシレータの周波数はデバイスの動作電圧と温度によって変化します LPRC のクロック周波数の仕様は 各 PIC24F のデータシートを参照してください 2007-2011 Microchip Technology Inc. DS39697B_JP - p. 9-5
PIC24F ファミリリファレンスマニュアル 9.2.5 ウォッチドッグタイマのリセット WDT カウンタと 対応するプリスケーラとポストスケーラは 以下の場合にリセットされます 全てのデバイスリセット時 PWRSAV 命令の実行時 ( スリープ / アイドルモードへの移行時 ) WDTをソフトウェアで有効にした場合 ソフトウェアによるクロック切り換え (NOSC ビット変更後に OSWEN ビットをセット ) またはハードウェアによるクロック切り換え ( フェイルセーフクロックモニタ ) の完了時 通常の実行時 または WINDIS が 0 の場合は WDT タイムアウト周期中の許容ウィンドウ内 (WDTWIN の設定により異なる ) で CLRWDT 命令を実行した場合 9.2.6 スリープおよびアイドルモード時のウォッチドッグタイマの動作 WDT が有効の場合 スリープ / アイドルモード中でも WDT は動作を継続します WDT タイムアウトが発生するとデバイスが復帰し スリープ / アイドル移行直前の次の命令からコード実行を再開します WDT を使用すると デバイスをスリープモードから周期的に復帰させシステムのステータスをチェックして必要な動作を実行できるため 消費電力を抑えたシステム設計に便利です こうした用途では SWDTEN ビットが非常に便利です 通常動作中に WDT を無効 (FWDTEN = 0) にしている場合 スリープモードに移行する直前に SWDTEN ビット (RCON<5>) で WDT を有効にできます DS39697B_JP - p. 9-6 2007-2011 Microchip Technology Inc.
2007-2011 Microchip Technology Inc. DS39697B_JP - p. 9-7 9.3 レジスタマップ 表 9-3 に PIC24F のウォッチドッグタイマ (WDT) モジュールに関連する特殊機能レジスタのまとめを示します 表 9-3: ウォッチドッグタイマに関連する特殊機能レジスタマップ SFR 名 Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 全リセット RCON TRAPR IOPUWR CM VREGS EXTR SWR SWDTEN WDTO SLEEP IDLE BOR POR xxxx (1) 凡例 : x = リセット時の値は不定です = 未実装ビットであり 0 として読み出されます リセット時の値を 16 進数で表示しています Note 1: RCON レジスタのリセット値はリセットタイプで決まります RCON レジスタのビットの詳細は 各デバイスのデータシートを参照してください セクション 9. ウォッチドッグタイマ (WDT) ウォッチドッグタイマ (WDT) 9
PIC24F ファミリリファレンスマニュアル 9.4 設計のヒント 質問 1: 回答 : 質問 2: 回答 : メインソフトウェアループに CLRWDT 命令を挿入したのにデバイスがリセットされるのはなぜでしょうか その命令を含むソフトウェアループが WDT の代表値ではなく仕様最小値を満たしている事を確認してください また 割り込み処理時間を考慮しているかを確認してください アプリケーションで WDT を使う良い方法を教えて下さい WDT を使ってアプリケーションの無限ループまたは暴走を防ぐ手法は数多くあります これらの手法を注意深く分析すると ほとんどが以下の 3 つの基本原則に従っています 1. アプリケーションで使用する CLRWDT 命令は 1 つだけにします アプリケーションで複数の CLRWDT 命令を使うと タイムアウトに関するトラブルシュートがより難しくなります 2. CLRWDT 命令はアプリケーションのメインルーチンに置き サブルーチンまたは割り込みサービスルーチン (ISR) 内には置かないようにします この命令を頻繁に呼び出されるルーチン内に置くと WDT が絶えずリセットされ タイムアウトが発生しない可能性があります 3. アプリケーションのコンパイルとメモリ配置確定が完了したら プログラムメモリの未使用領域全体に無条件分岐命令 ( GOTO. 等 ) を置きます 万一 未使用のコード領域に分岐してコードが 暴走 するような事があっても GOTO 命令によってマイクロコントローラはコード実行を再開し WDT によってアプリケーション実行を正しく制御する事ができます DS39697B_JP - p. 9-8 2007-2011 Microchip Technology Inc.
セクション 9. ウォッチドッグタイマ (WDT) 9.5 関連アプリケーションノート 本セクションに関連するアプリケーションノートの一覧を以下に示します 一部のアプリケーションノートは PIC24F ファミリ向けではありません ただし 概念は共通しており 変更が必要であったり制限事項が存在するものの利用が可能です ウォッチドッグタイマ (WDT) モジュールに関連する最新のアプリケーションノートは以下の通りです タイトル アプリケーションノート番号 Low-Power Design using PICmicro Microcontrollers AN606 Note: PIC24F ファミリ関連のアプリケーションノートとサンプルコードは弊社ウェブサイト (www.microchip.com) でご覧頂けます 9 ウォッチドッグタイマ (WDT) 2007-2011 Microchip Technology Inc. DS39697B_JP - p. 9-9
PIC24F ファミリリファレンスマニュアル 9.6 改訂履歴 リビジョン A (2006 年 5 月 ) 初版発行 リビジョン B (2010 年 8 月 ) このリビジョンでの変更内容は以下の通りです 9.2.3 WDT ウィンドウ を更新 表 9-1 を追加 図 9-2 ~ 図 9-5 を追加 文章および体裁の変更等 本書全体の細部を修正 DS39697B_JP - p. 9-10 2007-2011 Microchip Technology Inc.
マイクロチップ社製デバイスのコード保護機能に関して以下の点にご注意ください マイクロチップ社製品は 該当するマイクロチップ社データシートに記載の仕様を満たしています マイクロチップ社では 通常の条件ならびに仕様に従って使用した場合 マイクロチップ社製品のセキュリティレベルは 現在市場に流通している同種製品の中でも最も高度であると考えています しかし コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です 弊社の理解では こうした手法はマイクロチップ社データシートにある動作仕様書以外の方法でマイクロチップ社製品を使用する事になります このような行為は知的所有権の侵害に該当する可能性が非常に高いと言えます マイクロチップ社は コードの保全性に懸念を抱いているお客様と連携し 対応策に取り組んでいきます マイクロチップ社を含む全ての半導体メーカーで 自社のコードのセキュリティを完全に保証できる企業はありません コード保護機能とは マイクロチップ社が製品を 解読不能 として保証するものではありません コード保護機能は常に進歩しています マイクロチップ社では 常に製品のコード保護機能の改善に取り組んでいます マイクロチップ社のコード保護機能の侵害は デジタルミレニアム著作権法に違反します そのような行為によってソフトウェアまたはその他の著作物に不正なアクセスを受けた場合 デジタルミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利があります 本書に記載されているデバイスアプリケーション等に関する情報は ユーザの便宜のためにのみ提供されているものであり 更新によって無効とされる事があります お客様のアプリケーションが仕様を満たす事を保証する責任は お客様にあります マイクロチップ社は 明示的 暗黙的 書面 口頭 法定のいずれであるかを問わず 本書に記載されている情報に関して 状態 品質 性能 商品性 特定目的への適合性をはじめとする いかなる類の表明も保証も行いません マイクロチップ社は 本書の情報およびその使用に起因する一切の責任を否認します マイクロチップ社の明示的な書面による承認なしに 生命維持装置あるいは生命安全用途にマイクロチップ社の製品を使用する事は全て購入者のリスクとし また購入者はこれによって発生したあらゆる損害 クレーム 訴訟 費用に関して マイクロチップ社は擁護され 免責され 損害を受けない事に同意するものとします 暗黙的あるいは明示的を問わず マイクロチップ社が知的財産権を保有しているライセンスは一切譲渡されません 商標マイクロチップ社の名称とロゴ Microchip ロゴ dspic KEELOQ KEELOQ ロゴ MPLAB PIC PICmicro PICSTART PIC 32 ロゴ rfpic UNI/O は 米国およびその他の国におけるマイクロチップ テクノロジー社の登録商標です FilterLab Hampshire HI-TECH C Linear Active Thermistor MXDEV MXLAB SEEVAL Embedded Control Solutions Company は 米国におけるマイクロチップ テクノロジー社の登録商標です Analog-for-the-Digital Age Application Maestro chipkit chipkit ロゴ CodeGuard dspicdem dspicdem.net dspicworks dsspeak ECAN ECONOMONITOR FanSense HI-TIDE In-Circuit Serial Programming ICSP Mindi MiWi MPASM MPLAB Certified ロゴ MPLIB MPLINK mtouch Omniscient Code Generation PICC PICC-18 PICDEM PICDEM.net PICkit PICtail REAL ICE rflab Select Mode Total Endurance TSHARC UniWinDriver WiperLock ZENA は 米国およびその他の国におけるマイクロチップ テクノロジー社の商標です SQTP は 米国におけるマイクロチップ テクノロジー社のサービスマークです その他 本書に記載されている商標は各社に帰属します 2007-2011, Microchip Technology Incorporated, All Rights Reserved. ISBN: 978-1-61341-439-2 マイクロチップ社では Chandler および Tempe ( アリゾナ州 ) Gresham ( オレゴン州 ) の本部 設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949: 2009 認証を取得しています マイクロチップ社の品質システムプロセスおよび手順は PIC MCU および dspic DSC KEELOQ コードホッピングデバイス シリアル EEPROM マイクロペリフェラル 不揮発性メモリ アナログ製品に採用されています さらに 開発システムの設計と製造に関するマイクロチップ社の品質システムは ISO 9001:2000 認証を取得しています 2007-2011 Microchip Technology Inc. DS39697B_JP - p. 9-11
各国の営業所とサービス 北米本社 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 アトランタ Duluth, GA Tel: 678-957-9614 Fax: 678-957-1455 ボストン 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 デトロイト Farmington Hills, MI Tel: 248-538-2250 Fax: 248-538-2260 インディアナポリス Noblesville, IN Tel: 317-773-8323 Fax: 317-773-5453 ロサンゼルス Mission Viejo, CA Tel: 949-462-9523 Fax: 949-462-9608 サンタクララ Santa Clara, CA Tel: 408-961-6444 Fax: 408-961-6445 トロント Mississauga, Ontario, Canada Tel: 905-673-0699 Fax: 905-673-6509 アジア / 太平洋アジア太平洋支社 Suites 3707-14, 37th Floor Tower 6, The Gateway Harbour City, Kowloon Hong Kong Tel: 852-2401-1200 Fax: 852-2401-3431 オーストラリア - シドニー Tel: 61-2-9868-6733 Fax: 61-2-9868-6755 中国 - 北京 Tel: 86-10-8569-7000 Fax: 86-10-8528-2104 中国 - 成都 Tel: 86-28-8665-5511 Fax: 86-28-8665-7889 中国 - 重慶 Tel: 86-23-8980-9588 Fax: 86-23-8980-9500 中国 - 杭州 Tel: 86-571-2819-3187 Fax: 86-571-2819-3189 中国 - 香港 SAR Tel: 852-2401-1200 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 中国 - 瀋陽 Tel: 86-24-2334-2829 Fax: 86-24-2334-2393 中国 - 深圳 Tel: 86-755-8203-2660 Fax: 86-755-8203-1760 中国 - 武漢 Tel: 86-27-5980-5300 Fax: 86-27-5980-5118 中国 - 西安 Tel: 86-29-8833-7252 Fax: 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-8631 Fax: 91-11-4160-8632 インド - プネ Tel: 91-20-2566-1512 Fax: 91-20-2566-1513 日本 - 大阪 Tel: 81-66-152-7160 Fax: 81-66-152-9310 日本 - 横浜 Tel: 81-45-471-6166 Fax: 81-45-471-6122 韓国 - 大邱 Tel: 82-53-744-4301 Fax: 82-53-744-4302 韓国 - ソウル Tel: 82-2-554-7200 Fax: 82-2-558-5932 または 82-2-558-5934 マレーシア - クアラルンプール Tel: 60-3-6201-9857 Fax: 60-3-6201-9859 マレーシア - ペナン Tel: 60-4-227-8870 Fax: 60-4-227-4068 フィリピン - マニラ 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: 886-7-536-4818 Fax: 886-7-330-9305 台湾 - 台北 Tel: 886-2-2500-6610 Fax: 886-2-2508-0102 タイ - バンコク Tel: 66-2-694-1351 Fax: 66-2-694-1350 ヨーロッパオーストリア - ヴェルス Tel: 43-7242-2244-39 Fax: 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-89-627-144-0 Fax: 49-89-627-144-44 イタリア - ミラノ Tel: 39-0331-742611 Fax: 39-0331-466781 オランダ - ドリューネン Tel: 31-416-690399 Fax: 31-416-690340 スペイン - マドリッド Tel: 34-91-708-08-90 Fax: 34-91-708-08-91 イギリス - ウォーキンガム Tel: 44-118-921-5869 Fax: 44-118-921-5820 11/29/11 DS39697B_JP - p. 9-12 2007-2011 Microchip Technology Inc.