Integrierender AD-Wandler ( single slope )

OP #4691234
Lesenswert?

Hallo alle zusammen,

ich bin grad dabei einen AD-Wandler ( integrierenden ) zu entwerfen. Ich 
muss es mit dem Single Slope Verfahren realisieren.

Aber leider habe ich am Ausgang nur eine DC Spannung, obwohl an dem 
Wandler eine Steighung anliegt.
Als clock habe ich eine Frequenz von ca. 50kHz.

habe vieles ausprobiert, komme aber nicht zu einer Lösung, hoffe das ich 
hier eine Lösung finden kann.

Danke schonmal für die hilfe
Angehängte Dateien:
#4691284
Lesenswert?

Deine Wandlerschaltung ist nicht vollständig. Da fehlt ein Schalter am 
Eingang damit z. B. 0,1s integriert wird. Danach muss eine Rampe starten 
die mittels Komparatoren(2) die integrierte Eingangsspannun mit der 
Rampenspannung vergleicht. Der Ausgang der Komparatoren wird UND 
verknüpft und dient als Gate-Signal für den Zähler. (Fenster Komparator: 
Komparator 1 vergleicht mit 0V, Komparator 2 vergleicht mit der 
integrierten Eingangsspannung.)
#4691481
Lesenswert?

Helmut S. schrieb:
> Deine Wandlerschaltung ist nicht vollständig. Da fehlt ein Schalter am
> Eingang damit z. B. 0,1s integriert wird.

Nein. Du hast den Einflanken-ADC noch weniger begriffen als der TE.

Die Grundidee ist, einen Integrator dafür zu verwenden, eine lineare 
Rampe zu erzeugen. Diese Rampe wird dann durch einen Komparator mit dem 
Eingangssignal verglichen. Am Ausgang des Komparators bekommt man einen 
Impuls, dessen Länge direkt proportional zur Eingangsspannung ist. Die 
Länge des Impulses kann man wiederum digitalisieren, indem man einen 
Zähler für die Dauer des Impulses eine geeignete (konstante) Frequenz 
zählen läßt.

Was der Schaltung des TE fehlt, ist die Ablaufsteuerung, die einen neuen 
Meßvorgang startet, wenn der Komparator umgeschaltet hat. Im einfachsten 
Fall kann man die Schaltung so auslegen, daß mit dem Kippen des 
Komparators der Zählerstand abgespeichert und der Integrator 
zurückgesetzt wird. Der ADC startet sich dann am Ende einer Messung 
selber wieder neu.

Prinzip hier: 
http://www.allaboutcircuits.com/textbook/digital/chpt-13/slope-integrating-adc/

Allerdings würde man zwischen den Ausgang des Komparators und den 
Entlade-FET // Latch // Zähler-Reset noch ein Monoflop schalten wollen. 
Nur so kann man sicherstellen, daß der Integrator-C wirklich entladen 
ist und daß es kein race zwischen Zähler-Reset und Latch gibt.

Praktisch baut man sowas natürlich nicht, weil es zu viele Nachteile 
hat. Aber das Prinzip ist leidlich einfach zu verstehen.
#4691487
Lesenswert?

>> Helmut S. schrieb:
>> Deine Wandlerschaltung ist nicht vollständig. Da fehlt ein Schalter am
>> Eingang damit z. B. 0,1s integriert wird.

>Nein. Du hast den Einflanken-ADC noch weniger begriffen als der TE.
>
>Die Grundidee ist, einen Integrator dafür zu verwenden, eine....

Ich ging und gehe immer noch davon aus, dass der Fragesteller als Zusatz 
einen Integrator haben will um überlagerte Störungen(Netzbrumm) zu 
filtern. Dass man zusätzlich einen Rampengenrator benötigt ist ja 
selbstverständlich.
Allerdings muss man zugeben, dass man bei dem Aufwand besser gleich das 
Dual-Slope Verfahren nimmt. Dort macht ein Integrator schon filtern und 
umsetzen.
#4691511
Lesenswert?

Unter einem in der Überschrift genannten integrierenden AD-Wandler 
versteht man üblicherweise ein Konzept, bei dem das Messsignal 
integriert wird.

Ein single slope Wandler enthält zwar einen Integrator, der integriert 
jedoch die Referenz und macht nur einen Augenblickswert Vergleich mit 
dem Messsignal.
#4691554
Lesenswert?

Dieter W. schrieb:
> Unter einem in der Überschrift genannten *integrierenden AD-Wandler*
> versteht man üblicherweise ein Konzept, bei dem das Messsignal
> integriert wird.

Klar. Wie bereits gesagt: der TE hat den Einflanken-ADC nicht 
verstanden. Sonst würde er ihn nicht als integrierenden ADC betiteln.

