2023.1.27
前へ
次へ
ホームページトップへ戻る


PIC−USBIO using BASIC

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第168回]



●PICUSBIO−03(117)ADコンパーター(2)ADCオペレーション

前回からの続きです。
今回はADコンバーターの2回目です。


[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

●ADコンバートの開始

ADCモジュールをイネーブル(有効)にするには、ADCON0レジスタのADONビットを’1’にセットしなければなりません。
ADCON0レジスタのGO/DONEビットを’1’にセットすると、ADCON2レジスタのACQTビットの設定値に従って、直ちにADコンバートがスタートするか、またはアクイジションディレイの後でADコンバートがスタートします。
Figure17−3にACQT<2:0>=000のときにGOビットがセットされた後のADコンバータの動作を示します。
Figure17−4にACQT<2:0>=010(コンバート開始前に4TADアクイジションタイムを置く設定)のときにGOビットがセットされた後のADコンバータの動作を示します。
Note:ADCモジュールをONにするのと同時にGO/DONEビットをセットすべきではありません。
ここの’same instruction’ってどういうこと?

ああ、そういうことか。
ADCモジュールをONにするためのビット(ADON)もGO/DONEビットも同じADCON0レジスタにありました(ADCON0は前回参照)。
その両方のビットを同時にONにしてはいけないという意味のようです(先にADONのみをセットする)。
納得しました。



[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet


[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

●コンバートの完了

コンバートが完了するとADCモジュールは下記を行ないます。
・GO/DONEビットをクリアする。
・ADIFフラグビットをセットする。
・ADRESH:ADRESLレジスタに新しいコンバート結果を書き込む。


[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

●ディスチャージ(放電)

ディスチャージはコンデンサの値を初期化するために行なわれます。
コンデンサはサンプリング後には毎回ディスチャージされます。
前の計測値からチャージ/ディスチャージするのではなくて毎回チャージを行なうこの機能はユニティゲインアンプ(ゲインが1倍のアンプ、ボルテージフォロア)の最適化に役立ちます。


[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

●コンバートの中止

コンバートの途中でコンバートを中止するときはGO/DONEビットをソフトウェアでクリアします。
ADRESH:ADRESLレジスタの値は途中(のビット)までコンバートされた値になります。
コンバートされなかったビットは前の値のまま残ります。
Note:デバイスを強制的にリセットすると全てのレジスタはリセット初期値になります。
ADCモジュールはOFFになりコンバートは打ち切られます。


[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

●コンバートの間のディレイタイム

ADコンバードが完了したあと次のアクイジションをスタートするまでに2TAD時間のウェイトが必要です。
このウェイトのあと、今選択されているチャネルが再びチャージホールドキャパシタに接続され次のアクイジションが開始されます。


[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

●ADコンバートの手順

ADCモジュールを使ってADコンバートを行なう手順の例です。
1.ポートの設定:
 ・I/O端子の出力ドライバをディスエーブル(無効)にする(TRISレジスタの設定)
 ・端子をアナログポートに設定する
2.ADCモジュールの設定:
 ・ADCコンバートクロックを選択する
 ・基準電圧の設定をする
 ・ADC入力チャネルを選択する
 ・出力フォーマットを選択する
 ・アクイジションディレィタイムを選択する
 ・ADCモジュールをONにする
3.ADC割込みの設定(本稿ではADC割込みは使わないのでこの項は省略します)
4.必要なアクイジションの時間ウェイトする(2)
5.GO/DONEビットをセットしてコンバートを開始する
6.ADコンバートが完了するのを下記の方法で確認して待つ
 ・GO/DONEビットをポーリングする
 ・ADC割込みフラグADIFを見る
7.ADコンバートの結果を読む
8.(ADIFを使うならば)ADIFフラグをクリアする

Note1:省略
Note2:ACQTビット=000の設定のときはソフトウェアによるディレイが必要です。

下はADコンバーターに関係するレジスタの一覧です。

[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

−=未実装。’0’が読み出される。アミのかかったビットはADコンバーターでは使用されない。

PIC−USBIO using BASIC[第168回]
2023.1.27upload

前へ
次へ
ホームページトップへ戻る