Forum: Analoge Elektronik und Schaltungstechnik ADC DAC Schaltungsplatine für ein Raspi


von Dieter J. (dj413)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe vor eine Laborplatine zu erstellen. Diese soll analoge Sensorik 
einlesen, diese an einen Raspi übergeben, der sie wiederum verarbeitet 
und sie anschließend über einen DAC an die Hardware ausgibt.
Also:
Sensorik -> ADC -> Controller -> DAC -> Hardware

Diese Platine soll für Studierende sein, mit der sie einfache Regelungen 
und Steuerung machen können. Als Aktorik sollen eigentlich nur 
Proportionalventile mit einem analogen Steuereingang (max. 10mA) 
(geschätzt: <100mA bei 24V pro Ventil) geschaltet werden. Zusätzlich 
noch falls notwendig einige kleine Schaltventile (geschätzt: <200mA bei 
24V pro Ventil), die wirklich nur zum Starten des Programms benötigt 
werden. Sie werden also nicht dauerhaft im Betrieb hin und her 
geschaltet.

Auf der Seite der Sensorik sollen nur analoge Sensoren wie 
Potentiometer, Kraftsensoren, Drucksensoren im Bereich von -10V bis 10V 
ausgelesen werden.

Da wir gerade keinen Laboringenieur dafür haben, übernehme ich diese 
Aufgabe, um den Studenten was nutzbringendes bereitzustellen.

Ich bin selbst kein Elektrotechniker und habe dementsprechend kaum 
Erfahrung auf dem Gebiet.

Meine Umsetzung bist jetzt:
Ich habe mich entschlossenen einen ADC(DC682A) als auch einen 
DAC(DC2196A) als ein fertiges Demoboard auf die Platine zu stecken. Ich 
habe die Kontaktpunkte abgelötet und normale Stiftleiste angebracht. 
Leider ist der Aufbau eines richtigen Wandlers zu umfangreich für mich. 
Deswegen greife ich hier auf fertig "designte" Platinen zurück.

Spannungsversorgung (siehe Baugruppe SUPPLY): Ausgehend von einem 24V 
Schaltnetzteil als Versorgung habe ich mehrere LC Tiefpässe als Filter 
angelegt. Die gefilterten +24V benutze für die Spannungsversorgung der 
Sensoren. Die 15V hinter dem Linearregler benutze ich für die Versorung 
des DAC Boards und der OPVs. Mit einem Traco TSR1-2450 habe ich die +5V 
für den ADC und die Sensorik aufgebaut.

16bit ADC (siehe Baugruppe ADC): Ich nutze einen analogen RC Tiefpass.
12bit DAC (siehe Baugruppe DAC): Ich benutze einen Spannungsfolger, um 
den eigentlichen DAC zu entlasten.
ULN2803: Dient zum Schalten der Schaltventile.

Beide Platinen werden über SPI mit der Raspi verbunden.

Ich habe das ganze auf einem Steckbrett getestet und das Setup scheint 
zu funktionieren. Ich habe allerdings die Filter etc. nicht aufbaut, 
sondern alle Spannungen aus einem Labornetzteil direkt bezogen (auch 
keine Abblockkondensatoren etc). Momentan komm ich beim Auslesen mit 
500Hz auf dem Raspberry mit 4Mhz SPI auf ein Rauschen von 3-5mV was 
etwas zu hoch ist. Mir ist durchaus bewusst, dass ich die 16bit mit 
diesem Aufbau nicht ausnutzen kann. Allerdings waren die 12bit mir doch 
etwas zu wenig an Auflösung.

Ich bin nicht ganz schlüssig mit den Grounds. Auf den beiden Demoboards 
(ADC/DAC) sind AGND und DGND direkt verbunden. Aus diesem Grund weiß ich 
nicht, wie sinnvoll die Teilung der Grounds überhaupt noch wäre. Ich 
würde dann wahrscheinlich den Raspi GND direkt mit den Platinen GND 
verbinden.

Mein Frage ist nun, gibt es grobe Fehler oder Verbesserungsvorschläge, 
Tipps, die ich mit einbeziehen kann. Ich bin für alle Anregungen offen.

Dieter

von Dieter (Gast)


Lesenswert?

Am besten wuerdest Du die Stoerungen verstehen, wenn Du eine billige 
Bluetoth Box wie die BT6 ueber Klinke mit dem Raspi verbindest und 
zugleich diese mit einem billigen eigenen Netzteil ueber dem Mikro USB 
versorgst.
Da helfen Dir die Filter nichts vom Schaltbild.
Das Layout spielt da auch noch eine Rolle. Gibt es aber noch nicht.

