Forum: Mikrocontroller und Digitale Elektronik Sigma Delta DAC im FPGA nachbilden oder kaufen?


von chris (Gast)


Lesenswert?

Hallo zusammen,
Das Unwichtige ist zwischen gestrichelten Linien, nur als Info.

ich muss einen Positionstisch mit einem Dreiecksignal ansteuern. Der 
Positionstisch hat eine x-Achse und eine y-Achse.
Das ganze geht 100µm (entspricht 0-10V) je Achse.
Das ganze soll genutzt werden um über eine Probe zu rastern. Hierbei 
soll am PC die Geschwindigkeit der x-Achse (zwischen 0,1Hz und 20 Hz) 
und die Anzahl der Zeilen eingestellt werden (normalerweise 128-1024). 
Die y-Bewegung muss also teils sehr langsam sein.
Nun möchte man natürlich nicht immer 100µm fahren, sondern auch gerne 
mal 500nm (also 0-50mV). Auch hier müssen noch genügend Zwischenschritte 
vorhanden sein damit das Dreieck wenig Stufen hat. Natürlich sollte auch 
ein Offset einstellbar sein.

----------------------Anfang Unwichtiges--------------------------

Nun habe ich das mal mit LTSpice versucht Analog aufzubauen. Also ein 
Integrator der von einer DAC1 gesteuerten Konstantstromquelle geladen, 
und nach überschreiten der DAC2 eingestellten Schwelle die 
Konstandstromquelle umpolt. Das ganze wird dann mit einem letzten OPV 
verstärkt und um einen Offset von DAC3 verschoben.
Hier ist das größte Problem die Steuerung und Synchronität der beiden 
Achsen. Das habe ich nun soweit "verbastelt" das ich das nicht mehr 
sinnvoll halte.

Die nächste Lösung wäre ein 24Bit Audio DAC. Diese sind recht günstig, 
aber meistens auch mit ziemlich vielen Features ausgestattet, die 
ersteinmal alle konfiguriert werden müssen. Der Frequenzbereich ist auch 
nicht sehr passend für mich.

-------------------------Ende Unwichtiges------------------------

Nun ist das Prinzip des Audio DACs ein ziemlich einfaches, was vor allem 
in einem FPGA (solch eines benutze ich sowieso) mit schnellen Pins und 
einem einfachwn Filter nach diesem Pin realisiert werden kann (Gut, ich 
würde mit einem Transistor die Spannung einer Referenzquelle ein und aus 
schalten, an einem Transistor soll es nicht scheitern).
Da ich bei einem Dreieck mit 20Hz Frequenz ab 100Hz Tiefpassfiltern 
würde (die Ecken sind nicht wichtig, da in jede Richtung 10% 
"überfahren" und die Daten verworfen werden).
Zum konfigurieren dachte ich an folgendes: Es wird ein 24Bit Akkumulator 
genutzt. Die Grundfrequenz des FPGAs wird bei etwa 200MHz liegen. Ich 
berechne also entsprechend der Scangröße und des Offsets die beiden 
Grenzen des DACs. Nun wird die Anzahl der Cycles pro Schritt berechnet, 
damit alles linear ist.

Rechenbeispiel 1: Ich möchte 1µm um den Mittelpunkt mit 2Hz Scannen --> 
4,95V-5,05V -->  Digitalwerte: 8.304.772 - 8.472.494 --> Pro Sekunde 
83.886 Schritte --> alle 2384 Cylces der 200MHz clock wird ein Schritt 
erhöht (Fehler liegt dann deutlich unter 1%). Und das bei einer 
durchschnittlichen Pulsfrequenz von etwas unter 100MHz, mit ausreißern 
in der 60MHz Region --> der Filter filtert das locker weg.

Rechenbeispiel 2: 80µm mit 10µm Offset und 0,1Hz --> 1V-9V --> 
Digitalwerte: 1.677.722 - 15.099.494 --> Pro Sekunde 1.342.177 Schritte 
-->  149 Cycles pro Schritt. Die Mindestpulsfrequenz beträgt 
200MHz/(2^24/1.677.772) = 20MHz. Auch das ist super.

An den Rändern habe ich allerdings das Problem, dass die Pulsfrequnz 
sehr niedrig wird. Beispielsweise mit dem DAC-Wert 1 bekommt man eine 
Pulsfrequenz von 12Hz, was natürlich voll durch den Filter kommt.

Man könnte das wahrscheinlich auch durch zwei Ansätze das Problem 
verringern. Man könnte bei sehr tiefen/hohen Digitalwerten (die ja mit 
einer niedrigen Pulsfrequenz einhergehen) die Bitbreite des Akkumulators 
verkleinern. Da Scans an den Rändern meist mit großen Scanweiten 
einhergehen, sind kleine Zwischenschritte nicht nötig (Niemand scannt 
1µm x 1µm und 98µm Offset).
Die zweite Möglichkeit wäre, man nutzt die oben und unteren 5% der 
möglichen DAC Werte nicht, und Vestärkt das Signal etwas mehr setzt 
einen kleinen Offset. So werden ganz schnell aus 0,05V_Ref - 0,95V_Ref 
0-10V.

