Forum: Mikrocontroller und Digitale Elektronik STM32F107RBT6 Ethernet Clock


von Gustav G. (gustavgggg)


Lesenswert?

Hat jemand Erfahrungen mit dem Ethernet Interface des STM32F107RBT und 
der Clock Source. Im Datenblatt steht, dass man die 25MHz für MII aus 
einem externen Quartz über den MCO Pin bereitstellen kann. Nun würde ich 
aber gerne keinen 25MHz Quartz, sondern einen 20MHz Quartzoscillator 
benutzen und daraus in der PLL 50MHz Systemtakt erstellen und dann an 
MCO PLLCLK/2 ausgeben. Lässt sich in der Konfiguration Ethernet mit dem 
MII noch betreiben?

von Wastl (hartundweichware)


Lesenswert?

Gustav G. schrieb:
> Hat jemand Erfahrungen mit dem Ethernet Interface des STM32F107RBT und
> der Clock Source.

Dein Problem hat mit dem genannten Controller im Speziellen nichts
zu tun sondern betrifft alle Ethernet Cores und PHYs.

Ein per PLL generierter Clock ist weitaus weniger jitter-arm
als ein Quarzoszillator und birgt das Potential der vermehrten
Fehlübertragungen in sich da sich durch das Jittern die
Kommunikationspartner schlechter verstehen.

Ich würde mir einen extra Quarzoszillator für den PHY leisten,
seinen Clock kann man ja dem Ethernet Core auch zur Verfügung
stellen. Und der extra Quarzoszillator ist so klein und so
preisgünstig dass er in den meisten Fällen weder vom Platz
noch vom Preis ins Gewicht fällt. Dafür hat man nachher
garantiert weniger Ärger bzw. braucht sich im Fehlerfall um
diese Baustelle nicht zu kümmern.

von Gustav G. (gustavgggg)


Lesenswert?

Wastl schrieb:
> Ich würde mir einen extra Quarzoszillator für den PHY leisten,
> seinen Clock kann man ja dem Ethernet Core auch zur Verfügung
> stellen. Und der extra Quarzoszillator ist so klein und so
> preisgünstig dass er in den meisten Fällen weder vom Platz
> noch vom Preis ins Gewicht fällt. Dafür hat man nachher
> garantiert weniger Ärger bzw. braucht sich im Fehlerfall um
> diese Baustelle nicht zu kümmern.

Deswegen meine Idee einen Oszillator zu benutzen und den intern mit der 
PLL auf 25MHz zu bringen und diese dann für den PHY zu benutzen. Spricht 
da etwas gegen?

von Wastl (hartundweichware)


Lesenswert?

Gustav G. schrieb:
> Spricht da etwas gegen?

Prinzipiell geht's, aber die PLL macht den Jitter, falls du
es nicht verstanden haben solltest. PLLs in Controllern sind
"digital" und sind nicht auf Signalreinheit ausgelegt.
Ethernet-Verbindungen reagieren darauf empfindlich.

von Gustav G. (gustavgggg)


Lesenswert?

Wastl schrieb:
> Gustav G. schrieb:
>> Spricht da etwas gegen?
>
> Prinzipiell geht's, aber die PLL macht den Jitter, falls du
> es nicht verstanden haben solltest. PLLs in Controllern sind
> "digital" und sind nicht auf Signalreinheit ausgelegt.
> Ethernet-Verbindungen reagieren darauf empfindlich.

Ja ist verstanden. Der Prozessor bietet ha die Möglichkeit die 25MHz 
durchzurouten. Kann das auch schon Jitterprobleme geben?

von Wastl (hartundweichware)


Angehängte Dateien:

Lesenswert?

Gustav G. schrieb:
> Kann das auch schon Jitterprobleme geben?

Nein. Aber 50 MHz für den PHY sind besser da diese ja auch
erst durch eine PLL aus 25 MHz generiert werden müssten.

Im Anhang so wie ich das mache, ein unscheinbarer Oszillator
löst alle Probleme dieser (Ethernet-) Welt.

von Gustav G. (gustavgggg)


Lesenswert?

Wastl schrieb:
> Nein. Aber 50 MHz für den PHY sind besser da diese ja auch
> erst durch eine PLL aus 25 MHz generiert werden müssten.

Ich nutze den PHY im MII Mode und da steht im Datenblatt des verwendeten 
PHY 25MHz als Clockeingang. Übersehe ich da etwas?

von Wastl (hartundweichware)


Lesenswert?

Gustav G. schrieb:
> Übersehe ich da etwas?

Nein. Ich "mag" halt RMII lieber und da braucht es 50 MHz.

von Wastl (hartundweichware)


Lesenswert?

Gustav G. schrieb:
> Nun würde ich
> aber gerne keinen 25MHz Quartz, sondern einen 20MHz Quartzoscillator
> benutzen

