Forum: FPGA, VHDL & Co. zwei PLLs mit leicht unterschiedlicher Frequenz erzeugen?


von pleung (Gast)


Lesenswert?

Hallo,

Ich benötige für ein Projekt zwei Clocks, welche mit einem 
Frequenzunterschied von ca. 1% laufen.

Auf einen zweiten Oszillator würde ich gerne aus Platzgründen 
verzichten.

Gibt es eine elegante Methode aus einer PLL zwei Signale zu gewinnen, 
welche so nahe beieinander liegen. Mit Frequenz multiplizieren / 
dividieren ist das ja eher nicht zu erreichen.

grüße

pleung

von Falk B. (falk)


Lesenswert?

Bei welcher Ausgangsfrequenz?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Meine Glaskugel is leider grade kaputt, daher mehr Infos.

von Joe (Gast)


Lesenswert?

Es geht ganz einfach:

Man zählt die Impulse mit und überspringt jedem 100sten.

von Schlumpf (Gast)


Lesenswert?

Z.B:

PLL mit 200 MHz taktet zwei Counter.
Der eine Counter zählt immer auf 100 und toggelt dann ein Register
Der andere Counter zählt immer auf 99 und toggelt dann ein Register.

Die Ausgänge der beiden Register sind dann Rechtecksignale mit 1MHz.. 
bzw 0,99MHz

von Schlumpf (Gast)


Lesenswert?

.. Ähh sorry.. natürlich nicht 0,99 MHz sondern 1,01 MHz ;-)

von Weltbester FPGA-Pongo (Gast)


Lesenswert?

Der TE scheint verschwunden, kann die Frage nach den benötigten 
Frequenzen wohl nicht beantworten.

von Fpgakuechle K. (Gast)


Lesenswert?

Weltbester FPGA-Pongo schrieb im Beitrag #4575211:
> Der TE scheint verschwunden, kann die Frage nach den benötigten
> Frequenzen wohl nicht beantworten.

Vielleicht eine Troll-Attacke; der Username "Blähung" richt danach.

von J. S. (engineer) Benutzerseite


Lesenswert?

Falls doch jemand sowas braucht: Das Takteinsparen und Beschleunigen 
kann man bei FPGA mit den IOs und den Delays machen und dann eine zweite 
PLL nachschalten, die die Sprünge glättet:

http://www.96khz.org/oldpages/frequencyshifter2.htm

von pleung (Gast)


Lesenswert?

Entschuldigung, war verreist und konnte deshalb den Thread nicht mehr 
verfolgen. Erst mal Danke für die vielen Antworten.

Die Frequenzen die ich benötige sind ca. 4MHz und als 2. Frequenz 
4.05MHz wobei die genauen Werte nicht entscheidend sind.

Die Anwendung ist folgende:
PLL_1 triggert an jeder Flanke ein Signal, welches sehr hochfrequent (im 
GHz Bereich) ist und somit nicht vom ADC abgetastet werden kann.

PLL_2 triggert eine Sample-And-Hold Schaltung, um dieses periodische 
Signal zeitsequentiell (sozusagen das Moiré) abzutasten.

von Torben K. (tokuhila)


Lesenswert?

Wäre da nicht eine Phasenverschiebung sinnvoller?

von pleung (Gast)


Lesenswert?

@tokuhila
eine lineares Phasenschieben wäre natürlich auch möglich.

mit
und
wobei das dann ja mit linearem
auf
rausläuft, was wieder einer Frequenzänderung entspricht.

Dazu müsste mann dann bei jedem Takt die Phase um wenige ns verschieben. 
Ist sowas machbar?

von Karl (Gast)


Lesenswert?

pleung schrieb:
> Dazu müsste mann dann bei jedem Takt die Phase um wenige ns verschieben.
> Ist sowas machbar?

Angeblich können schon die kleineren TI C2000er Delays von einigen 100 
ps erzeugen.
Selbst mit einem Wald- und Wiesencontroller neuerer Bauart (z.B. STM32F4 
auf Disco-Board) kann man mit ca 5 bis 6 ns am Timer rumschubsen. Wenn 
der sonst nichts zu tun hat :-)

