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


PIC−USBIO using BASIC

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

[第169回]



●PICUSBIO−03(118)基準電圧

今回のタイトルはADコンバータではありません。
ちょいと理由があって、予定変更です。

実は。
前回でADコンバータについては一応の説明が終りましたので、順序からいけば今回はADコンバータのテストプログラムの作成とそのテストということになります。
もちろんそのつもりでした。
ADコンバータのテストをするためにはテストをするための入力電圧源が必要です。
そのことはずっと前から考えていましたので、そのためにSPIモードのテストをするときにDAコンバータを使ってテストをしたのでした([第123回]参照)。
当然のこととしてADコンバータのテストにはそのときに使ったDAコンバータの出力を利用するつもりだったのですが。

ところが。
ADコンバータの記事を書いていて「なんじゃこりゃあ?」とData Sheetのある部分に目が留まりました。
[第167回]のブロック図(Figure17−1)をよく見ると入力チャネルの下のほうに”DAC”と”FVR”という表記があります。
その回の下のほうのADCON0レジスタのところでもCHS<3:0>=’1110’が”DAC”、’1111’が”FVR”と表記されています。
DACは素直に読めばDAコンバータです。
えええ?
PICにDAコンバータなんてあったのかいな?
PIC18F13K50の端子接続図([第96回])を見ても”DAC”や”FVR”なんて端子はありません。
そもそもDACがもしもDAコンバータならばそれは当然「出力」のはず。
それがどうしてADコンバータの「入力チャネル」にあるのか?
というようなことから始まって、作業を一時中断して「DAC」なるものの探索をすることになってしまいました。
その結果わかったことが今回のテーマです。

PIC18F13K50にはれっきとしたDAコンバータがあったのでした(今まで全く気が付きませんでした)。
まあ、れっきとしたといいましてもわずか5ビットですけれど。
それでもDAコンバータに違いはありません。
前記のブロック図やレジスタ図から推測するところ、どうやらそのDAC、FVRの出力をデバイス内部でADコンバータの入力チャネルの’1110’番、’1111’番に接続することができるらしいというように読めます。
そのことについては後で確認してみることとして、さらにData Sheetを読み進めたところ、そのDAC出力をデバイスの端子から出力することができることがわかりました。
CVREF(Cポートのビット2、RC2、pinNo.14)です。
PIC18F13K50の端子接続図は[第96回]にあります。
おお。
そういうことならば。
ADコンバータの適当な入力チャネルにそのCVREF出力を接続すれば、とりあえずADコンバータのテストができるじゃありませんか。

ということで。
予定を変更して、まずは先にそのDACを料理してからそのあとでADコンバータのテストをすることにしました。

DACとFVRはPIC18F13K50 Data SheetのVOLTAGE REFERENCES(基準電圧)のところで説明されています。


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

●(2種類の)基準電圧

(このデバイスには)下記の2種類の独立した基準電圧があります。
・プログラム可能な基準電圧
・1.024Vの固定基準電圧


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

●基準電圧

基準電圧モジュールはコンパレータおよびDACモジュールのための基準電圧をデバイス内部で生成します。
その基準電圧には下記の機能(特徴)があります。
・コンパレータとは独立している
・32レベルの電圧レンジ(DAC)
・出力はVSSにクランプされている(DAC)
・出力はVDDに連動している(DAC)
・1.024Vの固定基準電圧(FVR)

原文のこの項目のvoltage referenceは複数の異なった機能に対して使われています。
直訳すると混乱してしまいます。
ここでは可変型の基準電圧をDAC出力、固定型の基準電圧をFVRとして区別して示します。
特に断っていない場合の「基準電圧」はDACとFVRの両方を示します。

REFCON1レジスタ(Register21−2)により基準電圧モジュール(DAC)をコントロールします(Figure21−1)。
今回の記事の下の方に基準電圧のブロック図とレジスタ図がありますから適宜参照してください。


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

●独立した制御

