Taktfrequenz-Messung

OP #6019187
Hallo zusammen,
bei einer RGMII-Schnittstelle (mit three-speed-Unterstützung) kann ja 
der RX_CLK 125, 25 oder 2,5MHz sein, je nach Gegenstück vom PHY.
Angenommen wir haben einen festen 125MHz Takt intern, wie würdet ihr die 
Geschwindigkeit vom RX_CLK bestimmen? 125MHz verdoppeln und einfach 
einen Zähler implementieren?
Gibt es da bessere Tricks?
Grüße & vielen Dank!
#6019211
Einen internen Zähler der eine genaue feste Zeit lang zählt, also mit 
125 MHz dann von 0 bis 124999999 und dann zurücksetzen.

Und einen Zähler mit dem externen zu messenden Takt. Und diesen Zähler 
resettest du immer dann wenn der interne Zähler resettet wird und gibst 
den Zählerstand aus.

Z. B. hat der Zähler mit dem externen Takt dann bis 99856837 gezählt 
während der 125 MHz Zähler bis 124999999 gezählt hat. Dann ist der 
externe Takt vermutlich ein 100 MHz Takt.

Noch einfacher wäre ein Oszi anschließen ...
Gast #6019388
St. D. schrieb:
> bei einer RGMII-Schnittstelle (mit three-speed-Unterstützung) kann ja
> der RX_CLK 125, 25 oder 2,5MHz sein, je nach Gegenstück vom PHY.
Ich würde die entsprechenden Status-Register im PHY über MDIO auslesen.
Da steht ja drin, mit welcher Geschwindigkeit der Link läuft.

Duke
Gast #6019551
Hi,

ich sehe dazu das Taktsignal als digitales Signal an und zähle die 
steigenden Flanken (edge detection) pro Zeitbasis. Da kommt das 
Nyquist-Shannon-Abtasttheorem ins Spiel, d.h. der Arbeitstakt muss mind. 
2x Eingangsfreq. sein. Entweder ein Takt > 250 MHz nutzen (wenn 
verfügbar) oder den Eingang per Taktteiler unter 125/2 bringen.

grüße
Gast #6019584
daniel__m schrieb:
> Da kommt das
> Nyquist-Shannon-Abtasttheorem ins Spiel, d.h. der Arbeitstakt muss mind.
> 2x Eingangsfreq. sein. Entweder ein Takt > 250 MHz nutzen (wenn
> verfügbar) oder den Eingang per Taktteiler unter 125/2 bringen.

Das klingt ja jetzt doch etwas hoch-abenteuerlich überingeniörisiert.
Da ist die Variante mit dem Zähler doch etwas pragmatischer :-)

Nur sollte man sich da ev. einige Gedanken über Einsynchronisierung 
machen (Taktdomänen-Uebergang) um Glitches falscher Zählerwerte zu 
verhindern.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.