Andererseits geht es ihm offenkundig nur um die Simulation, also das 
Verstehen der Funktionsweise. Über die Nachteile/Probleme dieses 
Wandlerprinzips müssen wir uns also nicht auslassen. Das steht 
(hoffentlich) alles in seinem Buch drin.
#4691570
Lesenswert?

Die Namen "Eingang" und "Vin" sind natürlich super gewählt.
Es geht beides:
1. an "Eingang" das Signal und an "Vin" die Referenz.
Dann wird das Signal integriert.
2. an "Eingang" die Referenz und an "Vin" das Signal
Dann wird die Referenz integriert, was nicht sonderlich schlau ist, da 
die eh schon stabil sein wird.
#4691584
Lesenswert?

Peter D. schrieb:
> Die Namen "Eingang" und "Vin" sind natürlich super gewählt.

Jep.

> Es geht beides:
> 1. an "Eingang" das Signal und an "Vin" die Referenz.
> Dann wird das Signal integriert.

Was nicht sonderlich sinnvoll ist. Denn dann wäre die Länge des Impulses 
am Komparator-Ausgang proportional zum Kehrwert der Eingangsspannung.
Bei 0V Eingangsspannung würde die Messung nie fertig werden.

> 2. an "Eingang" die Referenz und an "Vin" das Signal
> Dann wird die Referenz integriert, was nicht sonderlich schlau ist, da
> die eh schon stabil sein wird.

Daß die Referenzspannung stabil ist und trotzdem integriert wird, ist 
kein Widerspruch. Ich sage es gerne nochmal: der Einflanken-ADC ist 
kein integrierender Wandler. Der Integrator ist hier nur ein Detail 
der Realisierung. Die lineare Rampe könnte man genauso gut durch die 
Aufladung eines Kondensators mit einem Konstantstrom erzeugen.
OP #4692239
Lesenswert?

Vielen Dank für die Infos, bin grad dabei es nach und nach zu testen.

Lediglich kommt jetzt in Simetrix ein Fehler beim ausführen: "Timestep
to small"
was könnte ich das googeln, damit ich das Problem lösen kann. Timestep
to small kamen nicht so viele sinnvolle Beiträge.

lege die aktuelle Schaltung nochmal bei.
vielen Dank im voraus
Angehängte Dateien:
OP #4696869
Lesenswert?

Ich habe das jetzt so gemacht, wie es mir beschrieben wurde, jedoch
zählt der Wandler nicht richtig. habe am Ausgang die dreieckspannug mit
einer Spitze von 250v.
Das zählen tut er nur in der Integrationsphase, aber warum passt der
Wert dann nicht?

Der takt für den Register hat selbe Frequenz wie bei Zähler. Wenn ich 
den Takt einen Delay gebe, dass er erst nach dem Reset aktiv wird, zählt 
es nicht garnicht.
Angehängte Dateien:
OP #4700916
Lesenswert?

Danke Helmut erstmal.

Bei meiner Version funktioniert das Switchen zwischen den beiden 
Spannungen nicht so richtig. Nachdem ich die 0V ( bei mir 6V) erreicht 
habe, sollte die Integration von Referenzspannung aufgehört und zur 
Eingangsspannung gewechselt werden. Das tut es bei mir nicht, weil die 
Steuerspannungen von den Schalter es nicht zu lassen.

Wenn ich versuche, den Ausgang vom Komparator als Steuerspannung für den 
Schalter zu nehmen, funktioniert es auch nicht, weil ich dann 
undefinierte Zustände habe, wo beide Steuerspannungen auf High oder Low 
sind.

Wie könnte ich das Problem umgehen, dass er ab der gewünschten 
Referenzspannung am Komparator zur anderen Quelle wechselt?

Lade noch meine Schaltung und Ausgänge hoch. Dabei ist OUT1 meine 
Komparatorspannungen und die anderen 2 meine Steuerspannungen.
Angehängte Dateien:
#4701242
Lesenswert?

> Nachdem ich die 0V ( bei mir 6V) erreicht
habe, sollte die Integration von Referenzspannung aufgehört und zur
Eingangsspannung gewechselt werden.

Dual-Slope funktioniert anders

1. Kondensator entladen. Dabei sind die Schalter für die 
Eingangsspannung und die Entladespannung aus.

2. Eingangsspannung für z. B. 100ms integrieren.

3. Danach mit der Entladespannung integrieren bis der Kondensator wieder 
entladen ist. Diese Zeitspanne ist die Messzeit des Zählers.


Bei Dual-Supply ist die Entladespannung die Referenzspannung. Bei Single 
Supply ist die Entladespannung 0V.
#4701250
Lesenswert?

