Wenn es beim Messen auf hohe Genauigkeit ankommt, brauchen Sie einen A/D-Wandler wie den ADC128D818. Er bringt einige interessante Funktionen mit.
In Teil 9 dieser Reihe haben Sie den A/D-Wandler PCF8591 [1] kennengelernt, der für viele Anwendungen durchaus ausreicht. Geht es aber darum, sehr genaue Messungen vorzunehmen, greifen Sie besser zu einer Alternative wie dem ADC128D818 von Texas Instruments. Mit einer Auflösung von 12 Bit leistet er bei Messaufgaben hervorragende Dienste. Darüber hinaus haben die Entwickler einige Extras verbaut, die den Baustein für RasPi-Bastler besonders interessant machen.
Der ADC128D818 [2] verfügt über acht Kanäle sowie einen eingebauten Temperatursensor und eignet sich für den Betrieb am I2C-Bus. Der Bereich für die Betriebsspannung reicht von 3 bis 5,5 Volt. Intern verfügt der Baustein über 35 – verwirrenderweise nicht linear durchadressierte – Register, die abhängig vom Betriebsmodus unterschiedliche Funktionen aufweisen.
Für Bastler unangenehm ist die Bauform des Gehäuses, TSSOP, die das Löten erschwert. Um den ADC128D818 erst einmal auf einem Breadboard auszuprobieren, benötigen Sie einen Adapter [3], der die Anschlüsse im üblichen Rastermaß bereitstellt. Abbildung 1 zeigt die Pinbelegung des Bausteins.
Die Hardware stellt zwei Pins bereit, um die I2C-Adresse einzustellen. Als Leser dieser Artikelreihe wissen Sie, dass dies normalerweise vier Adressen ermöglicht. Nicht so beim ADC128D818: Hier besteht die Möglichkeit, die Leitungen nicht nur HIGH und LOW anzulegen, sondern zusätzlich noch MIDDLE, also mit der Hälfte der Betriebsspannung. Mit diesem dritten logischen Zustand lassen sich nicht nur vier Adressen nutzen, sondern neun. Das erklärt, warum wir im Testaufbau an die Pins A0 und A1 je ein Poti anschließen können.
In der Tabelle “ADC128D818: I2C-Adressen” sehen Sie die möglichen Beschaltungen der Leitungen für die Adresse. Das Datenblatt [4] des Bausteins beinhaltet alles, was es noch über diesen Halbleiter zu wissen gibt.
ADC128D818: I<+>2<+>C-Adressen
|
A1 |
A0 |
Adresse |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Register im Detail
Wie eingangs schon erwähnt, hat der ADC128D818 eine Menge Register, was es erlaubt, ihn flexibel an unterschiedliche Anwendungsfälle anzupassen. Die Tabelle “ADC128D818: Interne Register” vermittelt einen Überblick über die vorhandenen Register und deren Funktionen.
Der ADC128D818 verfügt über komplexe Möglichkeiten zum Verarbeiten der Interrupts und arbeitet bei Bedarf in unterschiedlichen Modi. Neben dem bereits erwähnten internen Temperatursensor steht ein mehrstufiger Energiesparmodus bereit.
ADC128D818: Interne Register
|
Register |
Funktion |
Anmerkung |
|---|---|---|
|
|
Steuerregister |
Bit 0 |
|
|
Interrupt-Register |
Zeigt das Erreichen der Schwellwerte für jeden Kanal einzeln an. |
|
|
Interrupt-Steuerregister |
(De-)Aktivieren der Interrupt-Ausgabe auf den Pin 6. (INT) pro Kanal. |
|
|
Wandelmodus |
Bit 0 schaltet zwischen Energiesparmodus und kontinuierlichem Messen um. |
|
|
Steuerregister-Eingangskanäle |
Eingangskanäle einzeln deaktivieren. |
|
|
Steuerregister-Einzelmessung |
Sobald Sie das Bit 1 auf |
|
|
Energiesparmodus |
Sobald Bit 0 auf |
|
|
Erweiterte Einstellungen |
Mit Bit 0 wählen Sie zwischen interner und externer Referenzspannung. Dabei definiert |
|
|
Registerstatus |
Bit 0 bleibt |
|
|
Messwerte der Eingänge |
Worte, keine Bytes (siehe Datenblatt). |
|
|
Grenzwert-Register der Eingänge |
Worte, keine Bytes (siehe Datenblatt). Dieses Register definiert die Grenzwerte für die Interrupts. |
|
|
ID des Herstellers |
– |
|
|
ID der Version |
– |
Testaufbau
Für den Testaufbau kommt die in Teil 9 dieser Reihe schon installierte C-Umgebung zum Einsatz. Damit das Testprogramm etwas hermacht, erhält es in diesem Teil eine hübsche GTK-Benutzeroberfläche. Infos zum Toolkit und eine Anleitung zur Installation finden Sie im Kasten “GTK+”. Der Testaufbau der Hardware erfolgt auf dem Breadboard (Abbildung 2).

Abbildung 2: Der Testaufbau auf dem Breadboard ermöglicht einen einfachen ersten Test des Bausteins.
GTK+
Mit dem Gimp Toolkit [6] erstellen Sie komponentenorientierte Oberflächen. Es beinhaltet viele Steuerelemente, mit denen Sie leicht eigene kleine grafische Anwendung entwickeln. Das GTK+ steht für den RasPi in der Version 3 bereit. Sie installieren es mit den bekannten Bordmitteln (Listing 1, Zeile 1 bis 3). Außerdem benötigen Sie das Terminalprogramm Xterm (Zeile 4), um die Verbindung zwischen RasPi und PC zu testen.
Um die Ausgabe des Mini-Rechners auf den Desktop-PC umzuleiten, gibt es mehrere Möglichkeiten. Die einfache und sichere Variante besteht darin, beim Aufbau der SSH-Verbindung X11-Forwarding zu aktivieren. Das erledigen Sie mit dem Parameter -X des SSH-Befehls (Zeile 5). Den Hostnamen raspi ersetzen Sie durch den korrekten Wert für Ihren Host. Um das zu testen, starten Sie nun das X-Terminal und legen es mit dem Ampersand & in den Hintergrund – so blockiert es nicht die SSH-Sitzung (Zeile 6).
Nach einigen Sekunden öffnet sich ein Terminal, in dem Sie wie gewohnt auf dem RasPi arbeiten. Das signalisiert gleichzeitig, dass das Weiterleiten der Anfragen an den X-Server funktioniert hat.
Listing 1
$ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install libgtk-3-dev $ sudo apt-get install xterm $ ssh pi@raspi -X $ xterm & [1] 27328
Abbildung 3 zeigt den Schaltplan. Interessant dabei sind die Potis zum Einstellen der I2C-Adresse (siehe Tabelle “ADC128D818: I2C-Adressen”). Für einen ersten Test rufen Sie im Terminal das Tool I2cdetect auf. Der Baustein sollte sich unter der Adresse 0x1D melden, sofern die zwei Potis für die Adresse auf LOW stehen (Listing 2).







