Forum: Mikrocontroller und Digitale Elektronik 0V bis 12V an ADC


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Gustl B. (-gb-)


Lesenswert?

Hallo,
ja ist ein etwas dummer Betreff aber ... ich soll ein Signal das von 0 
bis ca. 12 V geht digitalisieren. In 16 Bit und 1 MSample/s. Die 
schnellsten Frequenzen die vorkommen liegen aber deutlich drunter, wohl 
so zwischen 50kHz und 100kHz.

Was noch wünschenswert ist ist eine variable Verstärkung weil das Signal 
manchmal eben nur sehr klein ist (mehrere 100 mV).

Jetzt gibt es ADCs wie den ADS8681 die schon selber 0 bis 12 V am 
Eingang sehen können, kann man verwenden, aber was macht man dann mit 
kleinen Signalen?

Ist es da möglich/praktikabel einen ADC mit kleinerem Eingangsbereich 
(z. B. 0 ... 1 V) zu verwenden und die Eingansspannung herunterzuteilen? 
Ich dachte mir das als Spannungsteiler mit mehreren Abgriffen die dann 
über einen analog MUX auf den ADC geschalten werden. Oder gleich ein 
Digitalpoti und eben keinen MUX.

Wie ist da die übliche Vorgehensweise? Wie würdet Ihr das bauen?
Vielen Dank!

von Sascha_ (Gast)


Lesenswert?

Also mit nem AVR würde ich 0-12V auf 5V runterteilen und an ADC0.
0-5V an ADC1

Bei ADC0 anfangen zu messen, falls Wert unter 426(von 1024): MUX 
umschalten auf ADC1.

Falls Wert unter 42: 10x Verstärkungsmodus einschalten.

Das wäre so die grobe Vorgehensweise.

von Der Andere (Gast)


Lesenswert?

Gustl B. schrieb:
> In 16 Bit und 1 MSample/s.

Das heisst bei einem Spannungsteiler solltest du mindestens 0,01% 
Grundgenauigkeit haben und er sollte kapazitiv abgeglichen sein, sonst 
hast du einen Tief oder Hochpass.

Gustl B. schrieb:
> Oder gleich ein Digitalpoti

Na ja dann kannst du gleich mit 8 Bit samplen, bessere Genauigkeit hast 
du dann eh nicht mehr.

Ich würde eher sehen ob ich einen hochgenauen Teiler bekomme und den 
dann per Relais vorschalte oder direkt mit dem Signal auf den A/D 
Wandler gehe.
Es gibt A/D Wandler mit programmierbarer Verstärkung. Die würde ich 
nehmen wenn kleinere Signale verstärkt werden sollen.

von Gustl B. (-gb-)


Lesenswert?

Gut mit AVR kenne ich mich nicht aus, ich würde da einen eigenständigen 
SPI-ADC verwenden.

Dann gibt es da Amplifiers with Digitally Programmable Gain wie z. B. 
http://www.linear.com/product/LTC6911

Sehe ich das richtig, dass das Gain da nicht verstärkt sondern 
abschwächt?

Damit könnte ich dann einen ADC mit 1V Eingansbereich nehmen und die 12V 
darauf abschwächen. Wenn aber das Signal nur wenige 100 mV sind nehme 
ich Verstärkung 1 und reiche das an den ADC durch.

Der Andere schrieb:
> Das heisst bei einem Spannungsteiler solltest du mindestens 0,01%
> Grundgenauigkeit haben

Naja, der exakte Wert ist mir egal also der genaue Spannungwert. Ich 
will aber dass das linear ist bei einer eingestellten 
Verstärkung/Spannungsteilung.

Der Andere schrieb:
> Na ja dann kannst du gleich mit 8 Bit samplen, bessere Genauigkeit hast
> du dann eh nicht mehr.

Wieso? Was meinst Du mit Genauigkeit? Rauschen die so stark oder was ist 
mit denen? Wenn das statt z. B. 1 kOhm sann 1,1  kOhm ist mir das egal 
solange das auf der Einstellung immer die gleichen 1,1 kOhm hat.

Der Andere schrieb:
> Es gibt A/D Wandler mit programmierbarer Verstärkung. Die würde ich
> nehmen wenn kleinere Signale verstärkt werden sollen.

Hast Du da ein Beispiel? Der von mir schon erwähnte 
http://www.ti.com/lit/ds/symlink/ads8681.pdf hat das ja auch aber eben 
nicht wirklich viele Verstärkungen.

: Bearbeitet durch User
von Sascha_ (Gast)


Lesenswert?

