- コンフィグレーションの設定方法について
- コンフィグレーションの項目ごとの意味
PICマイコンを使う上で、まず最初に行わなければならないコンフィグレーション(Configuration)の設定方法についてまとめました。
目次
- コンフィグレーションとは
- コンフィグレーションの設定方法
- 項目ごとの意味
コンフィグレーションとは
PICマイコンでは、オシレーター(発振回路)のモードやメモリの保護など、機器自体(ハード)としての設定を最初に行う必要があります。この設定をコンフィギュレーションというレジスタ(データを格納しておく入れ物)に入れます。
要するに、コンフィグレーションを設定することで、PICマイコンの基本的なハードとしての動作を決定しますから、この設定を行わないとPICマイコンは動きません。
コンフィグレーションの設定方法
コンフィグレーションの設定は、PICマイコンのプログラムを書き込む際に一緒に行います。プログラム自体はMPLAB X IDEで自動生成することができます。生成方法について案内します。
項目ごとの意味
コンフィグレーションの項目はPICによって微妙に異なりますが、今回は「PIC12F1822」にある項目について案内いたします。日本語のデータシートも公開されているので一番最初に使うPICには良いと思います。
(私が使うときの設定を赤字にしています。)
・FOSC (発振回路選択) |
ECH |
外部クロック、高消費電力モード (4 ~ 32 MHz): CLKIN ピンにデバイスクロックを供給する |
ECM |
外部クロック、中消費電力モード (0.5 ~ 4 MHz): CLKIN ピンにデバイスクロックを供給する |
ECL |
外部クロック、低消費電力モード (0 ~ 0.5 MHz): CLKIN ピンにデバイスクロックを供給する |
INTOSC |
CLKIN ピンは I/O として機能する |
EXTRC |
CLKIN ピンに外部 RC 回路を接続する |
HS |
OSC1 と OSC2 ピン間に高速水晶 / セラミック振動子を接続する |
XT |
OSC1 と OSC2 ピン間に水晶 / セラミック振動子を接続する |
LP |
OSC1 と OSC2 ピン間に低消費電力水晶振動子を接続する |
・WDTE (ウォッチドッグタイマーの設定) |
定期的に発動することで、システムが機能し続けていることを確認させるためのタイマー(ウォッチドックタイマー)の設定 |
ON |
WDT を有効にする |
NSLEEP |
WDT を動作時に有効、スリープ時に無効にする |
SWDTEN |
WDT を WDTCON レジスタの SWDTEN ビットで制御する |
OFF |
WDT を無効にする |
・PWRTE (パワーアップタイマー設定) |
電源や周辺回路が安定するまでの一定時間、動作を停止するパワーアップタイマーのモードを設定 |
OFF |
PWRT を無効にする |
ON |
PWRT を有効にする |
・MCLRE (MCLR端子の設定) |
MCLR端子を、リセット信号の入力用として機能させるかどうかを設定 |
ON |
MCLR/VPP ピンは MCLR として機能する。弱プルアップを有効にする |
OFF |
MCLR/VPP ピンはデジタル入力として機能する。MCLR を内部で無効にし、弱プルアップは WPUA レジスタで制御する |
・CP (コード保護の設定) |
OFF |
プログラムメモリのコード保護を無効にする |
ON |
プログラムメモリのコード保護を有効にする |
・CPD (データコード保護の設定) |
OFF |
データメモリのコード保護を無効にする |
ON |
データメモリのコード保護を有効にする |
・BOREN (ブラウンアウトリセットの設定) |
電源電圧が一定電圧より下がるとリセットするブラウンアウトリセットの設定 |
ON |
BORENを有効にする |
NSLEEP |
BOREN を動作時に有効、スリープ時に無効にする |
SBODEN |
BOREN を BORCON レジスタの SBOREN ビットで制御する |
OFF |
BOREN を無効にする |
・CLKOUTEN (CLKOUT端子の動作モードの設定) |
OFF |
CLKOUT 機能を無効にする。CLKOUT ピンは I/O として機能する |
ON |
CLKOUT ピンの CLKOUT 機能を有効にする |
・IESO (電源投入直後のクロック設定) |
電源投入直後、外部クロックが安定するまでの時間、内部クロックを使う機能の設定 |
ON |
内部 / 外部切り換えモードを有効にする |
OFF |
内部 / 外部切り換えモードを無効にする |
・FCMEN (外部クロックが停止時、内部クロックで動作させる) |
外部クロック監視機能「フェールセーフクロックモニター」を使い、外部クロックが停止しても、内部クロックで動作させるかのを設定 |
ON |
フェイルセーフ クロックモニタを有効にする |
OFF |
フェイルセーフ クロックモニタを無効にする |
・WRT (プログラムの書き換え保護の設定) |
PICはプログラム自身がメモリー領域への書き込みを行うことで、プログラムの書き換えが行えます。この書き込みを許可するかの設定 |
OFF |
書込み保護を行わない |
BOOT |
000h~1FFhまでを保護、200h~FFFhを書き込み可にする |
HALF |
000h~7FFhまでを保護、800h~FFFhを書き込み可にする |
ALL |
000h~FFFhまでのすべてを保護する |
・PLLEN (クロック周波数を4倍にする設定) |
PLL(Phase Locked Loop)回路によって、クロックの周波数を4倍にする「4倍クロックモード」を使用するかの設定 |
ON |
4倍クロックモードを有効にする |
OFF |
4倍クロックモードを無効にする |
・STVREN (保存したデータ量によるリセットの設定) |
関数の引数や戻りアドレスを一時的に保存するスタック領域が、オーバーフローやアンダーフローしたときにリセットする機能を使用するかの設定 |
ON |
スタックのオーバーフローまたはアンダーフローによってリセットを発生させる |
OFF |
スタックのオーバーフローまたはアンダーフローによってリセットを発生させない |
・BORV (ブラウンアウトリセット動作する電圧を設定) |
BORENで設定するブラウンアウトリセットが、動作する電源電圧を設定 |
LO |
ブラウンアウト リセット電圧 (Vbor) のトリップポイントを低に設定する |
HI |
ブラウンアウト リセット電圧 (Vbor) のトリップポイントを高に設定する |
・LVP (書き込み電圧を設定) |
プログラムの書き込み時に、低い電圧で書き込むかどうかを設定 |
ON |
低電圧書き込みを有効にする |
OFF |
低電圧書き込みを無効にする |