Gast
#4513028
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.
