Forum: FPGA, VHDL & Co. FPGA mit DA/DAC als Counter und PID-Controller


von Daniel U. (danielmoony)


Lesenswert?

Hallo Foristen,
um eine Controll-Loop zur Frequenzstabilisierung zu realisieren bin ich 
auf der Suche nach einem FPGA-Board.
Folgendes soll das FPGA-Board leisten:
Die Frequenz zweier Eingangssignale sollen mit mit einem Counter 
bestimmt werden. Aus den gezählten Frequenzwerten soll mit einem PID 
zwei Controll-Signale bestimmt werden und zu den DACs gehen.

Folgende Spezifikationen müssen dabei erfüllt werden:
Eingangsfrequenzen : 0 bis 500 MHz (mehr wäre besser)
ADC resolution: sollte nicht so wichtig sein, dient nur zum Zählen der 
Frequenzen.
DAC resolution: 14 bit, Sampling-Rate: 125 MS/s


Das Red Pitaya STEMlab 125 - 14 wäre fast optimal, allerdings geht das 
nur bis 50 MHz. Es ist auch mit einem Linux-System ausgestattet, was mir 
auch wichtig wäre.

Über Ideen und vorschläge wäre ich sehr dankbar.
Da ich ein blutiger Anfänger bei FPGAs bin, habe ich schwierigkeiten 
eine geeignete Lösung zu finden.

Gruß,

Daniel.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Daniel U. schrieb:
> Das Red Pitaya STEMlab 125 - 14 wäre fast optimal, allerdings geht das
> nur bis 50 MHz
Wo steht diese Begrenzung?

> Die Frequenz zweier Eingangssignale sollen mit mit einem Counter
> bestimmt werden.
Wie schnell und wie genau müssen diese Frequenzen bestimmt werden? Was 
sind das für Signale? Wie schnell muss der Regler sein? Und wofür ist da 
ein Prozessor mit OS nötig?

Und was tun die ADC und DAC in der ganzen Geschichte? Ist das ein 
analoges Eingangssignal mit 500MHz? Kannst du das nicht vorweg mit einem 
Komparator digitalisieren?

: Bearbeitet durch Moderator
von Daniel U. (danielmoony)


Lesenswert?

Lothar M. schrieb:

Hallo,
danke für die Antwort.

> Daniel U. schrieb:
>> Das Red Pitaya STEMlab 125 - 14 wäre fast optimal, allerdings geht das
>> nur bis 50 MHz
> Wo steht diese Begrenzung?
>
Hier stehts: 
https://www.galagomarket.com/datasheet/redpitaya_hardware%20specifications.pdf

>> Die Frequenz zweier Eingangssignale sollen mit mit einem Counter
>> bestimmt werden.
> Wie schnell und wie genau müssen diese Frequenzen bestimmt werden? Was
> sind das für Signale? Wie schnell muss der Regler sein? Und wofür ist da
> ein Prozessor mit OS nötig?

Frequenz-Genauigkeit sollte mindestens 100 KHz betragen.
Die Reaktionszeit Frequenzmessung -> Control-Signal sollte etwa 10 
microseconds betragen.
Wäre schön, wenn ich die gemessenen Frequenzwerte und die berechneten 
Control-Werte auch gleichzeitig mitloggen könnte, daher ein extra OS.

> Und was tun die ADC und DAC in der ganzen Geschichte? Ist das ein
> analoges Eingangssignal mit 500MHz?

Ja, die beiden Eingangssignals sind anloge RF-Signale. Die beiden 
Ausgangssignale sind Control-signale.

> Kannst du das nicht vorweg mit einem
> Komparator digitalisieren?
Hm, möglicherweise... gibts das als Bauteil um das an ein Board zu 
packen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Daniel U. schrieb:
> Frequenz-Genauigkeit sollte mindestens 100 KHz betragen.
Und wie passen da die 0 Hz ins Bild? Entsprechen dann 0...99,99kHz einem 
Wert von 0 Hz? Und 100kHz..199,99kHz sind 100kHz usw?

