2018年12月23日日曜日

PIC18F47K40のD/Aコンバーター

次の案件が催促来ておりまして、注文書も来ていないものの、
予備実験だけは進めている状況。

この案件ではI/Oの要件が増えておりまして、
アナログ入力は既に動いている回路があるので問題無いとしても、
今回新たにアナログ出力というのが必要になりました。

とは言ってもそんなにややこしい話ではなく、
D/Aコンバーターでアナログ電圧を生成すればいいという感じ。

しかしうちの「かんたんスマートモニター」、D/Aコンバーターを使うことは想定してない!!
なので、SPI接続で外付けD/Aコンバーターの石を使おうかと思ったものの、
改めてよく調べてみると、18F47K40内蔵のD/Aコンバーター出力が使えそう。
オプションのアナログ入力用に割り当てられていたのです。
このピンにはプルダウン抵抗しか付いていない為、
このままアナログ出力に切り替えても問題無いはず。

というわけで、急遽外付けD/Aコンバーターを止めて、
内蔵D/Aコンバーターを使用する方向に変更することにしました。

ちなみにこの内蔵D/Aコンバーターは5bitなので、分解能は32段階しかありません。
ちょっとプアーな感じですが、幸い今回の案件では32段階でも十分すぎるので、
この程度のD/Aコンバーターでも、使い道あるもんだなぁと ちと感心した次第。

ともあれ、全PICを通し、D/Aコンバーターは一度も動かしたことが無いので、
まずはテストしてみることにしました。
D/Aコンバーターから電圧を出すだけのプログラムを書いて走らせると・・・・・・
あれ??電圧が出てこない?

ポートの設定周りを再確認してみたものの、状況変らず。
改めてマニュアルを よーく読んでみると・・・・・・・
D/Aコンバーター用のFVR出力が、コンパレーター用と兼用になってました。
コンパレーターは使用しないので、FVRの出力を切ってあったんですね。
その為、D/Aコンバーターに基準電圧が供給されていなかったというオチ。
レジスタの名称に騙されました。(;;

ちと脱力したものの、とりあえず電圧が出てくるようになったので一安心。
と思いきや、電圧値をよーく見ると、なんか値が低い気が?

エクセルで理論値を計算し、実測値と比較していくと、確かに全域で出力電圧が低い。
中間部では理論値の半分くらいしか出ていない場合もあります。
まさかと思い、唯一繋がっているプルダウン抵抗を外してみると、理論値近くまで上がった!!
たった10KΩのプルダウン抵抗で こんなに影響出るとは・・・・・・・

どうやらこのD/Aコンバーター、出力バッファが無い模様。
なのでこのD/Aコンバーターを使用するならば、直近にバッファアンプが必須ですね。
バッファアンプを付けるとしたらオプション基板上になってしまうので、
直近というわけにはいかないんですよね。

うーーーん、どうしたもんか・・・・・・・・

0 件のコメント:

コメントを投稿