Der Vorteil einen extra Quarzoszillator für den PHY zu
verwenden besteht ja auch darin dass man für den Controller
mehr Freiheiten in der Clock-Konfiguration bekommt und
nicht darauf angewiesen ist eine so "hohe" Basis-Frequenz
(25 MHz) zu verwenden um den PHY möglichst Jitter-arm
zu speisen. Der Ethernet Core kann damit synchron zum PHY
laufen und der Controller läuft ungestört auf seiner ganz
eigenen Frequenz.

von Gustav G. (gustavgggg)


Lesenswert?

Ich hatte jetzt überlegt den PHY über den MCO Ausgang mit 25MHz zu 
versorgen und die ebenfalls als Basis für die internen PLLs zu nehmen. 
Mein Systemtakt wird sowieso 70MHz sein.

von Frank K. (fchk)


Lesenswert?

Gustav G. schrieb:
> Hat jemand Erfahrungen mit dem Ethernet Interface des STM32F107RBT und
> der Clock Source. Im Datenblatt steht, dass man die 25MHz für MII aus
> einem externen Quartz über den MCO Pin bereitstellen kann. Nun würde ich
> aber gerne keinen 25MHz Quartz, sondern einen 20MHz Quartzoscillator
> benutzen und daraus in der PLL 50MHz Systemtakt erstellen und dann an
> MCO PLLCLK/2 ausgeben. Lässt sich in der Konfiguration Ethernet mit dem
> MII noch betreiben?

Wenn Du in der PLL keinen ganzzahligen Faktor hast, ist die 
Signalqualität des Signals nicht gut genug für den PHY. Mach das nicht. 
Nimm einen 25 MHz Quarz und versorge STM32 und den PHY damit, wenn Du 
MII verwendest. Für RMII nimmst Du einen extra 50MHz Oszillator, der 
sowohl an den PHY als auch an den RefClk des STM32 MACs geht. Alles 
andere gibt oftmals Bruch.

fchk

von Wastl (hartundweichware)


Lesenswert?

Frank K. schrieb:
> Wenn Du in der PLL keinen ganzzahligen Faktor hast, ist die
> Signalqualität des Signals nicht gut genug für den PHY. Mach das nicht.

Manchmal muss das Kind eben die heisse Herdplatte anfassen
bevor es versteht dass dieses Vorgehen nicht günstig ist. Da
helfen oft die besten Ratschläge der Mutter nichts.

von Gustav G. (gustavgggg)


Angehängte Dateien:

Lesenswert?

Frank K. schrieb:
> Wenn Du in der PLL keinen ganzzahligen Faktor hast, ist die
> Signalqualität des Signals nicht gut genug für den PHY.

Aber das mache ich doch. Ich route die 25MHz an MCO über den 
Multiplexer. Wo kommt da nennenswert mehr Jitter oder wo verbrenne ich 
mir da die Finger?

von Wastl (hartundweichware)


Lesenswert?

Gustav G. schrieb:
> Ich route die 25MHz an MCO über den Multiplexer.

Ja das sollte ohne "Verluste" funktionieren. Aber mit RMII würde
man sich ein paar Pins am Controller sparen.

von Gustav G. (gustavgggg)


Lesenswert?

Wastl schrieb:
> Ja das sollte ohne "Verluste" funktionieren. Aber mit RMII würde
> man sich ein paar Pins am Controller sparen.

Sehe ich ein, dass die paar Pins eventuell noch brauchbar sein könnten 
und es keine besonderen Nachteile hat RMII zu benutzen wenn ich nur die 
Clock auf 50Mhz erhöhen muss.

von Frank K. (fchk)


Lesenswert?

Gustav G. schrieb:
> Frank K. schrieb:
>> Wenn Du in der PLL keinen ganzzahligen Faktor hast, ist die
>> Signalqualität des Signals nicht gut genug für den PHY.
>
> Aber das mache ich doch. Ich route die 25MHz an MCO über den
> Multiplexer. Wo kommt da nennenswert mehr Jitter oder wo verbrenne ich
> mir da die Finger?

Die PLL im MCO ist das Problem.

fchk

von Gustav G. (gustavgggg)


Lesenswert?

Frank K. schrieb:
> Die PLL im MCO ist das Problem.

Wo ist da eine PLL? Das ist doch ein Multiplexer.

von Frank K. (fchk)


Lesenswert?

Gustav G. schrieb:
> Frank K. schrieb:
>> Die PLL im MCO ist das Problem.
>
> Wo ist da eine PLL? Das ist doch ein Multiplexer.

ok, hab jetzt gelesen, dass du inzwischen 25 Mhz extern anlegen willst. 
Dann kannst Du die 25 Mhz auch direkt an den PHY routen und sparst Dir 
einen Pin.

fchk

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.