Anbindung analoger Komponenten an Mikrocontroller GPIO-Ports - Multitalente der I/O-Kommunikation

GPIO-Ports sind zwar als Schnittstelle zu anderen digitalen Chips konzipiert, doch die neuesten Entwicklungen machen diese Ports zunehmend interesssant als Brücke zu Analogschaltungen. Die hier vorgestellten Beispiele reichen von Überwachungsschaltungen bis zur Fehlerbehandlung.

Die Schnittstelle zwischen analogen und digitalen Systemen ist nicht immer ein A/D- oder D/A-Wandler, sondern es kann auch ein General-Purpose-I/O-PortPin (GPIO) sein. Die intelligente Verbindung von analogen Knoten mit den GPIO-Pins eines Mikrocontrollers erweitert das Leistungsspektrum der analogen Funktionseinheiten. Beispiele hiefür sind: Selbsttest- und Selbst-Kalibrierungs-Betriebsarten, Low-Power-Modi, Echtzeit-Fehlerprüfung und -Aufzeichnung oder Rückkehr zu einem sicheren Modus im Fehlerfall.

Ein typisches GPIO-Interface ist in der Lage, nicht nur jeden einzelnen Port-Pin in den High- bzw. Low-Zustand zu versetzen, sondern auch Pins in einen hochohmigen Modus zu schalten, so dass jeder damit verbundene Knoten nur eine geringe Last „sieht“. Dadurch ist es der analogen Schaltung einerseits möglich, wie üblich zu arbeiten, andererseits lässt sich bei Bedarf ein erwünschter Zustand einstellen: Beispiele dafür sind ein definierter Anfangszustand nach dem Einschalten (Power-up) oder das Anlegen bestimmter Signale beim Selbsttest-Modus.

Aktuelle GPIO-Interface-Designs enthalten zusätzliche Features wie programmierbare Weak-pull-up-/ Weak-pull-down-Lasten sowie eine programmierbare Treiberstärke.

Die jüngste Generation von kostengünstigen RISC-Mikrocontrollern bietet dem Analogdesigner zahlreiche Möglichkeiten, die Leistungsfähigkeit seiner Entwürfe durch zusätzliche Funktionen, neue Features, erhöhte Zuverlässigkeit und Sicherheit zu steigern. Zu diesen Features zählen beispielsweise On-Chip-Peripheriefunktionen wie Mehrkanal-A/D-Wandler, Zähler/ Timer zur Erzeugung von PWM-Ausgangssignalen und zur hochgenauen Messung/Steuerung von Impulsen sowie ein leistungsfähiger DSP mit von der CPU unabhängigen Befehls- und Datenbussen.

I/O-Ports können aktiv steuern

Obwohl die GPIO-Ports eines Mikrocontrollers grundsätzlich als Interface zu anderen digitalen Chips konzipiert sind, weisen die jüngsten Entwicklungen Eigenschaften auf, die sie zunehmend attraktiv auch als Schnittstelle für Analogschaltungen werden lassen. Zusätzlich zum digitalen Ein- und Ausgang enhalten diese Designs programmierbare Pull-up-/Pull-down-Lastbausteine sowie alternative Funktionen, bei denen On-Chip-Peripherieeinheiten wie UARTs, Zähler/Timer, Codec-Schnittstellen usw. die Steuerung der Portfunktionen übernehmen.

Bild 1 illustriert die komplette GPIO-Port-Architektur der Embedded-Controller-Familie CP3000 von National Semiconductor – zur besseren Übersicht ohne Interrupt- und Wake-up-Funktionen.

Die GPIO-Architektur ist explizit dafür konzipiert, eine aktive Steuerkonfiguration (active-drive configuration) zu unterstützen, bei der der Inhalt des Datenausgaberegisters zu den Port-Pins geleitet wird, wenn das Richtungsregister die Ausgangsrichtung auswählt.

Der Port lässt sich aber auch in einer invertierenden Open-Drain-Konfiguration einsetzen, indem der Inhalt des Datenausgaberegisters gelöscht wird und die Ausgangszustände in das Richtungsregister geladen werden. In dieser Konfiguration versetzt jedes im Richtungsregister gesetzte Bit den entsprechenden Port-Pin in den Low-Zustand. Zu Null gelöschte Bits zählen die Eingangsrichtung aus, womit der Ausgangstreiber deaktiviert wird. Eine ähnliche Technik erweist sich als nützlich bei einer analogen Schnittstelle, weil durch das Konfigurieren der Ports als Eingänge jeder Port jeden von der Hardware zugelassenen Zustand einnehmen kann: Low, High, Weak-pull-down und Weak-pull-up.

Je nach Gehäusevariante verfügt der CP3000 über bis zu zehn A/D-Wandler-Eingänge, die mittels dedizierter Pins so implementiert sind, dass eine Kopplung zwischen dem Rauschen des analogen und dem des digitalen Chip-Bereichs (Koppelrauschen) vermieden wird.

Die A/D-Wandler-Eingänge lassen sich als Single-ended- oder differenzielle Kanäle konfigurieren. Dabei bestimmt ein analoger Multiplexer, welcher Kanal an einen 10-bit-/ 10-µs-A/D-Wandler angeschlossen wird. Der Multiplexer-Ausgang (MUXOUT) und ein wählbarer A/D-Wandler-Eingang (ADCIN) sind an Pins herausgeführt, sodass ein externes Filter in den Front-End-Signalkonditionierungspfad eingefügt werden kann.

Bild 2 zeigt die A/D-Wandler-Architektur (die programmierbaren positiven und negativen Referenzspannungen sind hier aus Gründen der Verständlichkeit nicht angezeigt).

Digitale Interface-Optionen für Analogschaltungen

Bild 3 stellt die verschiedenen Schnittstellenarten dar, die zwischen einem digitalen Embedded-Controller und den Knoten einer Analogschaltung möglich sind. GPIO-Ports sind mit gesteuerten Knoten verbunden: Letztere können Spannungsquellen für Dividierer-Netzwerke oder Enable-/Disable-Eingänge für Verstärker und andere analoge Funktionen sein. GPIO-Ports können auch zur Überwachung analoger Knoten verwendet werden, deren Spannung sinnvolle Werte annehmen kann, wenn letztere als digitale Signale interpretiert werden.

Dies ist jedoch nur dann möglich, wenn die elektrischen Spezifikationen der GPIO-Ports Eingangssignale zulassen, deren Werte zwischen dem maximalen Pegel der logischen Low- und dem minimalen Pegel der High-Spannung liegen. Manche CMOS-Bausteine verbrauchen allerdings bei solchen Eingangswerten eine unzulässig hohe Leistung.

Die Steuerung von Knoten über GPIO-Ports ermöglicht die Implementierung von Low-Power-Modi. So können beispielsweise unbenutzte Widerstandsnetzwerke stromfrei geschaltet oder ganze Funktionsblöcke wie z.B. Verstärker (über Power-Control-Eingänge) abgeschaltet werden. Über GPIO-gesteuerte Knoten können auch Test- und Kalibrierungs-Modi implementiert werden. A/D-Wandler-Eingänge werden bei Knoten verwendet, die als analoge Signale lesbar sein müssen. Knoten, die zugleich überwachbar und steuerbar sein müssen, werden an die GPIO-Ports und an die A/D-Wandler-Inputs angeschlossen.