Forum: Analoge Elektronik und Schaltungstechnik AD-Wandlugn - Dynamik


von Fabian H. (Firma: Technische Universität Berlin) (brein)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich hoffe, ich verwende hier den Begriff der Dynamik richtig.

Ich bräuchte mal einen guten Tipp von euch.

Folgende Situation, ich möchte einen Puls, welches auf einer 
differentiellen Leitung übertragen wird auswerten. Das heißt, ich möchte 
die Amplitude feststellen und graphisch auf ein Display darstellen.

Meine erste Idee ist, mit Hilfe eines OpAmps und einer Verstärkung von 
1:-1 das Signal zu entkoppeln und auf einen DA-Wandler zu schicken.

Das Problem dabei ist, dass die Amplitude von 17V bis 0,1V betragen 
kann.
Selbst mit einem 12Bit-AD-Wandler wird es eng bei 0,1V.
Ich bräuchte also eine Lösung mit hoher Dynamik, richtig?
Auflösung ist nicht gaaaanz so wichtig.

Jetzt fragte ich mich, wie ich das Problem lösen kann und bin mir 
sicher, dass ich von euren Erfahrungen profitieren kann. ;)

Eine Lösung, die mir sofort einfiel ist mit mehreren Wertbereichen zu 
arbeiten.
Ich könnte, siehe Bild, doch einfach am OpAmp mit verschiedenen 
Verstärkungsfaktoren arbeiten. Ginge das?
Ich habe mir das so vorgestellt. Mit offenen Schaltern habe ich einen 
Verstärkungsfaktor von -1. Bin also im Wertebereich von 20V. Schließe 
ich den Schalter S1, halbiere ich den Vorwiderstand und habe eine 
Verstärkung von -2. Bin also im Wertebereich von 10V. Mit den Schalter 
S2 habe ich den Vorwiderstand auf den 20fachen reduziert und bin mit dem 
Verstärkungsfaktor von -20 im Wertebereich von 1V.
Wenn also ein Puls kommt, dann arbeite ich im kleinsten Wertebreich. Ist 
mein ADU voll ausgesteuert, gehe ich beim nächsten Puls in den nächst 
höheren Wertebereich. Ist er auch dort übersteuert, ich in höchsten.
Nachteil ist, dass ich bis zu 3 Pulse brauche, bis ich den richtigen 
Wert habe. Ist unkritisch, aber unelegant.

