デバイスコンフィギュレーション

PICマイコンを期待通りに動作させるための環境設定である「デバイスコンフィギュレーション」について、その設定項目を解説します。
4-10-1.デバイスコンフィギュレーション
PICマイコンでは、オシレーターのモードやメモリの保護など、PICマイコンを期待通りに動作させるための環境設定(デバイスコンフィギュレーション/Device Configuration)が必要です。デバイスコンフィギュレーションは「コンフィギュレーションワード(Configuration Words)」と呼ばれるレジスターによって実装されています。
PIC16F1827のコンフィギュレーションワードには「CONFIGURATION WORD 1」と「CONFIGURATION WORD 2」の2種類があります。また、一つのコンフィギュレーションワードは、1ワード(14ビット)長のレジスターで、その各ビット(コンフィギュレーションビット/Configuration Bits)に環境設定のための項目が割り当てられています。では、各コンフィギュレーションワードの内容をデータシートで見てみましょう。
CONFIGURATION WORD 1
CONFIGURATION WORD 1のコンフィギュレーションビットに割り当てられた項目です。
PIC16F1827のデータシート(CONFIGURATION WORD 1)
PIC16(L)F1826/27 Data Sheet - DS41391D (Page.44-45)
CONFIGURATION WORD 2
CONFIGURATION WORD 2のコンフィギュレーションビットに割り当てられた項目です。
PIC16F1827のデータシート(CONFIGURATION WORD 2)
PIC16(L)F1826/27 Data Sheet - DS41391D (Page.46)
4-10-2.CONFIGURATION WORD 1
CONFIGURATION WORD 1のコンフィギュレーションビットを詳しく見てみましょう。
PIC16F1827のデータシート(CONFIGURATION WORD 1のコンフィギュレーションビット)
PIC16(L)F1826/27 Data Sheet - DS41391D (Page.44)
FOSC(bit 0-2)/Oscillator Selection
FOSCは、PICマイコンの動作には欠かせないオシレーター(発振回路)のモードを選択するビット(Oscillator Selection bits)です。
- ECH(111):CLKIN端子に外部クロックを供給する、高消費電力モード(4MHz~20MHz)
- ECM(110):CLKIN端子に外部クロックを供給する、中消費電力モード(0.5MHz~4MHz)
- ECL(101):CLKIN端子に外部クロックを供給する、低消費電力モード(0~0.5MHz)
- INTOSC(100):内部オシレーター:CLKIN端子はI/Oとして機能する
- EXTRC(011):CLKIN端子に抵抗とコンデンサからなるRC回路を接続する
- HS(010):周波数が4MHz~20MHzの高速水晶/セラミック振動子をOSC1・OSC2間に接続する
- XT(001):周波数が4MHzまでの水晶/セラミック振動子をOSC1・OSC2間に接続する
- LP(000):周波数が32.768kHZの低消費電力水晶振動子をOSC1・OSC2間に接続する
WDTE(bit 3-4)/Watchdog Timer Enable
PICマイコンが暴走したときにリセットするウォッチドッグタイマーのモードを設定するビット(Watchdog Timer Enable bit)です。
- ON(11):有効にする
- NSLEEP(10):稼働中は有効、スリープ中は無効にする
- SWDTEN(01):WDTCONレジスターのSWDTENで制御する
- OFF(00):無効にする
PWRTE(bit 5)/Power-up Timer Enable
PICマイコンが起動したとき、電源や周辺回路が安定するまでの一定時間、動作を停止するパワーアップタイマーのモードを設定するビット(Power-up Timer Enable bit)です。
- OFF(1):無効にする
- ON(0):有効にする
MCLRE(bit 6)/MCLR Pin Function Select
MCLR端子を、リセット信号の入力用として機能させるかどうかを設定するビット(MCLR/VPP Pin Function Select bit)です。ただし、CONFIGURATION WORD 2のコンフィギュレーションビットLVPがON(1)の時は無視されます。
- ON(1):MCLRとして機能する、弱いプルアップが有効になる
- OFF(0):デジタル入力として機能する、弱いプルアップはWPUAレジスターで制御する
CP(bit 7)/Flash Program Memory Code Protection
メモリー領域へ書き込んだプログラムの読み出しを許可するかどうかを設定するビット(Code Protection bit)です。
- OFF(1):プロテクトを無効にする
- ON(0):プロテクトを有効にする
CPD(bit 8)/Data Memory Code Protection
EEPROMへ書き込んだデーターの読み出しを許可するかどうかを設定するビット(Data Code Protection bit)です。
- OFF(1):プロテクトを無効にする
- ON(0):プロテクトを有効にする
BOREN(bit 9-10)/Brown-out Reset Enable
PICマイコンの電源電圧が、何らかの原因で低下したとき、誤動作するなど動作が不安定になる恐れがあります。PICマイコンには、電源電圧の降下を監視して一定電圧より下がるとリセットする「ブラウンアウトリセット」という機能があり、そのモードを設定するビット(Brown-out Reset Enable bits)です。
- ON(11):ブラウンアウトリセットを有効にする
- NSLEEP(10):稼働中は有効、スリープ中は無効にする
- SBODEN(01):BORCONレジスターのSBORENビットで制御する
- OFF(00):ブラウンアウトリセットを無効にする
CLKOUTEN(bit 11)/Clock Out Enable
CLKOUT端子の動作モードを設定するビット(Clock Out Enable bit)です。ただし、FOSCがLP・XT・HSの場合は無視され、必ず無効となります。
- OFF(1):CLKOUT機能を無効にして、I/Oとして機能する
- ON(0):CLKOUT機能を有効にする
IESO(bit 12)/Internal/External Switchover
外部クロックを使用する場合、電源投入直後、外部クロックが安定するまでに時間がかかります。そのため、安定するまで内部クロックを使う「二段階クロック(内外切り替えモード)」という機能があり、その機能を使うかどうか設定するビット(Internal External Switchover bit)です。
- ON(1):二段階クロック(内外切り替えモード)機能を有効にする
- OFF(0):二段階クロック(内外切り替えモード)機能を無効にする
FCMEN(bit 13)/Fail-Safe Clock Monitor Enable
外部クロックを使用する場合、何らかの原因でクロックの供給がなくなった場合、PICマイコンは動作を停止します。PICマイコンには、外部クロックの停止を監視する「フェールセーフクロックモニター」という機能があり、そのモードを設定するビット(Fail-Safe Clock Monitor Enable bit)です。有効にした場合、外部クロックが停止しても、内部クロックで動作を続けます。
- ON(1):フェールセーフクロックモニターを有効にする
- OFF(0):フェールセーフクロックモニターを無効にする
4-10-3.CONFIGURATION WORD 2
CONFIGURATION WORD 2のコンフィギュレーションビットを詳しく見てみましょう。
PIC16F1827のデータシート(CONFIGURATION WORD 2のコンフィギュレーションビット)
PIC16(L)F1826/27 Data Sheet - DS41391D (Page.44)
WRT(bit 0-1)/Flash Memory Self-Write Protection
PICマイコンでは、プログラム自身がメモリー(プログラム)領域への書き込みを行うことで、プログラムの書き換えが行えます。この書き込みを許可するかどうかを設定するビット(Flash Memory Self-Write Protection bits)です。
- OFF(11):書込み保護を行わない
- BOOT(10):000h~1FFhまでを保護、200h~FFFhを書き込み可にする
- HALF(01):000h~7FFhまでを保護、800h~FFFhを書き込み可にする
- ALL(00):000h~FFFhまでのすべてを保護する
PLLEN(bit 8)/PLL Enable
PLL(Phase Locked Loop)回路によって、クロックの周波数を4倍にする「4倍クロックモード」を使用するかどうかを設定するビット(PLL Enable bit)です。
- ON(1):4倍クロックモードを有効にする
- OFF(0):4倍クロックモードを無効にする
STVREN(bit 9)/Stack Overflow/Underflow Reset Enable
関数の引数や戻りアドレスを一時的に保存するスタック領域が、オーバーフローやアンダーフローしたときにリセットする機能を使用するかどうかを設定するビット(Stack Overflow/Underflow Reset Enable bit)です。
- ON(1):オーバーフロー・アンダーフローの発生時にリセットする
- OFF(0):オーバーフロー・アンダーフローが発生してもリセットしない
BORV(bit 10)/Brown-out Reset Voltage Selection
CONFIGURATION WORD 1のBORENで設定するブラウンアウトリセットが、動作する電源電圧を設定するビット(Brown-out Reset Voltage Selection bit)です。
- LO(1):ブラウンアウトリセットが動作する電源電圧を1.9Vにする(鈍感)
- HI(0):ブラウンアウトリセットが動作する電源電圧を2.5Vにする(敏感)
DEBUG(bit 12)
これは、開発ツールによって自動的に管理されるため、設定は不要です。
LVP(bit 13)/Low-Voltage Programming Enable
プログラムの書き込み時に、低い電圧で書き込むかどうかを設定するビット(Low-Voltage Programming Enable bit)です。
- ON(1):低電圧書き込みを有効にする
- OFF(0):低電圧書き込みを無効にする
PICマイコン関連のおすすめ品
PIC16F1827を使用した、赤・緑・青・黄のLED27個を円柱状に光らせる3Dイルミネーションキットです。PIC16F1827のプログラムは書き換えが可能で、C言語によるプログラミングが学習できます。詳しいマニュアルは株式会社イーケイジャパンよりダウンロードできます。
エレキット ピカ・タワー AW-864
エレキットのアートする電子工作シリーズ。 LED(発光ダイオード)を使用した3Dイルミネーションキットです。LEDは赤・緑・青・黄の4色、全部で27個使用して、円柱状に配置したLEDを光らせます。
PICマイコンのプログラミング(C言語)について、最新の開発環境を使って解説した役立つ一冊です。
PIC16F1ファミリのアーキテクチャ、新しい開発環境であるMPLAB IDE Xの使い方、C言語によるPICのファームウェア開発方法、内蔵モジュールの使い方と具体的な製作例などについて詳細に解説しています。