学習メモ

A/D変換は10ビット。基準電圧はVDD, VSS, VREF-, VREF+からソフト的に選択可能。また、スリープモードでも稼働可能。

<関係レジスタ>
 ADRESH A/D変換値のハイレジスタ
 ADRESL A/D変換値のローレジスタ
 ADCON0 A/Dコントロールレジスタ0
 ADCON1 A/Dコントロールレジスタ1
 ANSEL アナログセレクトレジスタ

<ANSEL>
 bit 7 未使用
 bit 6-0 <ANS6:0> アナログ入力選択
  1 アナログI/O
  0 デジタルI/O

<ADCON0>
 bit 7-6 ADCS<<1:0> A/D変換クロック選択
  If ADCS2 == 0
   00 FOSC/2
   01 FOSC/8
   10 FOSC/32
   11 FRC
  If ADCS2 == 1
   00 FOSC/4
   01 FOSC/16
   10 FOSC/64
   11 FRC
 bit 5-3 CHS<2:0> アナログ入力チャネル選択
   000 チャネル0 (RA0)
   001 チャネル1 (RA1)
   010 チャネル2 (RA2)
   011 チャネル3 (RA3)
   100 チャネル4 (RA4)
   101 チャネル5 (RB6)
   110 チャネル6 (RB7)
 bit 2 GO/DONE A/D変換の状態
   If ADON == 1
    1 Readでは変換中、Writeでは変換開始
    0 完了
 bit 1 未使用
 bit 0 ADON A/Dオンビット
  1 A/D変換モジュール稼働中
  0 A/D変換モジュールシャットダウン

<ADCON1>
 bit 7 ADFM A/D変換値のフォーマット選択
  1 右寄せ
  0 左寄せ
 bit 6 ADCS2 A/Dクロック半分の選択
  1 システムクロックの半分をA/Dクロックとして使用
  0 半分ではなく、そのままのクロックを使用
 bit 5-4 VCFG<:1:0> A/D電圧基準値の選択
  00 VDD – VSS
  01 VDD – VREF-
  10 VREF+ – VSS
  11 VREF+ – VREF-
 bit 3-0 未使用

<A/D変換に必要なステップ>
 1. A/Dモジュールの設定
  アナログ/デジタル I/Oの設定(ANSEL)
  電圧基準値の設定(ADCON1)
  A/D入力チャネルの選択(ADCON0)
  A/Dクロックの設定(ADCON0)
  A/Dモジュールのスタート(ADCON0)
 2. 必要であれば、A/D割り込みを設定
  ADIF ビットをクリア
  ADIE ビットをセット
  PEIE ビットをセット
  GIE ビットをセット
 3. 準備待ち
 4. 変換開始
  GO/DONE ビット(ADCON0)をセット
 5. 以下のいずれかにより、A/D変換終了を待つ
  GO/DONE ビットがクリアされたかどうかを監視
  A/D割り込み
 6. A/D変換値 レジスタペア(ADRESH:ADRESL)の読み出し。必要であれば ADIF ビットをクリア
 7. 上記のステップ1か2に戻り、次のA/D変換を行う

110822.png

Comments are closed.

Post Navigation