HP M. schrieb:

Falls du es nicht gemerkt hast: du bist im falschen Thread. Du hast zwar 
einen zweiten Thread für den Zwei-Flanken-ADC aufgemacht, postest jetzt 
aber wieder im ersten Thread für den Ein-Flanken-ADC.

> Bei meiner Version funktioniert das Switchen zwischen den beiden
> Spannungen nicht so richtig.

Kein Wunder. Beim Zwei-Flanken-ADC ist zwar die Integrationszeit für die 
Eingangsspannung konstant (und kann folglich durch eine Pulsquelle 
vorgegeben werden). Die Integrationszeit für die Referenzspannung 
hingegen ist nicht konstant. Das ist ja gerade die abgeleitete Größe.

> Wenn ich versuche, den Ausgang vom Komparator als Steuerspannung für den
> Schalter zu nehmen, funktioniert es auch nicht, weil ich dann
> undefinierte Zustände habe, wo beide Steuerspannungen auf High oder Low
> sind.

Dann mach es richtig.

Bis jetzt hast du immer nur den trivialen Teil deiner ADC simuliert 
(Integratoren, Schalter). Der wesentlich spannendere Teil ist aber die 
Erzeugung der Steuerspannungen. Der Ein-Flanken-ADC kann noch mit einem 
statischen Timing betrieben werden. Beim Zwei-Flanken-ADC geht das 
nicht. Da ist das Timing abhängig von der Eingangsspannung.

Du wirst also in den sauren Apfel beißen müssen, die Steuerlogik 
ebenfalls zu simulieren.
OP #4701272
Lesenswert?

Das es bei den Einflanken ADC mit einem statischen Timing funktioniert 
und bei dem Zwei Flanken ADC nicht, ist nachvollziehbar. Bei dem Dual 
Slope ist die integrationszeit der Referenzsspannung abhängig von der 
Referenz am Komparator.

Genau da hänge ich seit mehreren Tagen. Habe bereits versucht diese 
Logik mit Gattern u.a. Flipflops zu realisieren, es haut aber nicht hin. 
Ich komme immer an die undefinierten Zustände, wo ich dann keine 
Integration am Ausgang während dieser Zeit habe.
#4701715
Lesenswert?

HP M. schrieb:
> Das es bei den Einflanken ADC mit einem statischen Timing funktioniert
> und bei dem Zwei Flanken ADC nicht, ist nachvollziehbar. Bei dem Dual
> Slope ist die integrationszeit der Referenzsspannung abhängig von der
> Referenz am Komparator.

Meine Rede.

> Genau da hänge ich seit mehreren Tagen. Habe bereits versucht diese
> Logik mit Gattern u.a. Flipflops zu realisieren, es haut aber nicht hin.
> Ich komme immer an die undefinierten Zustände, wo ich dann keine
> Integration am Ausgang während dieser Zeit habe.

Ich weiß ja nicht, woran genau es hängt. Aber für das generelle Timing 
könntest du ja mal in ein einschlägiges Datenblatt schauen. ICL7106 wäre 
ein Klassiker aus der Gattung Zweiflanken-ADC.

Wenn es um die Implementierung der Steuerlogik geht: am einfachsten ist 
es wohl, ein synchrones Zeitregime vorzusehen. Also eine Taktquelle, 
einen hinreichend langen Zähler und dann die entsprechenden Zeitbereiche 
(vulgo: Zählerstände) ausdecodieren.

Mal so als Beispiel:

Zählerstand 0..999 - Zähler nullen, Integrator nullen
1000 .. 1999 - Integration der Eingangsspannung
2000 .. max. 2999 - Integration der Referenzspannung
3000 - Übernahme des Zählerstandes in das Latch und Sprung nach 0

Die Phase von 2000 bis 2999 läuft dein Zähler zwar durch, der Schalter 
für die Integration der Referenzspannung bleibt aber nicht die ganze 
Zeit geschlossen, sondern wird bei 2000 eingeschaltet und beim Umkippen 
des Komparators wieder aus. Hier brauchst du offensichtlich ein 
Flipflop.

Kann man natürlich nach Belieben variieren. Eventuell nimmt man andere 
Zählerstände die sich leichter ausdecodieren lassen. Oder man macht die 
Zero-Phase kürzer. Oder man nimmt hier oder da ein Monoflop dazu.

Aber erst, wenn du diesen Teil mal in der Simulation zusammengeklickt 
hast und er funktioniert; erst dann kannst du behaupten daß du den ADC 
wirklich verstanden hast. Denn für die Funktionsweise von Integrator, 
Analogschalter und Komparator braucht man ja wohl keine Simulation...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren