PIC三昧(9) FVR(固定参照電圧源)を使ってみる、PIC16F18855

Joseph Halfmoon

前回は内蔵アナログコンパレータを使って外部電圧2つを比較してみました。今回はアナログコンパレータの入力電圧の一方を内蔵のFVR(FIXED VOLTAGE REFERENCE)としてみます。ありがちな1.024Vとその2倍、4倍の電圧が内部のADC、DACそしてコンパレータで参照できるようになってます。便利。

※『PIC三昧』PIC関係の記事総目次はこちら

PIC16F18855のデータシートの?な点

今回も手元のデータシートに?な点を見つけてしまいました。もしかして手元の奴はかなり古いの? DS40001802Dという番号のデータシートです。 問題個所は、16.0 FIXED VOLTAGE REFERENCE(FVR) の冒頭付近、FVRの参照電源出力を接続できる先について列挙しているところです。コンパレータに対しては

“Comparator positive input”

と書かれているのです。しかし、COMPARATOR側の図ではpositive側でもnegative側でも接続できるように描かれてます。また、MCCの設定画面でもどちらでも接続できるようになってます。そしてnegative側に接続して実験してみましたが動作OKっす。コマケー話を気にするなと?

MCC Classicを使ってコンフィギュレーション

今回は、CMP2とFVRという2つのペリフェラルを使うので、MicroChip社MPLAB X IDEの自動コンフィギュレーションツールMCC(いつものようにClassic版)を使ってDevice Resourcesから対象リソースをProject Resourcesへ取り込む必要があります。取り込み前のDevice Resourcesの様子が以下に。

FVR_DEV_Resources

上記のCMP2とFVRの左にある緑の十字マークをクリックすればリソースがプロジェクトに追加されます。なお、CMP1でなくCMP2を使う理由は前回に。またFVRは行先別に2チャンネルあるのですが、リソースとしては1個みたいです。

FVRの設定が以下に。FVR_buffer1 がADC向けで、FVR_buffer2がDACとCMP兼用です。今回はコンパレータで使うのでFVR_buffer2一択です。1x、2x、4xと倍率が選択できるのですが、今回は2xとしてみました。電圧としては2.048V(キリの良い目出度い数字ですぞ、2進ならば。レゾリューション1mVとな。)

FVR_setting

一方 CMP2の設定が以下に。Negative Inputの方をFVRにしてあるのが見えますか。前回は外部端子に向けてあったところ。CMP2_setting

以下がピンマネージャの設定です。コンパレータのネガティブ入力の設定以外は前回と同じ。PinMGRsetting

 

自動生成されたソースに書き込むのはLチカ部分のみ

MCCにより自動生成されるソースにより必要なハードウエア設定が成されるので、main()関数側では前回同様にPort Aの3番端子にソフトでLチカするのみ。これまた前回同様。

実験用の回路

以下に実験に使った回路を掲げます。青の点線内がEVAボード搭載部分のうち今回関係する部分です。前回PB1に接続していたコンパレータのネガティブ側入力を外しただけ。PIC_FVR_DUT_schematic

実験結果

まずはコンパレータの比較結果が「ギリ」OFF(RA0がLOW出力)のときのRB0端子の入力電圧。2.021Vとな。2.048Vよりは低いね。

CMP_OFFつづいてコンパレータの比較結果が「ギリ」ON(RA0がHIGH出力)のときのRB0端子の入力電圧。2.095Vとな。2.048Vより高いわな。CMP_ON


予定通りの挙動で嬉しいよ。

PIC三昧(8) アナログ・コンパレータを使ってみる、PIC16F18855 へ戻る

PIC三昧(10) NCO(数値制御発振器)を使ってみる、PIC16F18855 へ進む