von Dieter J. (dj413)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe das Layout erstellt. Oben links befindet sich das ADC Demoboard 
und unten das DAC Board. Beide dieser Demoboards haben nur ein Ground. 
Blaues Layer ist nur GND. Das gelbe Layer habe ich nur für die Signale 
verwendet. Layer Grün dient nur für die Bereitstellung von +5V und +15V. 
Meine Baustelle ist jetzt die Verbindung zwischen den Grounds vom Raspi 
und Platine.

Der Raspi dient nur der Verdeutlichung der Position. Das mit der 
Bluetooth Box habe ich leider nicht ganz verstanden. Warum benötige ich 
einen Klinkenstecker für die BT Box?

von Achim S. (Gast)


Lesenswert?

Dieter J. schrieb:
> Ich habe das ganze auf einem Steckbrett getestet und das Setup scheint
> zu funktionieren.

du versorgst deinen DAC mit +5V auf Vin. Im Schematic des DAC-boards
https://www.analog.com/media/en/technical-documentation/eval-board-schematic/DC2196A2-SCH.PDF
finde ich kein Vin, aber stattdessen ein IOVCC. Meinst du das mit Vin, 
d.h. legst du 5V an IOVCC an?

Die Pegelanpassung in Richtung zum RaspPi machst du per Spannungsteiler 
- das sollte funktionieren, zumindest wenn die SPI-Frequenz nicht zu 
hoch wird.

Aber auf dem DAC-Board (DC2196A) ist ein LTC2666 verbaut.
https://www.analog.com/media/en/technical-documentation/data-sheets/2666fa.pdf

Der will als input Pegel 0,8*IOVcc sehen, damit er sicher high erkennt. 
Mit einer 5V Versorgung wären das 4V, und das kannst du mit den IOs des 
RapPi nicht sicherstellen. Die Schaltung kann also funktionieren, aber 
es kann auch sein, dass die Kommunikation zum DAC fehlschlägt, weil er 
die High-Werte nicht richtig erkennt.

Dass das ganze auf dem Steckbrett klappt, ist schon mal gut. Aber du 
hast bei dieser Wahl der Logikpegel keine Garantie, dass es immer 
klappt. Kann z.B. sein, dass der DAC nicht mehr richtig reagiert wenn es 
mal ein bisschen wärmer oder kälter wird.


Du versorgst deine OPV mit single supply (also nur mit GND und +15V)? 
Dann kann er Spannungen zwischen 0V und 2,5V nicht korrekt bearbeiten.

Ansonsten: wenn du schon weißt, was an deine Analogausgänge 
angeschlossen wird, dann kannst du die guten Gewissens direkt mit dem 
OPV verbinden. Wenn du das noch nicht weißt und es vorkommen kann, dass 
dort "seltsame Lasten" angechlossen werden (z.B. auch kapazitive 
Lasten), dann würde ich im Normalfall einen "Sicherheitswiderstand" 
zwischen OPV und Klemme schalten (z.B. 50Ohm). Du hast dann natürlich 
keinen niederohmigen Ausgang mehr (sondern einen 50Ohm Ausgang), aber es 
wird auch wesentlich unwahrscheinlicher, dass der OPV durch unerwartete 
Lasten zum Schwingen gebracht oder zerstört wird.

von Dieter J. (dj413)


Lesenswert?

Hallo

Achim S. schrieb:
> Meinst du das mit Vin,
> d.h. legst du 5V an IOVCC an?

ja, das ist etwas unsauber bzw. ungünstig von mir ausgearbeitet.

Achim S. schrieb:
> Die Pegelanpassung in Richtung zum RaspPi machst du per Spannungsteiler
> - das sollte funktionieren, zumindest wenn die SPI-Frequenz nicht zu
> hoch wird.

Da ich schon bei 5Mhz schnell genug meine Daten bekomme muss ich nicht 
viel höher gehen.

Achim S. schrieb:
> Der will als input Pegel 0,8*IOVcc sehen, damit er sicher high erkennt.
> Mit einer 5V Versorgung wären das 4V, und das kannst du mit den IOs des
> RapPi nicht sicherstellen. Die Schaltung kann also funktionieren, aber
> es kann auch sein, dass die Kommunikation zum DAC fehlschlägt, weil er
> die High-Werte nicht richtig erkennt.

Ja das stimmt. Was wäre wenn ich einen 74HC4050 
(https://www.nxp.com/docs/en/data-sheet/74HC4050.pdf) IC nutze. Schnell 
genug scheint er zu sein mit typical 10ns propagation delay.

Achim S. schrieb:
> Du versorgst deine OPV mit single supply (also nur mit GND und +15V)?
> Dann kann er Spannungen zwischen 0V und 2,5V nicht korrekt bearbeiten.

Auch das ist meine Schuld. Ich habe den OPA4134 nur aufgrund des SO14 
footprints verwendet. Ich hatte eigentlich einen anderen OPA der bis auf 
0V ging. Entschuldigung! Ich sollte mir angewöhnen trotzdem den Namen 
der ICs zu ändern. Ich habe ihn nun auf deine Bemerkung hin entfernt. 
Das spart Platz und Lötaufwand. Und ja die Last kenne ich ziemlich 
genau. Der LTC26666 liefert außerdem mehr als genug Strom.

von Dieter (Gast)


Lesenswert?

Dieter J. schrieb:
> Warum benötige ich einen Klinkenstecker für die BT Box?
Damit diese nicht über Funk galvanisch getrennt ist. Bei dem Experiment 
handelt es sich um einen Störungsweg durch die kapazitive Kopplung durch 
die beiden Netzteile, die sich summieren. Als paarweise 
Differenzmesskanäle verwendet, können solche Störungseinflüsse oft 
verkleinert werden.

von Dieter J. (dj413)


Lesenswert?

Danke für die Antwort.
Ich höre aus deinem Hinweis das Problem mit den zwei Netzteilen. Ein 
Netzeil für alles wäre definitiv besser. Ich könnte einfach einen 
Stepdown Regler für die Spannungsversorgung des PIs nutzen. Also einen 
5V Traco mit 2-3A. Damit hätte ich insgesamt nur noch eine einzige 
Spannungsquelle. Hätte das positiven Einfluss auf den jetzigen Aufbau?

von Pandur S. (jetztnicht)


Lesenswert?

> Ich bin selbst kein Elektrotechniker und habe dementsprechend kaum
Erfahrung auf dem Gebiet.


Gibt es irgendwelche Anforderunden an die Sensorik ausser Keine ?
Dann wuerd ich's sein lassen.

von Dieter J. (dj413)


Lesenswert?

Hallo,

nein bis auf die oben genannten gibt es keine genauen Angaben. Je 
sauberer die Signale desto besser. Aber so umgeschlagen: Drucksensoren 
wenn sie unter 10mV rauschen ist das schon vollkommen in Ordnung. 
Kraftsensoren idealerweise unter 5mV. Aber generell muss nichts unter 
5mV wirklich liegen. Es geht bei den Sachen nicht um die Präzision.

Leider ist sein lassen keine Option. Sonst macht es keiner. :(

von Dieter J. (dj413)


Angehängte Dateien:

Lesenswert?

So,

ich habe den Schaltplan nun überarbeitet. Im Layout habe ich nun alles 
markiert und beschrieben. Ich habe nun ein gesamtes GND erstellt, weil 
mir kein besserer Weg einfällt AGND und DGND zu trennen bzw. sie zu 
separieren.

Den Raspi versorge ich nun auch über die Platine, um das Problem mit den 
sonst auftretenden mehreren Massen zu umgehen.
Links habe nun also die digitalen SPI Signale und die 
Spannungsaufbereitung und rechts die Messeingänge. Die SPI 
Geschwindigkeit versuche ich so gering wie möglich zu halten. Eigentlich 
müssten mir schon 5Mhz gut reichen.

von Andreas M. (amesser)


Lesenswert?

Du kannst den PI Problemlos über die Pfostenleiste Mit den 5V versorgen. 
Du brauchst kein extra Kabel dafür. Ich mache das bei meiner Wildkamera 
mit PI Zero auch, das geht aber mit dem Normalen RPI auch. Du solltest 
dafür aber alle verfügbaren 5V Pins der Steckerleiste anschalten.

https://gitlab.com/amesser-group/electronic-devices/rpi-birdcam/-/blob/master/doc/graphics/schematic-r1.pdf

von Dieter J. (dj413)


Lesenswert?

Danke für den Tipp. Die Idee werde ich mir merken.

: Bearbeitet durch User
von Dieter (Gast)


Lesenswert?

Dieter J. schrieb:
> Ich höre aus deinem Hinweis das Problem mit den zwei Netzteilen.

Andreas M. schrieb:
> Du kannst den PI Problemlos über die Pfostenleiste Mit den 5V versorgen.

Wenn das Rauschen zu hoch sein sollte, dann kannst Du mit dem Tipp von 
Andreas beide Geräte/Platinen an ein Netzteil hängen.


Und wenn das nicht ausreichend hilft, gibt es noch diese Möglichkeiten:

Beitrag "I²C galvanisch trennen"
https://www.elektronikpraxis.vogel.de/isolierte-spi-kommunikation-leicht-gemacht-a-815723
Beitrag "ADE7758 - SPI galvanisch von µC trennen"

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.