【D/Aコンバータの種類と内部構成】
F1ファミリに内蔵さえているD/Aコンバータは、抵抗ストリング型のD/Aコンバータとなっており、
ファミリによって分解能が5ビット、8ビット、9ビットの3種類があります。
その内部構成は下図のようになっています。
抵抗ストリングの両側に電圧を加えてその間を分圧した電圧を出力します。
この分圧の分解能がビット数に依存し、5ビットで32ステップ、8ビットで256ステップ、
9ビットで512ステップとなります。
VREF+側の電圧とVREF-側の電圧は複数の選択肢の中から選ぶことができます。
ここで外部ピンを選択すれば自由な電圧範囲で出力させることもできます。
通常は内蔵のA/Dコンバータやコンパレータ用のリファレンスとして使いますが、
出力を外部ピンに出すこともできます。しかし駆動電流が小さいので、通常は
オペアンプバッファで駆動電流を大きくして使います。
出力は1系統のものと2系統のものがあります。上図は2系統の場合を示しています。
動作速度はセトリングタイムで10μsecとあまり高速ではありません。
【D/Aコンバータの制御レジスタ】
D/Aコンバータの設定制御をするための制御レジスタは下図となっています。
この例はPIC16F170xシリーズに内蔵されている8ビット分解能のD/Aコンバータ
となります。
上図の制御レジスタを使って設定する手順は次のようになります。
@DAC1CON0レジスタで電圧源の選択を行う
DA1CPSSでVRFE+側の電圧、DA1NSSでVREF-側の電圧を選択
ADA1OE1、DA1OE2で外部出力をするしないを設定
BDAC1CON1レジスタで分圧した電圧を設定
CDAC1ENでD/Aコンバータの動作開始
DVREF+でFVRを選択した場合
下記の定電圧モジュール(FVR)の設定も必要となります。
【FVRの構成と制御レジスタ】
F1ファミリに内蔵されている定電圧リファレンスモジュールの構成は
下図(a)のようになっています。
元となる安定な定電圧を生成するブロックがあり、この電圧をアンプで1倍、2倍、4倍
にして出力します。
このアンプが2系統あり、A/Dコンバータ用とコンパレータその他用に独立に用意されて
いますので、異なる電圧として供給することもできます。
定電圧リファレンスモジュールの設定制御用レジスタの詳細は、下図(b)となっています。
出力電圧の設定と状態監視を行うことができます。
定電圧ブロックは、FVRENビットで有効にすることもできますし、この定電圧を必要とする
モジュールが有効化されると自動的に有効になり定電圧を供給します。
定電圧リファレンスモジュールは、有効化されてから出力が安定になるまで、わずかですが
時間がかかります。この間の状態を示すため、FVRRDYビットが制御レジスタの中に
用意されています。
使い方は次の手順で行います。
@電圧の選択
CDAFVRかADFVRで電圧を選択する。電源電圧で選択範囲が制限されるので
注意が必要です。
AFVRの有効化
FVRENビットをセットしてFVRを有効化します。
【D/Aコンバータの使い方】
実際のFVRとD/Aコンバータの設定例は下記のようになります。
例ではFVRのコンパレータ用出力を2.048Vに設定し、これをD/Aコンバータの
VREF+とします。
これで8ビットのD/Aコンバータは、2048mV÷256 = 8mV となりますから
8mVステップで出力を0から2048mVの範囲で設定できることになります。