Das Modul vergleicht die Spannungspegel des positiven (CA0) und negativen Eingangs (CA1). Beim MSP430F1612 sind diese mit den Pins P2.3 und P2.4 verbunden. Das Flag CAOUT im Register CACTL2, das in Bild 6.2 dargestellt ist, entspricht dem Ausgang des Komparators. Es ist HIGH, wenn der Spannungspegel am positiven Eingang größer als der am negativen Eingang ist.
Über Software-Schalter können die Eingänge mit den Pins verbunden werden. Die Bits P2CA0 bzw. P2CA1 sind hierfür zuständig. Sind sie HIGH, so sind die Komparator-Eingänge verbunden. Auf das Bit CAF kommen wir später noch zurück.
Der Comparator A wird mit einem weiteren Register, dem Comparator-A-Control-Register 1 (CACTL1) konfiguriert, das in Bild 6.3 dargestellt ist. Hierbei beachtenswert sind vor allem die Bits CAREF, mit dem die Referenzspannung V CAREF festgelegt wird, CARSEL, das festlegt, welchem der beiden Eingänge die Referenzspannung zugeordnet wird und CAON, mit dem der Comparator A aktiviert und deaktiviert werden kann.
Mit dem Bit CAEX können die Eingänge des Comparator-A-Moduls während der Programmlaufzeit vom Entwicklerprogramm intern vertauscht werden. Je nach Status des Bits CAEX ergibt sich dann für das Flag CARSEL folgende Zuordnung (Tabelle 6.1):
CARSEL | CAEX | Zuweisung der Referenzspannung |
0 | 0 | V CAREF wird dem positiven Eingang zugewiesen |
0 | 1 | V CAREF wird dem negativen Eingang zugewiesen |
1 | 0 | V CAREF wird dem negativen Eingang zugewiesen |
1 | 1 | V CAREF wird dem positiven Eingang zugewiesen |
Tabelle 6.1.: | Zuordnung der Referenzspannung für die Comparator-A-Eingänge in Abhängigkeit von CARSEL und CAEX. |
Die Referenzspannung selbst wird intern mit einem Referenzspannungsgenerator erzeugt. Zur Auswahl stehen hierfür die Referenzspannungen 0.25 ⋅V CC (CAREF = 01), 0.5 ⋅V CC (CAREF = 10) und eine Diode als Referenz (CAREF = 11). Wenn man beide Eingänge des Komparators verwendet, so wird eine Referenzspannung nicht benötigt, weil das Modul dann bipolar betrieben wird. Um Energie zu sparen, kann dann der Referenzspannungsgenerator mit CAREF = 00 ausgeschaltet werden.
Eine Besonderheit des Comparator-A-Moduls ist der integrierte RC-Filter, der mit dem Bit CAF = 1 im Register CACTL2 aktiviert werden kann. Wenn die Spannungsdifferenz der beiden Komparator-Eingänge klein ist, so kann das analoge Eingangssignal durch Rauschen soweit überlagert werden, dass das CAOUT-Bit vielfach zwischen HIGH und LOW wechselt. Eine sinnvolle Interpretation des Comparator-A-Ausgangs ist dann gegebenenfalls nicht möglich. Für diesen Fall kann mit dem internen RC-Filter der Eingang vorgefiltert werden. Bild 6.4 skizziert den Unterschied des Ausgangssignals der analogen Umwandlung ohne und mit Vorfilter für eine kleine Differenz ΔU am Eingang.
Bild 6.4.: | Einfluss des internen RC-Filters auf das Comparator-A-Ausgangssignal bei Eingangssignal in der Nähe der Schaltschwelle und überlagertem Rauschen |
Die drei noch fehlenden Bits CAIES, CAIE und CAIFG sind für die Interrupts des Comparator-A-Moduls zuständig. Mit dem CAIE-Bit wird die Interrupt-Funktionalität aktiviert. CAIES legt fest, ob der Interrupt bei steigender (CAIES=0) oder fallender Flanke ausgelöst wird, CAIFG ist das eigentliche Interrupt-Flag.
Es existiert noch ein weiteres Register, das CAPD- (Comparator-A-Port-Disable) Register. Parallel zu den Eingängen des Komparators liegen die CMOS-Puffer der digitalen Schaltlogik der Portpins. Werden nun analoge Spannungen an die CMOS Puffer angelegt, können dort kleine parasitäre Ströme fließen, speziell in der Nähe der Schaltschwelle des digitalen Gatters. Um genaue Messungen am analogen Komparator zu ermöglichen, können die Gatter des entsprechenden Pins mit den jeweils zugehörigen Bits des CAPD-Registers abgeschaltet werden. Das Setzen von CAPD3 schaltet somit das digitale Gatter von Portpin P2.3 ab.