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.
so als idee: vielleicht kann man ja das prinzip der ablenksteuerung eines röhrenmonitors als grundlage nehmen?
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?
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.
Der "Positionstisch" wird analog angesteuert? Wirklich?
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.
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