> Reaktionszeit Frequenzmessung -> Control-Signal sollte etwa 10
> microseconds betragen.
Du musst also in 10 us die Frequenz auf 100kHz genau bestimmen?
Es reicht also ein Wert von 0...5000 als Ergebnis? Dann würde ich für 10 
us die Eingangsimpulse zählen und über eine LUT die Frequenz berechnen 
(wenn das überhaupt nötig ist und nicht mit der Impulszahl weiter 
gerechnet werden kann).

> Wäre schön, wenn ich die gemessenen Frequenzwerte und die berechneten
> Control-Werte auch gleichzeitig mitloggen könnte, daher ein extra OS.
Diese Argumentationskette ist nicht schlüssig, denn du kannst die Daten 
auch auf dem FPGA loggen und per Ethernet versenden...

von Daniel U. (danielmoony)


Lesenswert?

Lothar M. schrieb:
> Daniel U. schrieb:
>> Frequenz-Genauigkeit sollte mindestens 100 KHz betragen.
> Und wie passen da die 0 Hz ins Bild? Entsprechen dann 0...99,99kHz einem
> Wert von 0 Hz? Und 100kHz..199,99kHz sind 100kHz usw?
>
Hier meinte ich, wie genau die Anzahl der gezählten Pulse des 
Frequenzzählers mit der tatsächlichen Frequenz korrespondiert 
(Freq=Anzahl der Pulse/Gatetime).
Das hängt natürlich von der Gate-Time ab. Bei einer Gate-Time von 10 us 
kann die Messgenauigkeit nicht besser sein als 1/(10 us) = 100 KHz.
Aber stimmt, am ende kommt man effektiv nur auf 5000 unterschiedliche 
Frequenzwerte. Allerdings möchte ich auch die Möglichkeit haben, die 
Gate-Time zu erhöhen und damit die Frequenzauflösung zu verbessern.

>> Reaktionszeit Frequenzmessung -> Control-Signal sollte etwa 10
>> microseconds betragen.
> Du musst also in 10 us die Frequenz auf 100kHz genau bestimmen?
> Es reicht also ein Wert von 0...5000 als Ergebnis? Dann würde ich für 10
> us die Eingangsimpulse zählen und über eine LUT die Frequenz berechnen
> (wenn das überhaupt nötig ist und nicht mit der Impulszahl weiter
> gerechnet werden kann).
>

Ja. In der Tat kann wahrscheinlich mit der Impulszahl weiter gerechnet 
werden.

>> Wäre schön, wenn ich die gemessenen Frequenzwerte und die berechneten
>> Control-Werte auch gleichzeitig mitloggen könnte, daher ein extra OS.
> Diese Argumentationskette ist nicht schlüssig, denn du kannst die Daten
> auch auf dem FPGA loggen und per Ethernet versenden...
Aber ist so ein Feature schon eingebaut oder müsste ich so ein Interface 
erst selber mühsam implementieren? Da wäre mir ein eingebautes OS wie 
beim Pitaya am liebsten.

von Purzel H. (hacky)


Lesenswert?

Und das Ganze soll ? Ich habe den Verdacht, dass man's einfach analog 
loesen kann.
Erzaehl die ganze Story. Eine Laserstabilisierung ?

von Daniel U. (danielmoony)


Lesenswert?

Jetzt ist G. schrieb:
> Und das Ganze soll ? Ich habe den Verdacht, dass man's einfach
> analog
> loesen kann.
> Erzaehl die ganze Story. Eine Laserstabilisierung ?


Ja, genau. Im Prinzip geht es um Laserstabilisierung.
Allerdings ist das System etwas komplizierter. Hier gibt es zwei 
Frequenzen(-abweichungen) f1, f2 die beide von den Kontrollparametern p1 
und p2 abhängen. f1 = f1(p1,p2) und f2 = f2(p1,p2) oder (f1,f2) = 
M(p1,p2).
Die Kontrollparameter würde sich also als Kombination von p1 und p2 
ergeben.
Wenn man die Kontrollparameter entsprechend p1=g(f1,diff(f1),integ(f1)) 
und p2=h(f2,diff(f1),integ(f2)) (also jeweils nur abhängig von f1,f2 und 
deren Differentialen/Integralen) würde wohl funktionieren (falls M 
diagonalisierbar ist).
Allerdings erwarte ich eine bessere Performanz wenn man entsprechende 
Kombinationen von f1 und f2 jeweils für p1 und p2 berücksichtigt.
Also (p1,p2)=G(f1,diff(f1),integr(f1),f2,diff(f2),integr(f2)).

