Ein weiteres Anwendungsbeispiel für das Comparator-A-Modul ist die Vermessung einer Kapazität mittels eines Kapazitäts-Frequenz-Umsetzers. Wie in der Application-Note ”PCB-Based Capacitive Touch Sensing With MSP430” [Tex07f] beschrieben, kann hierdurch ein berührungsloser Schalter realisiert werden, wie sie ähnlich auch in einem modernen PDA eingesetzt werden.
Bringt man auf einer Leiterplatte zwei Kontakte ringförmig zueinander an, so bilden diese eine, wenn auch kleine, Kapazität. Der Wert der Kapazität ist hierbei durch verschiedene Faktoren, wie Geometrie, Material, Isolationslack oder auch Verbindungsmedium bestimmt. Gerade dieses Verbindungsmedium kann vom Benutzer durch Auflegen eines Fingers deutlich verändert werden, Bild 6.7.
Eine Möglichkeit die Kapazität zu vermessen, ist sie in einem Oszillator als frequenzbestimmendes Element zu verschalten und dann die resultierende Frequenz des Oszillators zu messen. Für den Aufbau des Oszillators kann zum Beispiel der Komparator des MSP mit etwas zusätzlicher Programmlogik und wenigen externen Bauteilen verwendet werden, wie es in Bild 6.8 gezeigt ist.
Zum Verständnis der Schaltung fangen wir in einem Schaltzustand an. Der Kondensator ist
entladen, der Pin P.X steht auf HIGH. Damit beträgt die Vergleichsspannung am positiven
Komparatoreingang 2/3 VCC. Der Ausgang des Komparators ist somit auch HIGH und der
Kondensator wird geladen. Überschreitet die Kondensatorspannung die Referenzspannung, schaltet
der Komparator um. Damit geschieht zweierlei: Zum einen wird der Kondensator wieder entladen,
zum anderen wechselt auch die Referenzspannung und beträgt nun 1/3 VCC. Die beiden Zustände
(laden/entladen) wechseln sich periodisch ab, und eine von der Kapazität und deren
Vorwiderstand abhängige Frequenz stellt sich ein. Die Frequenz kann nun, wie wir es im
Kapitel 4 ja schon gelernt haben, mit Hilfe des Timer-A-Moduls relativ einfach gemessen
werden.
Auf der Software-Ebene müssen wir zunächst den Komparator, den Portpin und den Timer gemäß unserer Vorgaben initialisieren. Im Komparator-Interrupt zählen wir einfach jede steigende Signalflanke hoch. Der Timer definiert unsere Torzeit, das heißt in welchem Referenzintervall wir die Anzahl der Flankenwechsel zählen. Die Schalterauswertung selbst ist dann nur noch der Vergleich mit einem zuvor festgelegten Referenzwert.