Auch wäre doch sicher eine Möglichkeit, 3 ADUs einzusetzen und mit 
Widerstandstandsteilern die Wertebereiche einzustellen. Dann fragt man 
den niedrigsten Wertebereich ab, ist dieser übersteuert, den nächsten 
usw.
Vorteil, vollständige Auswertung des Puls bei jedem Puls.
Nachteil, hoher Aufwand und der ADU des ATXMEGA32A4U (Genauer, der des 
XMEGA Xminilab von gabotronics 
http://www.gabotronics.com/development-boards/xmega-xminilab.htm) kann 
nicht genutzt werden.

Mich würde auch interessieren, wie im kleinen Wertebereich das Rauschen 
des (der) ADU(s) sowie des OpAmps ist.

Ich dachte auch daran, eine logarithmische Digitalisierung vorzunehmen.
Eine passende Diode in den Feedback zu bauen sollte drin sein. Aber dann 
wird ja der Graph bei der Anzeige verzogen. Oder ist dies der Königsweg? 
Immerhin ist er es in der Audiotechnik.

Gruß und vielen Dank
BrEin

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Lesenswert?

Ichh habe versehentlich das Bild zwei Mal angehangen.
Leider kann ich das nicht mehr rückgängig machen.

von Purzel H. (hacky)


Lesenswert?

Da ist doch Murks und wird nie genau. Nimm einen besseren ADC. Der 
kostet weniger und ist erst noch genauer.

von Bernd (Gast)


Lesenswert?

Einen Puls verarbeiten...

Geht das überhaupt mit A/D? So ein A/D-Wandler
erfasst ja nicht alles, was da kommt, sondern das,
was zur Sample-Zeit in den S&H- Kondensator kommt.

Rückfragen:

Wie oft kommen die Pulse, welche Pulsdauer haben sie?

Ist evtl. ein Peak-Detektor erforderlich, der die
Pulshöhe erfasst und erst nachdem diese dem A/D-Wandler
übergeben wurde, erst wieder für den nächsten Puls
bereit ist?

Wie genau muss es sein?
 12 Bit sind 1024 verschiedene Pegel.
 Bei 17 V = 1023 ist 0,1 V noch (1023/170) = 6.
 Ist das ein Problem?
 Beim Logarithmieren wird es ja auch nicht exakter.

Also, die leider immer wieder nötige Frage:

WAS WILLST DU EIGENTLICH?

von j. c. (jesuschristus)


Lesenswert?

12bit= 4096 --> 24 Werte übrig. Wie wäre es stattdessen am Ausgang vom 
OP einen Spannungsteiler zu haben, der bei Bedarf mit einem FET 
zugeschaltet wird und die Spannung zB zehntelt?

von uwe (Gast)


Lesenswert?

Warum nimmst du keinen 14Bit oder 16Bit ADC? Wie lang sind den die 
Pulse?

von David (Gast)


Lesenswert?

Hallo Fabian Hoemcke,

ich mache das oft so, wie Du beschrieben hast:

differentielles Signal oder Wechselspannung ->
OPV als Differenzverstärker -> ADC-Eingang
OPV-Out x 16 mit OPV -> ADC-Eingang
OPV-Out x 16 mit OPV -> ADC-Eingang
Referenzspannung des Differenzverstärkers -> ADC-Eingang

Das funktioniert wunderbar. Sicherlich kann man damit die Physik nicht 
überlisten. Mit Softwarefilterung und Oversampling lassen sich aber ganz 
anständige Resultate erzielen.
Meistens setze ich die dsPIC33-Reihe von Microchip als uC ein, die haben 
10/12bit-Wandler on Chip. Der uC ist oft günstiger als ein vernünftiger 
Stand-a1one 16bit ADC. Den uC brauche ich sowieso immer.
Als OPV nehme ich gerne den AD8608 von Analog Devices.

David

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

erstmal viele Dank für die Rückmeldungen.
Entschuldigt bitte meine späte Antwort, hat eine Weile gedauert drauf zu 
antworten und meine Antworten zu überprüfen.  ^^
Möchte ja keinen Mist erzählen.


Ihr habt ja recht. Ich muss da mal wohl noch ein wenig weiter ausholen.

Ein Puls war für mich jetzt nicht unbedingt ein Dirac. ;)
Sondern eher sowas, wie man ein Rechteckpuls versteht.

Ich habe mal die theoretische Beschreibung sowie die Oscillisgraphie in 
den Ahnhang gepackt.

Die Pulsbreite ist somit etwa 4ms. Jetzt nicht der Puls, wie er im 
ersten Bild beschrieben ist, sondern, der Zeitbereich, den ich 
darstellen möchte.

Aber danke für das Nachfragen. Habe mir das ganze nochmal durch den Kopf 
gehen lassen.

Wenn ich, sagen wir mal 200 Sampels brauche um es darzustellen 
(großzügig gerechnet), dann brauche ich eine Samplerate von 50kS/s wenn 
ich mich nicht verrechnet habe.

Wie bereits beschrieben, habe ich ja vor, den Verlauf mit dem XMEGA 
Xminilab von gabotronic darzustellen.
Habe mal das Bild von seinem kleinen Bruder Xprotolab im Anhang.

Auf diesem arbeitet ja ein ATXMEGA32A4U und zum Thema ADC steht im 
Datenblatt:
1
 
2
"One Twelve-channel, 12-bit, 2 Msps Analog to Digital Converter
3
One Two-channel, 12-bit, 1 Msps Digital to Analog Converter"

