PIC12F675のコンフィギュレーションワード

                                                                  nobcha(c)2010

 

 いつも新しいPICシリーズを手がけるとまずはコンフィギュレーションワードの設定との格闘です。どこに秘密があるのか、マニュアルの記述もところどころあやふやだったり・・、どこを見れば確実か。ありました手近なところです。includeするhファイルが次のところにあり、hファイルの後ろの方にdefineされてました。ブログをみているとコンフィギュレーションワードをヘキサデシマルで書く人もいてなぜなのかなと思っていたわけも判明。
  C:\Program Files\HI-TECH Software\PICC\9.71a\include\pic12f675.h
 必要な機能のマスクワードを&すればヘキサデシマル表記での設定も出来上がるんですね.

 

 pic12f675.hファイルの中から 
// Configuration Mask Definitions
#define CONFIG_ADDR 0x2007
// Bandgap Calibrations 
#define BGHIGH 0x0x3FFF <- 11 1111 1111 1111
#define BGLOW 0x0x0FFF
// Protection of data block 
#define UNPROTECT 0x3FFF  <- 11 1111 1111 1111
#define CPD 0x3EFF
// Protection of program code 
#define UNPROTECT 0x3FFF  <-11 1111 1111 1111
#define PROTECT 0x3F7F
// Brown out detection enable 
#define BOREN 0x3FFF
#define BORDIS 0x3FBF     <- 11 1111 1011 1111
// Master clear reset
#define MCLREN 0x3FFF     <- 11 1111 1111 1111
#define MCLRDIS 0x3FDF
// Power up timer enable 
#define PWRTDIS 0x3FFF
#define PWRTEN 0x3FEF     <- 11 1111 1110 1111
// Watchdog timer enable 
#define WDTEN 0x3FFF
#define WDTDIS 0x3FF7      <- 11 1111 1111 0111
// Oscillator configurations 
#define RCCLK 0x3FFF
#define RCIO 0x3FFE
#define INTCLK 0x3FFD
#define INTIO 0x3FFC       <- 11 1111 1111 1100
#define EC 0x3FFB
#define HS 0x3FFA
#define XT 0x3FF9
#define LP 0x3FF8

ということでPIC12F675のnobcha試作時のテンプレートは次にします。
   __CONFIG(BORDIS & UNPROTECT & PWRTEN & WDTDIS & MCLREN & INTIO );
ブラウンアウトは無し、コード保護無し、パワーオン時のタイマーあり、ウオッチドッグタイマ使わず、クリア端子は使う、クロックは内部で端子はIOにすると言う設定を標準で使うことにします。

ヘキサデシマルで定義するなら。  __config(0x3FA4); ← 11 1111 1010 0100

上記define文はHiTECH社のCコンパイラ配布ファイルの中のpic12f675.hから一部を抜き出したものです。

 

 

コンフィギュレーションビットの解説
  ではここで各コンフィギュレーションビットの解説をしておきます。PIC12f629・675データシート(DS41190E)を参考にしました。P52 9.1 Configuration Bitsなどに詳しく書かれています。
ビット名 機能などの説明項目 標準設定は
 Bandgap Calibrations 工場設定のキャリブレ値だが、MPLAB使用時には気にすること無いと書いてあります。 デフォールトで良い
 UNPROTECT/CPD データブロックを外部から読み出せなくする UNPROTECT
 UNPROTECT/PROTECT プログラムコードを読み出せなくする UNPROTECT
 BOREN/BORDIS ブラウンアウトリセットの選択。Vbod:2.1V以下になるとリセットを欠ける機能の選択。 BORDIS
 MCLREN/MCLRDIS GP3端子をクリア端子で使うかどうかです。PICKIT2につないで使いたいときはMCLRENにする必要があります。 MCLREN
 PWRTDIS/PWRTEN 電源on時タイマー後にスタートする。 PWRTEN
 WDTEN/WDTDIS ウオッチドッグタイマを使うかどうかです。とりあえずは使うアプリケーションは手がけないので、そのときまではDISです。 WDTDIS
 RCCLK GP5にクロック用RCをつなぎ、GP4はクロック出力 INTIO

4MHzで使うことにする

 RCIO GP5にクロック用RCをつなぎ、GP4はIOで使う
 INTCLK OSCCONで指定する周波数で内部発振し、GP4はクロックの4分の1分周出力
 INTIO OSCCONで指定する周波数で内部発振し、GP4はIOで使う
 EC GP5に外部からクロックを入力する、GP4はクロック出力
 HS GP5とGP4間に8MHz〜20MHzの水晶発振子をつないでクロックを作る。
 XT GP5とGP4間に455kHz〜4MHzの水晶発振子をつないでクロックを作る。
 LP GP5とGP4間に32kHzの低電力型水晶発振子をつないでクロックを作る

 

 

 

 

 

 

 

 

 

 

全体目次に戻る                              2010/09/13 nobcha

アイコンは「牛飼いとアイコンの部屋」からの提供。ありがとうございます。

 

inserted by FC2 system