von Karl (Gast)


Lesenswert?

Ahhh. Man beachte das Forum. Im FPGA ist das doch ein Kinderspiel 
digital zu lösen, oder?

von Torben K. (tokuhila)


Lesenswert?

> Dazu müsste mann dann bei jedem Takt die Phase um wenige ns verschieben.
> Ist sowas machbar?

Ist das nicht üblich um periodische Signale größer Samplefrequenz zu 
erfassen? Oszis nennen das Random Sampling.

Du brauchst ja für dein zeitversetztes Sampling eh einen Zeitverzug den 
du so hast. Im FPGA machbar, im uC ebenso

Bei zwei verschiedenen Frequenzen wirds aufwändiger.

von Markus F. (Gast)


Lesenswert?

Bei zwei PLLen wird es eh jittern wie Hund. Sowas macht man mit einem 
digitalen Monoflop.

von pleung (Gast)


Lesenswert?

@Karl:
Ok wenn das einfach machbar ist, dann werde ich mich da mal einlesen. 
Noch eine verstädnis Frage. Wie funktioniert denn das technisch. Wenn 
ich eine Taktfrequnez von 16MHz habe ich ja eine Taktperiode von 250 ns. 
Wie kann ich damit ein delay im ps Bereich erreichen.

@tokuhila:
danke für den Hinweis auf das Random-Sampling, das schaue ich mir mal an

@frimark:
Mit einem Monoflop kann ich doch nur ganze Takte hochzählen oder? Da 
wird ein Delay von wenigen ns bei 4Mhz Taktfrequenz nicht machbar sein.

von Strubi (Gast)


Lesenswert?

An Pleung:

ich nehme mal an, dass dein abzutastendes Signal periodisch ist und du 
aus der Schwebung eine Rekonstruktion machst oder gezielt versetzt 
abtastest. Klingt etwas nach Radartechnik.

Mit PLLs wird sowas ein bisschen zum Roulette, wenn du nicht eine gute 
Referenzquelle (GPS, etc.) hast. Am besten funktionieren meine Meinung 
nach die verschiedenen Lösungen von variablen Delays, aber da wird's 
dann sehr FPGA-spezifisch. Auf den Spartanern kannst du mit dem DCM bzw. 
den IODELAYs was machen, ansonsten bleibt dir immer noch die manuelle 
Plazierung von LUTs für ganz kleine Delta-T, das machen offenbar auch 
die Teilchenphysiker so (Google mal zum Thema TDC und Cern).
Knifflig wirds nur, wenn die Phase sehr schnell variieren muss, aber das 
dürfte bei 4 MHz noch gnädig sein. Und sonst musst du halt mehrere 
Delays instanziieren, wird dann nur mit der MUXerei des Triggers etwas 
gefährlich.

Grüsse,

- Strubi

von Torben K. (tokuhila)


Lesenswert?

Hm, ist sowas nicht mit einem schnellen Zähler lösbar? Takt per PLL auf 
100 oder 200 MHz erhöhen, damit auf einen Zähler, welcher dann im 
10ns/20ns Raster zählt. Verknüpft mit dem 4 MHz Signal erhalte ich dann 
das Sample-Signal und weiß sogar die zeitliche Zuordnung?

von Wanderer (Gast)


Lesenswert?

Clock Synthesizer IC wie cdce... von Ti wurden für sowas entwickelt.
Es gibt auch eine kostenlose Software dafür: ClockPro(TM) Programming 
Software

von Kameramann (Gast)


Lesenswert?

pleung schrieb:
> Wie kann ich damit ein delay im ps Bereich erreichen.

Durch die Hinzuschaltung eines UND-Gatters (bei dem beide Eingänge 
verbunden sind)

Oder zwei UND-Gatter.
Oder drei ...
oder noch mehr ....

Für sowas braucht man kein FPGA

... sondern "Logik" :-)

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.