Selbst bei 12bit bin ich also mehr als schnell genug.

Weshalb der Xminilab nicht mit voller Auflösung fährt, und warum diese 
nicht einstellbar ist, weiß ich jetzt nicht. Ich muss mir mal anschauen, 
wie sie das gelöst haben. Vielleicht sind ja 12bit möglich.

Aber selbst 12 bit reichen ja nicht aus.

Wenn ich aber 100mV darstellen möchte, und 64 Pixel in der Höhe habe, 
komme ich auf 1,5625mV.

Obendrein habe ich hier bein durchstöbern der Artikel gelesen, dass die 
Genauigkeit bei wenigen Bits nachlässt.

______

Pico Oschi schrieb:
> Da ist doch Murks und wird nie genau. Nimm einen besseren ADC. Der
> kostet weniger und ist erst noch genauer.
Natürlich kann ich auch einen genaueren ADC nehmen oder mehrere. Ich 
wollte aber gern den nehmen, der schon eingebaut ist in dem Gerät (Also 
den, vom ATXmega). Von Aufwand her ist die AD-Wandlung ja schon die 
halbe Miete und wenn ich das extern machen muss, brauche ich das Board 
ja nicht.
Und durch was wird das denn ungenau? Durch das Rauschen des OpAmps oder 
der Widerstände?

Was die Genauigkeit angeht hatte ich sowieso gehofft, dass ich durch 
Verstärkung und anschließender Filterung das Rauschen nicht besser 
unterdrücken kann. Zu mindest im unteren Voltbereich.

Bernd schrieb:
> Einen Puls verarbeiten...
>
> Geht das überhaupt mit A/D? So ein A/D-Wandler
> erfasst ja nicht alles, was da kommt, sondern das,
> was zur Sample-Zeit in den S&H- Kondensator kommt.

Ich hoffe, da habe ich genügend recherchiert und kann sagen, dass das 
geht.

>
> Rückfragen:
>
> Wie oft kommen die Pulse, welche Pulsdauer haben sie?

Also was ich darstellen wollte waren 4ms und die Pulse kommen so aller 
30 bis 250 mal die Sekunde.
Also alles sehr moderat.
>
> Ist evtl. ein Peak-Detektor erforderlich, der die
> Pulshöhe erfasst und erst nachdem diese dem A/D-Wandler
> übergeben wurde, erst wieder für den nächsten Puls
> bereit ist?
Peak-Detektor? Danke für den heißen Tipp. Nach sowas habe ich gesucht.
Noch nie zuvor davon gehört. Werde mich gleich schlau machen.

>
> Wie genau muss es sein?
>  12 Bit sind 1024 verschiedene Pegel.
>  Bei 17 V = 1023 ist 0,1 V noch (1023/170) = 6.
>  Ist das ein Problem?
>  Beim Logarithmieren wird es ja auch nicht exakter.
>
Auf die Genauigkeit bin ich vorhin eingegangen.
Meintest aber sicher 10Bits, oder?
Und na ja, ich arbeite nicht mit 17V sondern mit 20V, da das Xminilab 
von 20V bis -14V arbeitet.
Und da komme ich auf
Und bis zu 64 bräuchte ich schon.

Bevor die Frage kommt, der Pulsverlauf wird ja durch den OpAmp 
(invertierender Verstärker) ja eh umgedreht. Und die dann negative 
Halbwelle kommt über 5V nicht hinaus.

> Also, die leider immer wieder nötige Frage:
>
> WAS WILLST DU EIGENTLICH?
Ich hoffe, das ist jetzt klar geworden.

Ich möchte den oben beschrieben Puls grafisch darstellen und die 
Amplitude messen.

j. c. schrieb:
> 12bit= 4096 --> 24 Werte übrig.
Das habe ich jetzt nicht verstanden

