Hallo!
Ich arbeite mit folgender Hardware:
cRio 9054 Gehäuse
S-Serie 9269 Analogausgangsmodul
Das cRio soll als Signalgenerator arbeiten. Es sollen drei Signale mit einem Phasenversatz von jeweils 120 Grad erzeugt werden.
Das Signal wird für ein belieges Zeitintervall T_ein eingeschaltet und dann für ein weiteres Intervall T_aus ausgeschaltet. Nach jedem Durchlauf wird die Signalfrequenz erhöt f= {1Hz,2Hz,...300Hz,305Hz,...1000Hz,1100Hz...20kHz}. Damit die Signale auch bei höheren Frequenzen eine gute Auflösung haben, sollen sie auf dem FPGA generier und mit 100kHz gesamplet werden. Die Signalparameter werden über ein Host.VI auf dem PC vorgegeben (Amplitude, Phasenoffset, "Frequenziteration") und dem FPGA als Variable übergeben. Die Signale werden über Sine Wave Generator erzeugt und anschließend auf dem FPGA ausgegeben.
Nun zum Problem:
Der Phasenversatz der Signale variiert. Er bleibt nicht konstant bei 120 Grad. Ich vermute, dass das Problem in der parallelen Erzeugung der 3 Signale liegt. Da ich relativ neu in der Programmierung auf dem FPGA bin, kenne ich mich hier leider nicht sehr gut mit Timing-Problemen aus. Mein erster Versuch war, die Generator-Funktionen in separate Schleifen zu packen, um die Parallelität besser auszunutzen. Das hat allerdings nur für die ersten 50 Frequenziterationen funktioniert, dann kam es wieder zu einem ungewollten Versatz.
Gibt es eine Möglichkeit, die Phasenverschiebung auf dem FPGA zu regeln?
Vielen Dank für Eure Hilfe!