PIC24Fシリーズのコンフィギュレーションについて説明します。
【コンフィギュレーションとは】
コンフィギュレーションとは、クロック発振器構成、 ウォッチドッグタイマの使用、
プログラムコード保護設定など、PIC24Fファミリのハードウェア的な動作モードを
きめるための設定用レジスタで、常にプログラムを書き込むときに一緒にプログ
ラマで外部から書き込む必要があります。
コンフィギュレーション ビットは、プログラムメモリ内の「コンフィギュレーション空間」
に置かれていますが、電源オフで消えてしまうため電源オンリセットの都度書き直す
必要があります。
そこでプログラム書き込みの際にプログラムメモリの最後の部分のフラッシュ
コンフィギュレーション ワードにコンフィギュレーション ビットの内容を書き込むように
なっています。
そしてリセットによりプログラムが0番地から実行開始する直前に、書き込んだコン
フィギュレーション内容を、本来のコンフィギュレーション ビット位置にコピーして動作を
開始するようになっています。
【コンフィギュレーション ワードの構成】
コンフィギュレーションビットは2ワードで構成されていてCW1(最終番地)、CW2
(最終番地-1)という名称となっていて、主な設定項目は下記のようになっています。
・CW1 :プログラムコードプロテクト、ウォッチドッグタイマ設定など
・CW2 : クロック発振器設定
24ビットの構成ですが、上位8ビットはすべて1になっていて万一命令として実行した
場合にもNOPとして実行され暴走しないようになっています。
コンフィギュレーション ビットとしては下位16ビットとなっています。
MPLAB C30コンパイラでは、あらかじめこのコンフィギュレーション ビットの設定内容を
プログラム中に記述しておけるように、_CONFIG11()と_CONFIG2()という2つのマクロ命令
が用意されています。
これらのマクロで使えるコンフィギュレーションのパラメータについては、それぞれの
デバイスのヘッダーファイルの中に記述されていますのでそれを参照する必要があります。
【CW1コンフィギュレーション ワード】
主にプロテクトやWDTの設定用で、下図の内容となっています。
このときデバッグ用のピンの機能も設定します。
JTAGポートは通常は常に無効にします。
【CW2コンフィギュレーション ワード】
主にクロックの選択を行うコンフィギュレーション ビットで下図となっています。