von Purzel H. (hacky)


Lesenswert?

Nochmals die Story. Es geht um eine Laserstabilisierung.
Allenfalls um die Repetitionsfrequenz eines Pulslasers ?
Oder um zwei Laser ?

Bitte nicht schon die vermeintliche Loesung vornewegnehmen.

: Bearbeitet durch User
von Daniel U. (danielmoony)


Lesenswert?

Ja. Ein gepulster Laser. Es geht um die Repetitionsfrequenz und 
Zentralfrequenz.

Jetzt ist G. schrieb:
> Nochmals die Story. Es geht um eine Laserstabilisierung.
> Allenfalls um die Repetitionsfrequenz eines Pulslasers ?
> Oder um zwei Laser ?
>
> Bitte nicht schon die vermeintliche Loesung vornewegnehmen.

von Purzel H. (hacky)


Lesenswert?

Ja, geht doch. Die Repetitionsfrequenz macht man mit einem analogen PLL. 
Also die Frequenz extern erzeugen resp vorgeben, und mit dem 
Laserrepetitionssignal auf DC mischen. Mit einem Piezo als 
Laengenstellglied kommt man gut auf ps jitter runter. Als 
Regelbandbreite genuegt der Audiobereich.

Wie soll das mit der Zentralfrequenz gehen ? Was ist das ?

von Daniel U. (danielmoony)


Lesenswert?

Jetzt ist G. schrieb:
> Ja, geht doch. Die Repetitionsfrequenz macht man mit einem analogen PLL.
> Also die Frequenz extern erzeugen resp vorgeben, und mit dem
> Laserrepetitionssignal auf DC mischen. Mit einem Piezo als
> Laengenstellglied kommt man gut auf ps jitter runter. Als
> Regelbandbreite genuegt der Audiobereich.
>
> Wie soll das mit der Zentralfrequenz gehen ? Was ist das ?

Vielen Dank für deine Antwort.
Ah, ich denke ich verstehe was du meinst obwohl wir gerade verschiedene 
Begriffe verwenden.
Mit Zentralfrequenz meine ich die Lichtgeschwindigkeit geteilt durch 
Wellenlänge bei der ein (gepulster) Lasers arbeitet (z.B. bei 1550 nm 
sind das etwa 200 TeraHz). Die kann, wie du sagst, über eine PLL, die 
auf den Piezo wirkt und somit auf die Resonatorlänge, stabilisiert 
werden. (Vieleicht komme ich darauf nochmal zurück, ich hab fehlt )
Mit Repetionsfrequenz meine ich die Anzahl der Pulse pro Zeiteinheit.
Wenn diese nicht zu hoch ist, kann man sie einfach mit einer Photodiode 
messen, die daraufhin ein RF-Signal abgibt.
Je nach Laser kann man die Repetionsfrequenz auf unterschiedliche Weise 
verändern und locken.

Unser Lasersetup ist etwas anders. Möglicherweise wäre es besser 
Repetionsfrequenz und Zentralfrequenz, wie oben beschrieben, in 
kombination zu stabilisieren. Daher meine Idee mit dem FPGA.

von старший мудпый (Gast)


Lesenswert?

Ich hab Repetitionrate von modengelockten Lasern zwischen 10 und 260MHz 
stabilisiert. Genauer gesagt auf einen externen Oszillator gelockt. 
Unser Produkt war fuer einen Jitter von besser als 1ps rms oder so 
spezifiziert fuer Laser mit 5ps Pulslaenge. Das waren digital 
unterstuetzte analoge Regelkreise. Der Jitter von 1ps bei 100MHz 
bedeutet 1/10000 Periode

Es gibt uebrigens Fotodioen fuer 20 GHz...

Wenn du nun auch noch die zentrale Wellenlaenge stabilisieren willst 
wirst du noch ein Fabry Perot benoetigen. Dabei ist zu gewaertigen, dass 
ein modengelockter Laser viele logitudinale Moden beinhaltet.

Aber vielleicht redest du von einen ns Pulslaser. Der geht besser mit 
einem Fabry-Perot.

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.