Macht das für euch irgendeinen Sinn? Oder doch lieber mehrere Audio DACs 
kaufen? Mich reizt eigentlich, dass man den DAC komplett anpassen kann. 
Auch ein differentieller Ausgang ist kein Problem. Ich weiß nur nicht ob 
es sich wirklich lohnt und ob ich auch den Modulationsripple weg 
bekomme. Es wäre eben sehr einfach sehr genaue Rampen auszugeben. Die 
Linearität muss nichteinmal gegeben sein, da wir die Position mit 
Sensoren regeln. Auch die Reaktionsgeschwindigkeit wäre bei einem 
eigenen DAC wohl schneller, und somit leichter zu regeln.

Bei der langsamen Achse geht es ja um Frequenzen im mHz-Bereich. Hier 
sollte ja alles noch einfacher werden.

von Joe F. (easylife)


Lesenswert?

so als idee: vielleicht kann man ja das prinzip der ablenksteuerung 
eines röhrenmonitors als grundlage nehmen?

von Joe F. (easylife)


Lesenswert?

wenn ich es richtig verstehe, reicht dir eine auflösung von 1024x1024. 
da benötigst du eigentlich nur 2 gute 12-bit DACs und 2 opamps, um die 
signale auf 10v zu skalieren... oder willst du auch 'reinzoomen' können, 
also 1024x1024 in einem kleineren bereich abscannen?

von chris (Gast)


Lesenswert?

Joe F. schrieb:
> so als idee: vielleicht kann man ja das prinzip der ablenksteuerung
> eines röhrenmonitors als grundlage nehmen?

Eine digitale Lösung würde ich bevorzugen, da dann beispielsweise das 
mehrmalige scannen einer Zeile, oder das schnelle springen zu bestimmten 
Punkten ermöglicht wird. Leider habe ich hier natürlich das problem der 
endlichen Auflösung.

Joe F. schrieb:
> oder willst du auch 'reinzoomen' können,
> also 1024x1024 in einem kleineren bereich abscannen?

Genau das. Und schwups ist man bei einem 20 Bit DAC. Im Idealfall werden 
sogar Zwischenstufen ausgegeben.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Der "Positionstisch" wird analog angesteuert? Wirklich?

von chris (Gast)


Lesenswert?

Natürlich. Beide Achsen des Lineartisches werden durch je einen Piezo 
angetrieben. Davor ist ein Hochspannungsverstärker der die 0 - 10V in 
-10 - 150V verstärkt (und unempfindlich gegenüber Kapazitiven Lasten 
ist).

Wir haben auch digital ansteuerbare Tische. Diese haben einen 
Ultraschallantrieb. Diese sind aber für eine Rasterbewegung nicht gut zu 
gebrauchen.

von Gerald M. (gerald_m17)


Lesenswert?

Ich weiß nicht viel darüber, aber vielleicht macht es Sinn, die Anzahl 
der Bit der schnellen Achse zu reduzieren. Bei einem LSB unterschied 
gibt es einen zusätzlichen Überlauf mit 12 Hertz. Da du mit 100 Hertz 
filtern möchtest, kommt das als kleines Pulsen durch, nicht jedoch als 
wirkliche Spannungsänderung.
Reduzierst du auf 20 Bit, bist du bei knapp 200 Hertz Frequenz, die wird 
schon gefiltert und du hast eine wirkliche Spannungsänderung.

Bei der langsamen Achse sind 24 Bit OK, da du ja mit 100 Hertz/ 256 
Zeilen = 0.5 Hertz filtern kannst.

Nur als Überlegung meinerseits.

von Anja (Gast)


Lesenswert?

Mhm,


chris schrieb:
> Macht das für euch irgendeinen Sinn? Oder doch lieber mehrere Audio DACs
> kaufen?

Du weißt das Audio-DACs eine Wiederholgenauigkeit von ca 6% haben?
-> ich würde lieber einen normalen Präzisions-DAC (LTC275x ?) verwenden.

chris schrieb:
> Natürlich. Beide Achsen des Lineartisches werden durch je einen Piezo
> angetrieben. Davor ist ein Hochspannungsverstärker der die 0 - 10V in
> -10 - 150V verstärkt (und unempfindlich gegenüber Kapazitiven Lasten
> ist).

Wie "genau" ist denn das System aus Hochspannungsverstärker und 
Mechanik?
Ich kann mir kaum vorstellen daß da wesentlich mehr als 12 Bit 
herauszuholen sind.

Gruß Anja

von chris (Gast)


Angehängte Dateien:

Lesenswert?

Anja schrieb:
> Ich kann mir kaum vorstellen daß da wesentlich mehr als 12 Bit
> herauszuholen sind.

Dem müsste ich energisch widersprechen. Anbei ein Zoom Bild, mit einer 
ähnlichen Stage. Zu sehen ist ein Zoom von 800µm bis runter zu 500nm 
(das sind allein schon ~11 Bit) mit 512x512 Pixeln.
Hier wurde das Signal mit einem gekauften Controller generiert.

von Gerald M. (gerald_m17)


Lesenswert?

Gut, am Ende sieht man etwas Verschiebung bei den Linien.
Aber doch ziemlich beeindruckend. Wenn das Gerät gekauft ist, welche 
Spezifikationen hat es denn?

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.