Selektor:
http://www.linear.com/products/Precision_ADCs

Vielleicht sowas:
http://www.linear.com/product/LTC2338-18

Bei 18 Bit würde ich gar nicht mehr mit einem Spannungsteiler arbeiten. 
Eine Ungenauigkeitsquelle weniger.

von Gustl B. (-gb-)


Lesenswert?

Das ist witzig, den Stein hatte ich mir auch schon angeguckt, aber da 
wusste ich noch nicht, dass mein Eingangssignal nur zwischen 0 und ca. 
12V liegt.

Wenn ich bei dem die interne Referenz verwende bekomme ich ±10.24V als 
Spannungsbereich. Von den 18 Bits nutze ich also dann nur 17. Verwende 
ich eine externe Referenz von 1,25V erhalte ich mit dem internen x2 
Referenz Buffer ±6.25V als Spannungsbereich. Das würde passen, muss ich 
aber noch verschieben so dass der zwischen 0 und 12,5V liegt. Da müsste 
ich einen Offset dazuaddieren am besten noch mit Buffer vor dem ADC.

von A. S. (Gast)


Lesenswert?

Gustl B. schrieb:
> In 16 Bit und 1 MSample/s. Die  schnellsten Frequenzen die vorkommen
> liegen aber deutlich drunter, wohl so zwischen 50kHz und 100kHz.

Sind die denn schon per Tiefpass gefiltert? Wenn nein, erfordert ein 
Faktor 10 mit einfachem RC schon genaue Dimensionierung.

> Was noch wünschenswert ist ist eine variable Verstärkung weil das Signal
> manchmal eben nur sehr klein ist (mehrere 100 mV).

Möchtest Du die, oder ist es wirklich Anforderung? Vielleicht sind die 
16 Bit nur deshalb, um kleine Spannungen dennoch genug aufzulösen. Du 
bist schon bei 200µV. Eine Umschaltung bewirkt oft höhere Fehler.

In den allermeisten Fällen macht es wenig Sinn, eine spezial ADC für 
höhere Spannungen zu verwenden. Ein Spannungsteiler, richtig 
dmensioniert und mit entsprechenden Cs ist meist einfacher. Ausnahmen 
evt. bei sehr hochohmigen Quellen, die nicht belastet werden sollen. 
Aber auch da ist meist ein einfacher Spannungsfolger oder gleich 
Verstärker < 1 sinnvoller.

Eine Umschaltung beim Spannungsteiler oder Verstärker erfolgt einfach 
durch parallelschaltung weiterer Widerstände, per Transistor oder direkt 
per µC-Pin (Abhängig vom R)

von Gustl B. (-gb-)


Lesenswert?

Achim S. schrieb:
> Sind die denn schon per Tiefpass gefiltert?

Weiß ich nicht. Ich hab mir das Signal mit dem Oszi angeguckt und da war 
kein Gezappel mit hoher Frequenz.
Also diesesmal ist das so:
Es wird in einem TEM (Transmissionselektronenmikroskop) über/durch die 
Probe gerastert mit >=1 us/Pixel. Der Strahl gelangt unter der Probe auf 
Detektoren (mehrere) wie Photodioden. Die sind an einem extra Gerät (A) 
angeschlossen das schon einstellbare Verstärkung macht und Strom in 
Spannung wandelt. Die Ausgänge davon haben 0 bis ca. 12V. Das geht dann 
in ein weiteres Gerät (B) das nochmal einstellbare Verstärkung hat, aber 
das hat auch leider nur 2,7 V/us Steigrate und ca. 100 kHz Bandbreite. 
Danach geht das Signal in eine Karte mit ADCs.

Bisher ist das auch alles OK, aber die ADCs Software mit der derzeit 
verwendeten leider nicht quellofenen ADC-Karte ist sehr langsam. Also 
das Aufnehmen eines Bildes 2048x2048 Pixel dauert sehr lange (Minuten). 
Mit der Steigrate von 2,7 V/us bei 12 V Spannungsänderung an starken 
Kontrastkanten der Probe ist man auch limitiert.

Für eine einfache (nicht so schöne) Bildvorschau würden wir gerne mit so 
1 us/Pixel rastern. Soll tatsächlich eine Aufnahme zu Messzwecken 
gemacht werden wählt man dann eben z. B. 10 us/Pixel. Dann ist das 
Signal nochmal deutlich niederfrequenter, man kann dann trotzdem schnell 
sampeln und Werte mitteln.

