Pulsgenerator bis 4MHz steuerbar mit DSP

#3220436
Lesenswert?

Hi,

ich bin auf der Suche nach einer Loesung um eine in der DSP (C6747) 
errechneten Freuqenz in Pulse umzuwandeln.
Die Pulsfrequenz kann dabei von 800Hz bis 4MHz betragen.
Die Genauigkeit muss midestens 0.001% sein, d.h. Aufloesung von 
mindestens 0.8Hz!!
Um das mit der DSP zu realisieren schein mir bislang unmoeglich. Die 
internen Timer arbeiten mit 24MHz und koennen somit die Genauigkeit 
nicht errechen.
Hat jemand Vorschlaege wie ich es realisieren kann, am liebsten noch 
ueber I2C Bus.
#3223511
Lesenswert?

Habe mit FPGAs absolut gar keine Erfahrung. Sagen wir mal ich koennte da 
noch paar Abstriche machen, wie z.B. nur bis 1MHz Pulse und nur 0.01% 
Genauigkeit. Welchen FPGA koennte ich da nehmen.
Ich frage, weil wenn ich mir die Datenblaetter von verschiedenen FPGAs 
anschaue komme noch nicht ganz dahinter wie schnell die FPGA dafuer sein 
muss.

Ich habe auch schon an sowas wie eine DDS gedacht, z.B. AD9837. 
Ueberschreitet meine Anforderung um Weiten und ist dabei einer der 
billigsten und langsamsten DDS.
Gast #3223810
Lesenswert?

Könntest du etwas genauer beschreiben, was du machen willst. Mir scheint 
die Anforderung an die Genauigkeit etwas hoch.
Ich weiss, dass sind wieder Diskussionen wie "Ich brauche eine 16-bit 
ADC" und "Nein, brauchst du nicht, das geht mit 10!"
Aber vielleicht hast du dich mit deiner Genauigkeit ja verrechnet. Mit 
deinen reduzierten Anforderungen bist du immer noch bei 10GHz und das 
ist bei weitem keine Kleinigkeit.
Vielleicht gibt es ja ganz andere Lösungsansätze, die auch umsetzbar 
sind. Aber da fehlen noch die Inforamtionen von deiner Seite.

Gruß, Jens
#3224959
Lesenswert?

Ja, mein Fehler ...

Ok um klartext zu sprechen: Die DSP errechnet einen Laengenwert und das 
mit einem Udate-Rate von 1ms. Die Pulse spiegeln die Laenge wieder. Die 
Genauigkeit bezieht sich also nicht auf die Pulsfrequenz, sondern auf 
die Pulsanzahl. Die genauigkeit ist also relativ, da es drauf ankommt 
wie lange man die Pulse zaehlt.
Ich generiere die Pulse bislang mit dem internen DSP timer (24 MHz). 
Dabei aktualisiere ich die Pulsfrequenz jede milisekunde.
Bislang erreiche ich mit meinem System eine Genauigkeit von 0.01% 
bezogen auf die Pulsanzahl.
Inzwischen haben sich die Anforderungen veraendert, sodass ich nun mit 
der Pulsfrequenz bis 1 MHz gehen muss und dabei die Genauigkeit der 
Pulsanzahl innerhalt 0.01% sein muss.
Bislang nutze ich ja 24 MHz timer, und kann gerade mal bis 50kHz im 
Rahmen der Genauigkeit bleiben. Somit koennte man ja annehmen, dass ich 
nach der Lehre des Dreisatzes mit 500 MHz timer, Pulse bis 1 MHz 
generieren kann die meinen Genauigkeitsanforderungen entsprechen.
Und da ich wie genagt keine Ahnung von FPGAs habe: gibt es sowas wie ne 
"kleine schnelle" FPGA die diese "einfache" aufgabe der Pulsgeneration 
loest.
#3225441
Lesenswert?

>>>Bislang nutze ich ja 24 MHz timer, und kann gerade mal bis 50kHz im
Rahmen der Genauigkeit bleiben.

Nein, Du kommst bis 2400Hz, nämlich 0.01% von 24MHz:
Zähler mit 10000 laden, 2400Hz kommt raus.
Zähler mit 9999  laden, 2400.2400... Hz kommen raus, ca. 0.01% daneben.
Jede höhere Frequenz wird grober aufgelöst.

Nimm ne DDS, das geht.

Wenn die Zahl der Pulse nicht für jeden Millisekunden Intervall mit der 
geforderten Genauigkeit stimmen muß, sondern nur 'im Mittel', geht das 
auch mit Deiner Hardware. Dann kannst Du den Zählerendwert enstprechend 
der Messwerte 'modulieren'. Damit handelst Du Genauigkeit gegen 
Geschwindigkeit.

Cheers
Detlef
Gast #3264112
Lesenswert?

Hallo,
PLL braucht eine Einschwingzeit und wird bei schnellen Wechseln probleme 
machen, oder Phase Noise (Jitter) steigt stark an.

Ich würde sagen ein CPLD/FPGA ist die einzigste uns preiswerteste 
Lösung. Mit etwas VHDL kommt man da schon recht weit. Ich habe vor 
Jahren damit einen PWM mit 500MHz Takt aufgebaut. Eine PLL brauchst du 
zum Takten vermutlich trotzdem.

Gruß Sascha

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren