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
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.)
:
Bearbeitet durch User
Also heißt es ich muss einen Schalter einbauen, der zwischen dem Integrierer und dem Wandler in einer bestimmten Zeit T schaltet?
Der Schalter muss vor dem Integrator sein. Der bewirkt, dass das Signal z. B. 100mms integriert wird. Kurz davor muss der Integrator natürlich auf 0V gesetzt werden. (C kurzschließen)
:
Bearbeitet durch User
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.
>> 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.
:
Bearbeitet durch User
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.
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.
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.
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.
:
Bearbeitet durch User
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
So, ich hab jetzt ein lauffähige Simulation erstellt. Jedoch funktioniert die Wandlung nicht. Ich hab am Ausgang nicht meine Eingangsspannung. Wo könnte der Fehler sein? Würde mich auf jede Antwort freuen.
Man kann nicht den Zähler mit RESET zurücksetzen und genau in dem Moment das Ausgangsregister takten. Zuerst muss die aktive Taktflanke am Register-Clk kommen und danach erst der Reset für den Zähler.
:
Bearbeitet durch User
Einfach den Reset des Zählers und den Takt des Ausgangsregisters mit eigener Pulsquelle ansteuern.
Das habe ich doch bereits gemacht, verwende den Reset(Pulsgenerator) fürs resetten beim Zähler und Ausgangsregister
HP M. schrieb: > Das habe ich doch bereits gemacht, verwende den Reset(Pulsgenerator) > fürs resetten beim Zähler und Ausgangsregister Genau das ist doch der Fehler. Zuerst einen Puls zum Laden des Ausgangsregisters erzeugen. Erst danach darf ein späterer Puls den Zähler zurücksetzen.
Achso, jetzt macht es Klick. Und wie sollten die Pulse definiert sein? Habe für den Reset des Zählers, die Zeit genommen, wo der Komparator auf Low ist. Diese Zeit ist der High Pegel an meinem Pulse. Also theoretisch invertierten Komparator Ausgang.
:
Bearbeitet durch User
In SPICE kannst du doch einfach eine neue Pulsquelle dazumachen. Da muss nicht eine Quelle alles erledigen. Auch in einer real aufgebauten Schaltung muss man dafür ein paar Teile extra einwerfen.
Ne, dass habe ich verstanden, dass beide separat geschaltet müssen. Doch wie ist das Verhältnis zu den Pulsquellen? Parameter mäßig, was müsste ich da annehmen? Aber Helmut, du hast mir schon ziemlich weit geholfen. Danke dir dafür
Pulse(0 4 delay 10n 10n ton tperiode) Einfach passende Zahlen einsetzen damit der gewünschte Puls herauskommt. Für Trise und Tfall habe ich schon mal 10n hingeschrieben.
Hier mal ein allgemeines Beispiel für den integrierenden Single Slope A/D Wandler mit LTspice. Den zip-file am besten in einem neuen Verzeichnis auspacken.
:
Bearbeitet durch User
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.
Mir fällt auf dass dein Zähler überläuft. Q7 wird 1 und dann wieder 0. Das ist ganz schlecht. Nimm eine niedrigere Taktfrequenz, z. B. die Hälfte.
Habe jetzt 25k genommen für den Takt, dabei ist lediglich am Ausgang die Spannung auf 150V runtergesunken. Aber trotzdem ist dies nicht proportional zum Eingang. Habe nämlich am Eingang 5V.
Es ist falsch den Zähler gleich am Ende des Zählvorgangs zurück zu setzen. Zuvor muss der Zählerstand in das Ausgangsregister geladen werden.
So habe jetzt einen Delay von 10u am Reset Eingang des Zählers eingebaut, sodass das Reseten erst nachdem die Zahl am Zähler an dem register übergeben wurde, resetet wird. Aber trotzdem komme ich auf ca. 220V. Könnte das stimmen??
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.
> 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.
:
Bearbeitet durch User
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.
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.
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.