So wie ich das verstanden habe geht es aber nicht drum die Spannung 
möglichst genau zu messen im Sinne von "das sind jetzt 1,2345 V" sondern 
nur darum eine Hohe Auflösung zu haben. Damit man später bei den Daten 
kleine Details im Bild noch sehen kann indem man z. B. einen kleineren 
Wertebereich auf den vollen Helligkeitsbereich skaliert.

Wir würden gerne das Gerät (B) loswerden, das beschränkt das Signal und 
macht es auf jeden Fall auch nicht besser.

Achim S. schrieb:
> Möchtest Du die, oder ist es wirklich Anforderung? Vielleicht sind die
> 16 Bit nur deshalb, um kleine Spannungen dennoch genug aufzulösen. Du
> bist schon bei 200µV. Eine Umschaltung bewirkt oft höhere Fehler.

Derzeit werden 15 Bit verwendet (nur die positive Hälfte eines ADCs) und 
man hat noch extern in Gerät (B) die einstellbare Verstärkung (in 3 
festen Stufen). Was meinst Du mit Fehler? Der absolute Spannungswert ist 
mir egal, ich will nur Auflösung.

Achim S. schrieb:
> In den allermeisten Fällen macht es wenig Sinn, eine spezial ADC für
> höhere Spannungen zu verwenden. Ein Spannungsteiler, richtig
> dmensioniert und mit entsprechenden Cs ist meist einfacher.

Sehe ich auch so, aber wie mache ich das mit der Verstärkung? Einen 
programmable gain amplifier davor? Ich tendiere ja zum Spannungsteiler 
mit mehreren Abgrifen und dann einem MUX oder wie Du schreibst:

Achim S. schrieb:
> Eine Umschaltung beim Spannungsteiler oder Verstärker erfolgt einfach
> durch parallelschaltung weiterer Widerstände, per Transistor oder direkt
> per µC-Pin (Abhängig vom R)

Da würde ich dann einen Teiler z. B. mit
1
>------------
2
   |  |  |  |
3
   0 1k  9k 99k
4
   |  |  |  |
5
   ------------------>
6
   |
7
  1k
8
   |
9
  GND
bauen. Aber dann kommen bei 99k zu 1k und 12V am Eingang nurnoch 120 mV 
am ADC an. Das muss dann wieder verstärkt werden auf z. B. 2 V um den 
ganzen Eingangsbereich auszusteuern. Dafür könnte man eben mit der 
selben Verstärkung auch kleine Signale von nur 120 mV und 
Spannungsteiler 0 zu 1k messen. Oder sollte man lieber einen festen 
Spannungsteiler von eben 99k zu 1k bauen und dahinter einen programmable 
gain amplifier setzen?

von Achim (Gast)


Lesenswert?

Wenn es sich um pixeldaten handelt, natürlich kein Tiefpass nach 
abtasttheorem. Sondern 5Tau << 1us, da vermutlich unsynchronisiert.

Spannungsteiler eher gegen gnd, zB
1
-----
2
      |
3
    10k
4
      |
5
    ------------------------>Signal out
6
    |.       |.       |
7
  100k 10k. 1k
8
   |.        |.      |
9
 Gnd.   T1.   T2
Mit t1 und t2 werden 12V zu ~1,2V, 6V oder 12V, als Beispiel für einen 
etwa 2V adc

Ebenso müsstest du auch Cs zuschalten, um mir 10us oder 1us zu messen.

von Gustl B. (-gb-)


Lesenswert?

Achim schrieb:
> Sondern 5Tau << 1us, da vermutlich unsynchronisiert.

Was meinst Du damit? Was sollte auf was synchronisiert sein oder auch 
nicht?

Achim schrieb:
> Mit t1 und t2 werden 12V zu ~1,2V, 6V oder 12V, als Beispiel für einen
> etwa 2V adc

Das ist schon etwas, ja, aber kleinere Signale am Eingang werden dadurch 
nie größer. Sprich wenn mal nur 200 mV am Eingang anliegen werden die 
nicht auf 2V verstärkt und steuern so den ADC nicht voll aus. Wie macht 
man das üblicherweise, einen Verstärker mit fester Verstärkung vor den 
ADC schalten und eben die 12V noch weiter runterteilen? Also statt der 
Widerstände 100k, 10k und 1k dann 1k 100 und 10. Ist halt auch irgendwie 
doof das zuerst runterzuteilen und dann wieder zu verstärken ...

Und welchen ADC sollte ich da nehmen? Mit 1 MSample/s und SPI Interface 
gibt es zwar ein paar aber die Entscheidung für ein Modell fällt mir 
trotzdem schwer.

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.