Profi-A/D-Wandler ADC128D818

© Pinkomelet, 123RF

Mehr Präzision

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.

Abbildung 1: Die Pinbelegung des ADC128D818 in der schematischen Darstellung.

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

LOW

LOW

0x1D

LOW

MID

0x1E

LOW

HIGH

0x1F

MID

LOW

0x2D

MID

MID

0x2E

MID

HIGH

0x2F

HIGH

LOW

0x35

HIGH

MID

0x36

HIGH

HIGH

0x37

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

0x00h

Steuerregister

Bit 0 LOW: Baustein im Energiesparmodus, Bit 0. HIGH: Baustein misst kontinuierlich. Bit 1 und Bit 3: Interrupt-Verarbeitung. Bit 7 HIGH: Register mit Vorgabewerten laden.

0x01h

Interrupt-Register

Zeigt das Erreichen der Schwellwerte für jeden Kanal einzeln an.

0x03h

Interrupt-Steuerregister

(De-)Aktivieren der Interrupt-Ausgabe auf den Pin 6. (INT) pro Kanal.

0x07h

Wandelmodus

Bit 0 schaltet zwischen Energiesparmodus und kontinuierlichem Messen um.

0x08h

Steuerregister-Eingangskanäle

Eingangskanäle einzeln deaktivieren.

0x09h

Steuerregister-Einzelmessung

Sobald Sie das Bit 1 auf HIGH setzen, misst der Baustein. Danach wechselt er wieder in den Energiesparmodus.

0x0Ah

Energiesparmodus

Sobald Bit 0 auf HIGH steht, wechselt der ADC128D818 in den Tiefschlafmodus.

0x0Bh

Erweiterte Einstellungen

Mit Bit 0 wählen Sie zwischen interner und externer Referenzspannung. Dabei definiert LOW die interne Referenz. Mit den Bits 1 und 2 wählen Sie den Betriebsmodus (siehe Datenblatt).

0x0Ch

Registerstatus

Bit 0 bleibt HIGH, solange der A/D-Wandler arbeitet. Bit 1 ist HIGH während des Starts.

0x20h-0x27h

Messwerte der Eingänge

Worte, keine Bytes (siehe Datenblatt).

0x2Ah-0x39h

Grenzwert-Register der Eingänge

Worte, keine Bytes (siehe Datenblatt). Dieses Register definiert die Grenzwerte für die Interrupts.

0x3Eh

ID des Herstellers

0x3Fh

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).

Abbildung 3: Der Schaltplan zu unserem Testaufbau. Die Potis dienen zum Einstellen der I2C-Adresse.

Listing 2

 

$ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- 1d -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Mithilfe der Werkzeuge I2cget und I2cset nehmen nun Sie eine erste Messung vor. Dazu bringen Sie den ADC128D818 in den Modus 1, aktivieren alle Eingänge und starten eine Einzelmessung. Danach lesen Sie den Wert des Eingangs 0 aus (Listing 3).

Listing 3

 

$ i2cset -y 1 0x1d 0x0b 0x02
$ i2cset -y 1 0x1d 0x08 0x00
$ i2cset -y 1 0x1d 0x09 0x01
$ i2cget -y 1 0x1d 0x20
0xaf

Haben Sie alles fehlerfrei aufgebaut, sollte I2cget einen hexadezimalen Wert liefern, der der Einstellung des Poti entspricht. Um eine weitere Messung zu starten, geben Sie die Befehle aus Listing 3 erneut ein. Die Register mit den Messwerten behalten so lange ihre Werte, bis Sie eine neue Messung starten.

Falls Sie kontinuierlich messen möchten, bewerkstelligen Sie das mit 0x01 in Register 0x00. Der ADC128D818 benötigt in diesem Fall kontinuierlich Strom und generiert selbst etwas Abwärme.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

06/2019
Home Improvement

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Verschlungene Pfade

    Mit Schleifen, Fallunterscheidungen und Funktionen programmieren Sie komplexe Skripte auf einfache und elegante Weise.

  • Extrem genau

    Mit einem A/D-Wandler messen Sie bei Bedarf Spannungen. Der MCP3424 macht dabei konstruktionsbedingt eine gute Figur.

  • Verbindungsaufnahme

  • Süßer Wecker

    Dem RasPi fehlen sowohl eine Echtzeituhr als auch ein BIOS, ein zeitgesteuertes Wecken erfordert also Zusatzkomponenten. Hier springt der Witty Pi Mini in die Bresche, ein µHAT von UUGear.

  • Windows to go

    Das Aufsetzen zuverlässiger und sicherer Remote-Desktop-Lösungen erfordert einiges Know-how. Die RasPi-basierte Pinbox von Pintexx reduziert den Konfigurationsaufwand auf ein Minimum.

  • Prima Klima

    In Museen ist es Pflicht, zu Hause nützlich: das permanente Prüfen und zentrale Erfassen der Feuchtigkeit und Temperatur in Räumen.

  • Auf einen Blick

    Ein maßgeschneiderter Infoscreen auf RasPi-Basis mit stromsparendem E-Ink-Display zeigt Termine, Bilder, Mitteilungen und Wetterinformationen an.

  • Sanft berührt

    Mit einem RasPi und dem Controllermodul PiXtend lassen sich mühelos Roboterarme ansteuern und deren Bewegung automatisieren.

  • Popcorn-Kino

    Mit Kodi 18.0 unterstützt LibreELEC 9.0 jetzt die von vielen Streaming-Diensten genutzte DRM-Verschlüsselung. Die Integration von Netflix, Amazon und Co. erfordert allerdings Handarbeit.

  • So nah und doch so fern

    Der RasPi kommt häufig als Server oder Steuerrechner für spezielle Zwecke zum Einsatz. Mit Anydesk erhalten Sie dazu eine Steuersoftware mit grafischer Oberfläche.