23.   Der Analogvergleicher

23.1   Übersicht

Der Analogvergleicher vergleicht die Spannungen am positiven Eingang Pin AIN0 und am negativen Eingang Pin AIN1 miteinander. Wenn die Spannung am positiven Eingang größer als die am negativen Eingang ist, wird der Komparator-Ausgang auf 1 gesetzt. Der Ausgang kann den Zähler-Zeitgeber-Interrupt oder einen eigenen Interrupt triggern, der nur für den Analog­vergleicher vorgesehen ist. Der Anwender kann auswählen, ob der Interrupt mit der steigenden oder fallenden Flanke des Komparator-Ausgang oder durch einen Zustandswechsel getriggert wird. Das Blockdiagramm mit der dazugehörigen Logik zeigt das nachfolgende Bild.

Das Leistungsreduktionsbit PRADC, siehe „Leistungsreduktion“, muss deaktiviert werden, um den Multiplexer des A/D-Wandlers zu nutzen.

Bild 23-1: Blockschaltbild des Analog­vergleichers(2)
Hinweise:
  1. Siehe Tabelle 23-1
  2. Siehe Bild 1-1 und Tabelle 13-9 für die Pinzuordnung

23.2.   Vielfacher Komparator-Eingang

Es ist möglich jeden der ADC7 bis ADC0 Pins als negativen Eingang für den Komparator zu verwenden. Für die Auswahl wird der Multiplexer des A/D-Wandlers (ADU) verwendet, so dass der ADU konsequenterweise ausgeschaltet sein muss, um diese Möglichkeit zu nutzen. Wenn das Analog­vergleicher-Multiplex-Bit (ACME im ADCSRB) gesetzt ist und der ADU ausgeschaltet ist (ADEN in ADCSRA ist Null), wählen die MUX2- bis MUX0-Bits im ADMUX-Register den Pin aus, der als negativer Eingang für den Komparator verwendet wird. Wenn ACME gelöscht ist oder ADEN gesetzt ist, wird immer der AIN1-Pin als negativer Eingang für den Komparator verwendet.
Vielfacher Komparator-Eingang
ACMEADENMUX2..0Negativer Komparator-Eingang
0xxxxAIN1
11xxxAIN1
10000ADC0
10001ADC1
10010ADC2
10011ADC3
10100ADC4
10101ADC5
10110ADC6
10111ADC7

23.3   Registerbeschreibung

23.3.1   ADCSRB – ADC Steuer- und Statusregister B

Bit76543210
(0x7B)-ACME---ADTS2ADTS1ADTS0ADCSRB
ZugriffRR/WRRRR/WR/WR/W
Startwert00000000
Wenn dieses Bit logicsch Eins ist und der A/D-Wandler ausgeschaltet ist (ADEN in ADCSRA ist Null), wählt der A/D-Multiplexer den negativen Eingang des Komparators aus. Wenn Null, liegt AIN1 am negativen Eingang an. Eine genaue Beschreibung steht bei Vielfacher Komparator-Eingang.

23.3.2   ACSR — Analogvergleicher: Kontroll- und Statusregister

Bit76543210
(0x50)ACDACBGACOACIACIEACICACIS1ACIS0ACSR
ZugriffR/WR/WRR/WR/WR/WR/WR/W
Startwert00-00000
Wenn dieses Bit gesetzt wird, wird die Versorgung des Analog­vergleichers abgeschaltet. Diese Bit kann jederzeit gesetzt werden. Damit kann der Stromverbrauch im aktiven oder Idle-Modus reduziert werden. Wenn das ACD-Bit verändert wird, sollte vorher das ACIE-Bit (Analog­vergleicher Interrupt­freigabe) gelöscht werden, da sonst versehentlich ein Interrupt durch das Ändern des ACD-Bits ausgelöst werden kann. Wenn diese Bit gesetzt wird, wird die positive Eingangsspannung von AIN0 durch eine interne Bandgap-Spannung am Eingang des Komparators ersetzt. Wenn das Bit gelöscht ist, liegt die Spannung von AIN0 am positiven Eingang des Komparators. Siehe Interne Spannungsreferenz. Dieses Bit ist taktsynchronisiert und direkt mit dem Ausgang des Vergleichers verbunden. Die Synchronisation beinhaltet eine Verzögerung von 1 bis 2 Taktzyklen. Dieses Bit wird durch die Hardware gesetzt, wenn ein Ereignis am Ausgang des ACO einen Interrupt auslöst, der mit ACI1 und ACI0 eingestellt wurde. Die Analog­vergleicher-Interrupt-Routine wird ausgeführt, wenn das ACIE-Bit und das globale Interrupt-Bit (I-Bit im SREG) gesetzt sind. Das ACI-Bit wird durch die Hardware gelöscht, wenn die dazugehörige Interrupt-Routine ausgeführt wird. Alternativ kann das Bit auch gelöscht werden, indem man eine logische 1 in das Flag schreibt. Wenn das ACIE-Bit und das globale Interrupt-Bit gesetzt sind, ist der Analog­vergleicher-Interrupt freigegeben. Wenn das Bit gelöscht ist, ist der Interrupt gesperrt. Wenn dieses Bit mit einer logischen 1 beschrieben wird, gibt das Bit die Input-Capture-Funktion für Zähler/Zeitgeber1 frei, die durch den Analog­vergleicher getriggert wird. Der Ausgang des Komparators ist in diesem Fall direkt mit der Input-Capture-Eingangs-Logik verbunden, so dass auch die Störungsunterdrückung und die Flanken-Einstellmöglichkeiten des Zähler/Zeitgeber1-Interrupts verwendet werden. Wenn das Bit auf 0 gesetzt ist, besteht keine Verbindung zwischen dem ACO und der Input-Capture-Funktion. Um den ACO zum Triggern des Zähler/Zeitgeber1 Interrupts zu verwenden, muss das TICIE1-Bit im Register TIMSK gesetzt sein. Mit diesen Bits wird vorgegeben, bei welchem Zustand des Komparators ein Interrupt ausgelöst werden soll. Die verschiedenen Möglichkeiten stehen in folgender Tabelle.
Tabelle 23-2: Einstellungen ACIS1/ACIS0
ACIS1ACIS0Interrupt-Modus
00Wechsel am ACO-Ausgang löst einen Interrupt aus
01Reserviert
10Eine fallende Flanke am ACO-Ausgang löst einen Interrupt aus
11Eine steigende Flanke am ACO-Ausgang löst einen Interrupt aus
Wenn diese Bits verändert werden, sollte vorher das ACIE-Bit (Analog­vergleicher-Interrupt­freigabe) im ACSR Register gelöscht werden, da sonst versehentlich ein Interrupt ausgelöst werden kann.

23.3.3   DIDR1 – Deaktivierung Digitaleingang Register 1

DIDR = Digital Input Disable Register
Bit76543210
(0x7F)------AIN1DAIN0DDIDR1
ZugriffRRRRRRR/WR/W
Startwert00000000
Diese Bits sind unbenutzt und liefern beim Lesen Null. Diese Bits deaktivieren den digitalen Eingangspuffer der Eingänge AIN1 bzw. AIN0, wenn auf logisch Eins gesetzt. Das entsprechende PIN-Register-Bit liefert dann stets Null. Wenn analoge Signale an AIN1/0 angelegt werden, sollten diese Bits gesetzt werden, um den Stromverbrauch des digitalen Eingangs zu senken.
Ansonsten praktisch ruhestromfreie CMOS-Gatter nehmen bekanntermaßen einen merklichen Strom auf, wenn das Eingangssignal nicht nahe den Betriebs­spannungs­grenzen liegt.