デバイスコンフィグレーションは、コンフィグレー ション ワード、コード保護、デバイス
ID
から構成さ れます。4.1 コンフィグレーション ワード
デバイスには、オシレータやメモリ保護の各種設定を 選択できる複数のコンフィグレーション ワードビット があります。これらは、コンフィグレーションワード
1 (8007h)とコンフィグレーション ワード2 (8008h)と
して実装されています。Note:
コンフィグレーション ワードのDEBUG
ビットは、デバッガやプログラマ等のデ バイス開発ツールによって自動的に管理 されます。デバイスの通常動作中は、こ のビットを「
1
」に保つ必要があります。PIC16(L)F1703/7
4.2 レジスタ定義 : コンフィグレーション ワード
レジスタ 4-1:
CONFIG1: コンフィグレーション ワード 1
R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 U-1
FCMEN IESO CLKOUTEN BOREN<1:0>
-bit 13 bit 8
R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1
CP
(1)MCLRE PWRTE WDTE<1:0> - FOSC<1:0>
bit 7 bit 0
凡例
:
R =
読み出し可能ビットP =
書き込み可能ビットU =
未実装ビット、「1
」として読み出し「
0
」=
ビットはクリア 「1
」=
ビットはセット-n =
ブランクまたはバルク消去後の値bit 13 FCMEN:
フェイルセーフクロックモニタイネーブルビット1 = フェイルセーフ クロックモニタと内部 /
外部切り換えの両方を有効にする0 = フェイルセーフ クロックモニタを無効にする
bit 12 IESO:
内部/
外部切り換えビット1 = 内部 /
外部切り換えモードを有効にする0 = 内部 /
外部切り換えモードを無効にするbit 11 CLKOUTEN:
クロック出力イネーブルビットFosc
コンフィグレーション ビットがLP、XT、HS
モードに設定されている場合:
このビットを無視し
CLKOUT
機能を無効にする。CLKOUTピンはオシレータとして機能する その他の全てのFosc
モードの場合:
1 = CLKOUT
機能を無効にする。CLKOUTピンはI/O
として機能する0 = CLKOUT
ピンのCLKOUT
機能を有効にするbit 10-9 BOREN<1:0>:
ブラウンアウト リセット イネーブルビット11 = BOR
を有効にする10 = BOR
を動作時に有効、スリープ中に無効にする01 = BOR
をBORCON
レジスタのSBOREN
ビットで制御する00 = BOR
を無効にするbit 8
未実装:「 1
」として読み出しbit 7 CP: コード保護ビット
(1)1 = プログラムメモリのコード保護を無効にする 0 = プログラムメモリのコード保護を有効にする bit 6 MCLRE: MCLR/V
PPピン機能選択ビットLVP
ビット= 1
の場合:
このビットは無視されるLVP
ビット= 0
の場合:
1 = MCLR/V
PPピンはMCLR
として機能する。弱プルアップを有効にする0 = MCLR/V
PP ピンはデジタル入力として機能する。MCLR を内部で無効にし、弱プルアップはWPUE3
ビットで制御するbit 5 PWRTE:
パワーアップ タイマ イネーブルビット1 = PWRT
を無効にする0 = PWRT
を有効にするbit 4-3 WDTE<1:0>: ウォッチドッグ タイマ イネーブルビット 11 = WDT
を有効にする10 = WDT
を動作時に有効、スリープ中に無効にする01 = WDT
をWDTCON
レジスタのSWDTEN
ビットで制御するPIC16(L)F1703/7
bit 1-0 FOSC<1:0>:
オシレータ選択ビット11 = ECH:
外部クロック、高消費電力モード(4
~20 MHz): CLKIN
ピンにデバイスクロックを供給 する10 = ECM:
外部クロック、中消費電力モード(0.5
~4 MHz):CLKIN
ピンにデバイスクロックを供給 する01 = ECL:
外部クロック、低消費電力モード(0
~0.5 MHz):CLKIN
ピンにデバイスクロックを供給 する00 = LP
オシレータ:OSC1
とOSC2
ピン間に低消費電力水晶振動子を接続するNote 1:
消去中にコード保護をOFF
にすると、フラッシュ プログラムメモリ全体が消去されます。バルク消去プログラムメモリコマンドを実行すると、プログラムフラッシュメモリ全体とコンフィグレーション メモリが消去されます。
レジスタ 4-1:
CONFIG1: コンフィグレーション ワード 1 (
続き)
PIC16(L)F1703/7
レジスタ 4-2:
CONFIG2: コンフィグレーション ワード 2
R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1
LVP(1) DEBUG(2) LPBOR BORV(3) STVREN PLLEN
bit 13 bit 8
R/P-1
U-1 U-1 U-1 U-1 R/P-1 R/P-1 R/P-1ZCDDIS
- - - - PPS1WAY WRT<1:0>bit 7 bit 0
凡例:
R = 読み出し可能ビット P = 書き込み可能ビット U = 未実装ビット、「1」として読み出し
「0」 = ビットはクリア 「1」 = ビットはセット -n = ブランクまたはバルク消去後の値
bit 13 LVP: 低電圧プログラミング イネーブルビット(1)
1 = 低電圧プログラミングを有効にする
0 = プログラミング時にMCLRに高電圧を印加する必要がある
bit 12 DEBUG: インサーキット デバッガモード ビット(2)
1 = インサーキット デバッガを無効にする。ICSPCLKとICSPDATは汎用I/Oピンとして機能する
0 = インサーキット デバッガを有効にする。ICSPCLKとICSPDATはデバッガ専用である
bit 11 LPBOR: 低消費電力BORイネーブルビット
1 = 低消費電力ブラウンアウト リセットを無効にする
0 = 低消費電力ブラウンアウト リセットを有効にする
bit 10 BORV: ブラウンアウト リセット電圧選択ビット(3)
1 = ブラウンアウト リセット電圧(VBOR)のトリップポイントを低に設定する
0 = ブラウンアウト リセット電圧(VBOR)のトリップポイントを高に設定する
bit 9 STVREN:スタック オーバーフロー/アンダーフロー リセット イネーブルビット
1 = スタックのオーバーフローまたはアンダーフローによってリセットを発生させる
0 = スタックのオーバーフローまたはアンダーフローによってリセットを発生させない
bit 8 PLLEN: PLLイネーブルビット
1 = 4xPLLを有効にする 0 = 4xPLLを無効にする
bit 7 ZCDDIS: ZCDディセーブル ビット
1 = ZCDを無効にする ZCDを有効にするには、ZCDCONのZCDSENビットをセットする
0 = ZCDを常時有効にする
bit 6-3 未実装:「1」として読み出し
bit 2 PPS1WAY: PPSLOCKビット単方向セット イネーブルビット
1 = PPSLOCKビットは、ロック解除シーケンスを実行後に一度のみセットできる。一度PPSLOCKがセットさ れると、その後PPSは変更できない
0 = ロック解除シーケンスを実行すれば何度でもPPSLOCKビットをセット/クリアできる
bit 1-0 WRT<1:0>: フラッシュメモリ自己書き込み保護ビット
4 kWのフラッシュメモリ
11 =書き込み保護をOFFにする
10 = 000h~1FFhを書き込み保護状態にし、200h~FFFhをPMCON制御によって変更可能にする
01 = 000h~7FFhを書き込み保護し、800h~FFFhをPMCON制御によって変更可能にする
00 = 000h~FFFhを書き込み保護状態にし、PMCON制御によるアドレス変更を不可にする
Note 1: LVPを使ってプログラミング モードに入る場合、LVPビットは「0」にプログラムできません。
2: コンフィグレーション ワードのDEBUGビットは、デバッガやプログラマ等のデバイス開発ツールによって自動的に 管理されます。デバイスの通常動作中は、このビットを「1」に保つ必要があります。
3: 具体的なトリップポイント電圧についてはVBORパラメータを参照してください。
PIC16(L)F1703/7
4.3 コード保護
コード保護を使うと、不正なアクセスからデバイスを 保護できます。プログラムメモリ保護は独立して制御 されます。プログラムメモリへの内部アクセスは、コー ド保護のいかなる設定の影響も受けません。
4.3.1
プログラムメモリ保護コンフィグレーションワードの
CP
ビットによって、プログラムメモリ空間全体が外部の読み書きから保護 されます。
CP = 0
の場合、プログラムメモリに対する 外部の読み書きが禁止され、読み出し動作には全て「
0
」が返されます。保護ビットの設定に関わらず、CPU
は常にプログラムメモリを読み出す事ができます。プロ グラムメモリへの書き込みの可否は、書き込み保護設 定で決まります。詳細は、セクション 4.4「書き込み 保護」を参照してください。4.4 書き込み保護
書き込み保護を使うと、意図しない自己書き込みから デバイスを保護できます。ブートローダ ソフトウェア 等のアプリケーションを保護する一方、プログラムメ モリの他の部分に対する変更を許可できます。
コンフィグレーション ワードの
WRT<1:0>
ビットに よって、保護するプログラムメモリ ブロックのサイズ を定義します。4.5 ユーザ ID
ユーザがチェックサムまたはその他のコード識別番号を 格納できる
ID
位置として、4
つのメモリ位置(8000h
~8003h)
が指定されています。これらの位置には、通常動作時に読み書きが可能です。これらのメモリ位置へ のアクセスに関する詳細は、セクション10.4「ユーザ ID、デバイス ID、コンフィグレーションワードへの アクセス」を参照してください。チェックサム計算の 詳 細 は、『
PIC16(L)F170X Memory Programming
Specification』(DS41683)
を参照してください。PIC16(L)F1703/7
4.6 デバイス ID とリビジョン ID
14
ビットデバイスID
ワードは8006h
にあり、14
ビット リビジョンID
は8005h
にあります。これらの位置は 読み出し専用で、消去または書き込みはできません。これらのメモリ位置へのアクセスに関する詳細は、セク
ション10.4「ユーザID、デバイスID、コンフィグレー
ションワードへのアクセス」を参照してください。
デバイス
ID
とリビジョンID
の読み出しには、デバイス プログラマやデバッガ等の開発ツールを使います。4.7 レジスタ定義 : デバイスとリビジョン
レジスタ 4-3:
DevID: デバイス ID
レジスタR R R R R R
DEV<13:8>
bit 13 bit 8
R R R R R R R R
DEV<7:0>
bit 7 bit 0
凡例:
R = 読み出し可能ビット
「1」 = ビットはセット 「0」 = ビットはクリア
bit 13-0 DEV<13:0>: デバイスIDビット
レジスタ
4-4: RevID:
リビジョンID
レジスタR R R R R R
REV<13:8>
bit 13 bit 8
R R R R R R R R
REV<7:0>
bit 7 bit 0
凡例:
R = 読み出し可能ビット
「1」 = ビットはセット 「0」 = ビットはクリア
bit 13-0 REV<13:0>: リビジョンIDビット
デバイス DEVID<13:0> の値
PIC16F1703 11 0000 0100 0011 (3043h)
PIC16LF1703 11 0000 0100 0101 (3045h)
PIC16F1707 11 0000 0100 0010 (3042h)
PIC16LF1707 11 0000 0100 0100 (3044h)