見出し画像

マイコンde学習しよう(レッスン9)AVR128DA28

「アナログコンパレータ」


<目的>
アナログコンパレータについて学ぶ。

<動作概要>
VR1 を回し、その電圧が比較電圧より高くなるとLED3 が点灯する。

<レジスタ説明>

使用するアナログコンパレータ機能であるACn毎に設定/参照すべき下記レジスタがあります。(使用するレジスタのみ抜粋しています)

CTRLAレジスタ

RUNSTDBY:スタンバイ動作 1:許可
OUTEN:OUT端子出力許可  1:許可
ENABLE :AC動作許可  1:許可


MUXCTRLレジスタ

INVERT:比較結果反転  1:反転
MUXPOS[2:0] :下表参照
MUXNEG[2:0] :下表参照

MUXPOS[2:0]ビット
MUXNEG[2:0]ビット

DACREFレジスタ

STATUSレジスタ

CMPSTATE:AC状態 比較結果が入る。


使用するVREF機能に設定すべきレジスタは下記です

ACREFレジスタ
REFSEL[2:0]ビット

MUXCTRL レジスタでAC 正入力とAC 負入力を選択します。
本基板では正入力をAINP0、負入力をDACREF としています。

ピン割当て表

ピン割当て表において、ACの列を見ると、PD2 のところに0,AINP0 1,AINP0 2,AINP0 と書かれています。
これはAC0、AC1、AC2 においてPD2 をAINP0 に割り当てることを意味し、今回はAC0 を使います。
負入力はVDACREFであり、VREF.ACREF レジスタの設定値とAC0.DACREFレジスタの値から次の計算式で決まります。
VDACREF = VREF.ACREF x AC0.DACREF / 256

また、結果をOUT 端子から出力しますが、前述の表において、ACの列を見ると、PA7 のところに0,OUT 1,OUT 2,OUTと書かれています。
これはAC0、AC1、AC2 においてPA7 をOUT に割り当てることを意味します。


<プログラム>

ここから先は

2,529字 / 1画像 / 1ファイル
この記事のみ ¥ 200
期間限定 PayPay支払いすると抽選でお得に!

この記事が気に入ったらサポートをしてみませんか?