基準電圧はコンパレータの設定からは独立しています。
REFCON1レジスタのD1ENビットをセットするとVREF分圧回路に規定電流が流れて基準電圧(DAC)がイネーブル(有効)になります。
D1ENビットをクリアすると基準電圧回路の電流が遮断されて基準電圧(DAC)はディスイネーブル(無効)になります。
今回の記事の下の方に基準電圧のブロック図とレジスタ図がありますから適宜参照してください。



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

●出力電圧の選択

VREF基準電圧(DAC)は32通りの電圧レベルをもっています。
32の電圧レベルはREFCON2レジスタのDAC1R<4:0>ビットによって決定されます。
VREF出力電圧はEQUATION21−1に示す式によって決定されます。


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

●出力はVSSにクランプされている

VREF出力電圧はREFCON1レジスタのD1ENビットを’0’にすることで電流を消費することなくVssレベルにセットすることができます。
これによってコンパレータはVREFモジュールの電流を増加させることなく「ゼロクロス」を検出することができます。


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

●出力電圧はVDDに連動している

コンパレータの基準電圧(DAC)はVDDから得ているためVREF出力はVDDの変動によって変わります。
これはDACのプラス側電源としてVDDを選択したときに当てはまる記述だと思います。


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

●基準電圧の出力

VREF基準電圧(DAC)はREFCON1レジスタのDAC1OEビットをを’1’にすることでデバイスのCVREF端子から出力することができます。
VREF基準電圧(DAC)をCVREF端子から出力するように設定するとその端子のデジタル出力バッファおよびデジタル入力のスレッショルド検出回路は自動的に無効にされます。
VREF基準電圧(DAC)を出力するように設定したCVREF端子を(デジタル入力として)読むと常に’0’が返ってきます。

(基準電圧回路DACの)ドライブ電流の制約のため、CVREFに外部回路を接続する場合には基準電圧出力にバッファをつける必要があります。


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

●リセットの影響

デバイスをリセットすると下記の状態になります。

・基準電圧(DAC)はディスエーブル(無効)になります。
・固定基準電圧も無効になります。
・VREFはCVREF端子から外れます。
・DAC1R<4:0>は’00000’になります。


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

●FVR基準電圧モジュール

ここからはFVR(固定基準電圧)の説明です。
FVRはVDDから独立した固定基準電圧で基本出力電圧は1.024Vです。
REFCON0レジスタのFVR1ENビットを’1’にすることでイネーブル(有効)になります。
FVR基準電圧はコンパレータ用として使うことができ、またADC入力チャネルにもなります。


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

●FVRが安定するまでの時間

固定基準電圧がイネーブル(有効)にされたとき、その出力が安定するまでには一定の時間が必要です。
ユーザプログラムはそのための若干のディレィルーチンが必要です。
REFCON0レジスタのFVR1STビットは基準電圧が十分に安定したときに’1’になります。

[基準電圧のブロック図]

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

[REFCON0レジスタ]

[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet
bit7 0=FVRは無効
    1=FVRは有効
bit6 0=FVRは安定していない
    1=FVRは安定している
bit5−4 FVRの電圧選択ビット
    00=使用されない
    01=1.024V(x1)
    10=2.048V(x2)
    11=4.096V(x4)
bit3−0 未実装:’0’が読み出される

[REFCON1レジスタ]

[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet
bit7 0=DACは無効
    1=DACは有効
bit6 ここはよくわかりません。負電圧出力設定?’1’で使うことにします。
bit5 0=DACはCVREF端子から切り離される
    1=DACはCVREF端子からも出力される
bit4 未実装。’0’が読み出される
bit3−2 DACのプラス側電源選択ビット
    00=VDD
    01=VREF+
    10=FVR出力
    11=使用されない
bit1 未実装。’0’が読み出される
bit0 DACのマイナス側電源選択ビット
    0=VSS
    1=VREF−

[REFCON2レジスタ]

[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet
bit7−5 未実装。’0’が読み出される
bit4−0 DAC出力電圧選択ビット
普通の使い方(REFCON1<3:0>=00x0)のときはVOUT=VDD*DAC1R<4:0>/32
Note1:ここは何を言っているのかよくわかりません。電圧の選択を示すビットの並びは常に右詰です、ということのようです。

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

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

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

PIC−USBIO using BASIC[第169回]
2023.1.28upload

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