아날로그 비교기는 양극성 입력핀 AIN0, 음극성 입력핀 AIN1의 입력전압을 비교하여 만약 AIN0의 전압이 높으면 출력 ACO가 1로 되고 AIN1의 전압이 높으면 출력 ACO가 0으로 되는 회로이다.
양극성 입력(positive input)에는 AIN0로 입력된 전압, 내부의 기준전압(bandgap reference voltage, 1.23V)이 사용될수도 있다.
음극성 입력(negative input)에는 AIN1로 입력된 전압, A/D 컨버터의 입력신호 ADC0 ~ ADC7 중 하나가 사용될수도 있다.
◆ 아날로그 비교기 인터럽트 벡터
Vector NO.
Program Address
Source
Interrupt Definition
24
0x002E
#pragma vector = ANA_COMP_vect
Analog Comparator
◆ 아날로그 비교기 레지스터
ACSR(Analog Comparator Control and Status Register) : 아날로그 비교기 제어 및 상태 레지스터
이 레지스터는 아날로그 비교기의 기능을 설정하거나 동작 상태를 표시하는 기능을 수행한다.
7
6
5
4
3
2
1
0
ADC
ACBG
ACO
ACI
ACIE
ACIC
ACIS1
ACIS0
R/W
R/W
R
R/W
R/W
R/W
R/W
R/W
- ADC(Analog Comparator Disable)
아날로그 비교기의 동작을 금지시키는 비트이다.
1로 설정하면 아날로그 비교기에 공급되는 전원을 차단하여 동작을 정지 시키고 소비전력을 감소 시킨다.
- ACBG(Analog Comparator Bandgap Select)
아날로그 비교기의 양극성 입력이 인가되는 전압을 선택한다.
1로 설정하면 내부 기준잔압 1.23V가 선택되고
0으로 설정하면 AIN0 단자로 입력된 전압이 선택된다.
- ACO(Analog Comparator Output)
아날로그 비교기의 출력값으로서 클럭과 동기되어 발생된다.
이 값은 그대로 ACO 신호로 전달되어 인터럽트를 발생하거나 타이머/카운터1의 입력캡처 트리거 신호로 사용된다.
- ACI(Analog Comparator Interrupt Flag)
아날로그 비교기의 인터럽트 발생 플래그 이다.
이 비트는 아날로그 비교기의 출력과 ACIS1 ~ 0 비트의 설정에 따라 결정된다.
ACIE = 1, 상태 레지스터(SREG) I비트가 1일 경우에 인터럽트가 처리된다.
- ACIE(Analog Comparator Interrupt Enable)
아날로그 비교기의 인터럽트 발생을 개별적으로 허용하는 비트이다.
- ACIS1 ~ 0(Analog Comparator Interrupt Mode Select)
아날로그 비교기의 출력이 인터럽트를 발생하는 모드를 설정한다.
ACIS1
ACIS0
Interrupt Mode
0
0
출력의 하강, 상승 에지에서 아날로그 비교기의 인터럽트 발생
(Comparator Interrupt on Output Toggle)
0
1
reserved
1
0
출력의 하강 에지에서 아날로그 비교기의 인터럽트 발생
(Comparator Interrupt on Faling Output Edge)
1
1
출력의 상승 에지에서 아날로그 비교기의 인터럽트 발생
(Comparator Interrupt on Rising Output Edge)
SFIOR(Special Function IO Register) : 특수 기능 I/O 레지스터
이 레지스터는 아날로그 비교기의 입력신호를 설정하는데 사용된다.
7
6
5
4
3
2
1
0
TSM
-
-
-
ACME
PUD
PSR2
PSR10
R/W
R/W
R
R/W
R/W
R/W
R/W
R/W
- ACME(Analog Comparator Multiplexer Enable)
아날로그 비교기의 음극성 입력에 A/D 컨버터의 입력신호가 사용될 수 있도록 허용한다.
이 비트를 0으로 하면 음극성 입력에는 AIN1로 입력된 전압이 사용되며,
이 비트를 1로 하고 ADCSRA 레지스터에서 ADEN = 0 으로 설정하여 A/D 컨버터의 동작을 정지시키면 ADC0 ~ 7 중의 하나를 선택하는 것은 ADMUX 레지스터의 MUX2 ~ 0 비트로 설정한다.