ATmega328Pデータシート非公式訳:
23. アナログコンパレーター
23.1 概要
AIN0ピン(PD6)をプラス入力端子、AIN1ピン(PD7)をマイナス入力端子(基準電位)とするコンパレーターです。AIN0ピンの入力電圧のほうがAIN1ピンの入力電圧よりも高いときにアナログコンパレーター出力(ACO
ビット)がセットされます。アナログコンパレーター出力(ACO
ビット)をきっかけにしてタイマー1インプットキャプチャを実行するのも可能です。またアナログコンパレーター専用の割り込みも発生できます。割り込みのタイミングは、コンパレーター出力(ACO
ビット)の立ち上がり時、立ち下がり時、トグル時のいずれも指定できます。コンパレーターとその周辺ロジックのブロックダイアグラムを図23-1に示します。
ADコンバーターの省電力化ビットPRADC
は(略)
23.2 マイナス入力端子はAIN1ピン(PD7)以外にもADC7:0の中から選べる
アナログコンパレーターのマイナス入力端子には、AIN1ピン(PD7)の代わりにADC7:0のいずれのピンも指定できます。ADC7:0の各ピンは、ADコンバーターのマルチプレクサーを使って選択するため、ADC7:0の各ピンをアナログコンパレーターに利用するときはADコンバーターをオフにしなければなりません。(略)
23.3 レジスタの説明
23.3.1 ADCSRB - ADC Control and Status Register B
- ビット6 - ACME: Analog Comparator Multiplexer Enable
このビットが1であり、かつADCがオフ(ADCSRA
レジスタのADEN
ビットが0)のときは、ADコンバーターのマルチプレクサによってアナログコンパレーターのマイナス入力が選択されます。このビットが0のときは、AIN1ピン(PD7)がアナログコンパレーターのマイナス入力として使用されます。詳しくは(略)。
23.3.2 ACSR - Analog Comparator Control and Status Register
ビット7 - ACS: Analog Comparator Disable
このビットが1のときは、アナログコンパレーターへの電力が供給されません。(略)ビット6 - ACBG: Analog Comparator Bandgap Select
このビットが1のときは、内蔵バンドギャップ基準電圧がアナログコンパレーターのプラス入力として使われます。このビットが0のときは、AIN0ピン(PD6)がアナログコンパレーターのプラス入力として使われます。(略)ビット5 - ACO: Analog Comparator Output
ACO
ビットは、アナログコンパレーターの出力に応じて変化します。変化するまでに1~2クロックかかります。ビット4 - ACI: Analog Comparator Interrupt Flag
ACIS1
ビットとACIS0
ビットとで指定した割り込みモードがコンパレーター出力イベントによって発生したときに、このビットがセットされます。ACIE
ビットとSREG
レジスタのI
ビットとがセットしてある場合は、アナログコンパレーター割り込みルーチンが実行されます。ACI
は、対応する割り込みハンドリングベクタが実行されたときにハードウェアによってクリアされます。ACI
は、1を書き込んでもクリアされます。ビット3 - ACIE: Analog Comparator Interrupt Enable
ACIE
ビットとSREG
レジスタのI
ビットとがセットしてある場合は、アナログコンパレーター割り込みが有効化されます。ACIE
ビットが0のときは、アナログコンパレーター割り込みは無効化されます。ビット2 - ACIC: Analog Comparator Input Capture Enable
このビットが1のときは、アナログコンパレーターの出力をきっかけにしてタイマー1のインプットキャプチャ機能が実行できます。(略)アナログコンパレーターの出力をきっかけにしてタイマー1のインプットキャプチャ割り込みを発生させるときは、TIMSK1
(Timer Interrupt Mas Register)レジスタのICIE1
ビットをセットしなければなりません。ビット1:0 - ACIS1, ACIS0:Analog Comparator Interupt Mode Select
どのコンパレーターイベントでアナログコンパレーター割り込みを発生させるのかを指定します。(略)
(略)
23.3.3 DIDR1 - Digital Input Disable Register 1
ビット7:2 (略)
ビット1:0 - AIN1D, AIN0D: AIN1, AIN0 Digital Input Disable
このビットが1のときは、AIN1/0ピン(PD7/6)のディジタル入力バッファが無効化され、PIN
レジスタにおけるそれぞれのビットを読み出すと常に0です。AIN1/0ピン(PD7/6)をアナログ入力用として使用する場合、すなわちにAIN1/0ピン(PD7/6)をディジタル入力として使わない場合は、このビットを1にすればディジタル入力バッファでの消費電力が減らせます。