>Wie wäre es stattdessen am Ausgang vom
> OP einen Spannungsteiler zu haben, der bei Bedarf mit einem FET
> zugeschaltet wird und die Spannung zB zehntelt?
Mit FETs hätte ich die Widerstände am OP sowieso geschalten.
Aber wieso soll ich die Spannung zehnteln? Wenn dann möchte ich sie ja 
verzehnfachen. Die großen Spannungen sind ja nicht das Problem, es sind 
die kleinen. Die zu teilen hilft mir leider nicht weiter.

______

Vielen Dank für die Fragen, haben mir sehr beim grübeln geholfen und 
danke auch für die Vorschläge.

Gruß
Fabian

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Angehängte Dateien:

Lesenswert?

Entschuldigung, dich hatte ich jetzt verpasst.

David schrieb:
> Hallo Fabian Hoemcke,
>
> ich mache das oft so, wie Du beschrieben hast:
>
> differentielles Signal oder Wechselspannung ->
> OPV als Differenzverstärker -> ADC-Eingang
> OPV-Out x 16 mit OPV -> ADC-Eingang
> OPV-Out x 16 mit OPV -> ADC-Eingang
> Referenzspannung des Differenzverstärkers -> ADC-Eingang
>
> Das funktioniert wunderbar. Sicherlich kann man damit die Physik nicht
> überlisten. Mit Softwarefilterung und Oversampling lassen sich aber ganz
> anständige Resultate erzielen.
> Meistens setze ich die dsPIC33-Reihe von Microchip als uC ein, die haben
> 10/12bit-Wandler on Chip. Der uC ist oft günstiger als ein vernünftiger
> Stand-a1one 16bit ADC. Den uC brauche ich sowieso immer.
> Als OPV nehme ich gerne den AD8608 von Analog Devices.
>
> David

Ich habe das mal nachgezeichnet.
Meintest Du das so?

Ich frage deshalb, da ich nicht genau verstanden habe wie das 
funktionieren soll. Und, brauche ich dafür tatsächlich 3 ADCs? Den 
gemuxt würde ich ja jedes Mal einen anderen Wert messen. Also 3 ADCs 
oder 3 Channels?
Und? Könnte man die Referenzleitung dann nicht auch als externe 
Referenzspannung nehmen?

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Angehängte Dateien:

Lesenswert?

@David (Gast)
Ich habe nochmal drüber nachgedacht.
Ich glaube, so meintest Du das?
Dann ist es mir auch klar, wie das funktionieren soll.
Aber die Fragen  nach dem Muxen und der Referenzspannung bleiben.

Gruß
Fabian

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Dein DSO hat auch nur 8-Bit und einen schaltstufenbehafteten 
Vorverstärker. Darüber solltest du zusammen mit der wirklich benötigten 
Genauigkeit in deiner Anwendung nachdenken, bevor du alles nur zu teuer 
machst. Da es offensichtlich ein Akku ist, ist die Auflösung eh nicht 
sonderlich wichtig. Mehr dagegen die Genauigkeit der Ladeentspannung 
wenns ein Li-Teil ist. 1% ist da schon notwendig.

Auflösung<>Genauigkeit!

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Lesenswert?

Abdul K. schrieb:
> Dein DSO hat auch nur 8-Bit und einen schaltstufenbehafteten
> Vorverstärker. Darüber solltest du zusammen mit der wirklich benötigten
> Genauigkeit in deiner Anwendung nachdenken, bevor du alles nur zu teuer
> machst. Da es offensichtlich ein Akku ist, ist die Auflösung eh nicht
> sonderlich wichtig. Mehr dagegen die Genauigkeit der Ladeentspannung
> wenns ein Li-Teil ist. 1% ist da schon notwendig.
>
> Auflösung<>Genauigkeit!

Ein ganz normaler Oszillator hat nur 8 Bit?
Und einen OpAmp wie ich ihn zuerst vorgeschlagen hatte?

Wie aber schafft er es dann so schnell zu samplen?
Oder werden die Stufen per Hand vorgegen, also die Skalierung, die man 
mit dem Rädchen vornimmt.
Dazu muss ich sagen, dass ich eigentlich vorhatte, die Amplitude 
automatisch ermitteln zu lassen. Und in diesem Fall, ist der 
Wertebereich automatisch durchzuprobieren.

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Lesenswert?

In einem muss ich mich natürlich korrigieren.

Ich hatte ja später gesagt, dass ich positive wie negative Spannung 
(also Wechselspannung) messen möchte.

Das gehört natürlich von Anfang gesagt und mit bedacht. Entschuldigung.

Stellt sich jetzt aber nicht so als Problem heraus. Wie man 
Wechselspannung mit einem ADC mit ist recht gut im Artikel 
AD-Wandler erklärt.

Klar halbiert sich da mal eben meine Auflösung. Meine 0V Referenz liegen 
dann ja bei:
Aber das ist nicht schlimm, denn meine Auflösung des Displays für den 
positiven Teil alleine halbiert sich ja auch mal eben. Hatte ich nicht 
bedacht.

von Fabian H. (Firma: Technische Universität Berlin) (brein)


Lesenswert?

Ich sehe gerade im Datenblatt vom ATXmega, dass dieser bereits einen 
OpAmp zur Skalierung vorgeschaltet hat.

Könnte ich nicht einfach diesen nehmen und damit alle meine Probleme 
erschlagen? Inklusive das mit den verschiedenen Wertebereichen?

Ich hatte mir auch überlegt, wenn das Umschalten schnell genug geht, 
einfach mit er ersten steilen Flanke, bis zu drei mal zu samplen, bis 
ich die die Amplitude gut messen kann und dann den Rest mit dieser 
Einstellung aufzuzeichnen.

Auf jeden Fall aber, schaue ich mir nochmal den Peak-Detektor an.
Gibt es dafür auch eine andere (deutsche) Bezeichnung, in Lehrbücher 
finde ich diesen Begriff nicht.

Gruß
Fabian

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Jetzt kommen aber ne Menge Fragen auf einmal. Naja.

Ja, so ein DSO hat meist nur 8-Bit Wandler und einige hundert MHz 
Samplingfrequenz. Theoretisch kann man Auflösung vs. Samplingfrequenz 
beliebig gegeneinander tauschen und dann mathematisch rückwärts rechnen.

Aber du bist ja Anfänger und willst keinen harten Tobbak.

Um es kurz zu machen: Der Drehschalter im Scope ist so eine Art 
Logarithmierer und du als Benutzer mußt entscheiden, ob du gerade 
"Überläufe" am Scope siehst. Da du a priori weißt was du sehen willst, 
fällt es einem Menschen meist nicht schwer es richtig zu machen. Aber 
wer kennt nicht den klassischen Fall eines leeren <analog> Bildschirms, 
nur weil das Signal anstatt 1V volle Pulle 300V hatte!?!

Ich würde dir einen digital einstellbaren Vorverstärker zusammen mit 
deinem integrierten AD-Wandler empfehlen. Mit dem Einsteller des 
Verstärkers stellst du dir einen passenden Bereich ein. Wann ist der 
erreicht? Wenn der ADC keine Überläufe mehr anzeigt! Falls der bei dir 
integrierte Wandler dafür keine Flags hat, dann schaue einfach nach 
einer selbstdefinierten Wertegrenze, die aktuell überschritten wird. 
Sagen wir mal 90% der Auflösung. Kommen höhere Werte vor, schaltest du 
den Vorverstärker eine Stufe zurück. Kommen keine Werte über 30% mehr 
vor, stellst du ihn eine Stufe höher.

Von linear.com gibt es nette digital verstellbare Verstärker.

Genau das obige Schema benutze ich erfolgreich für einen Leistungsmesser 
für das Stromnetz. Da will man ja auch nicht wissen, ob der 2KW Heizer 
nun 1992W oder 1993W zieht. Mehr als 8-9 Bit Auflösung brauch man da 
nicht!

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.