Forum: Mikrocontroller und Digitale Elektronik STM32H7: PH1-OSC_OUT als Clock für Ethernet verwenden?


von Chris (christophe_d)


Lesenswert?

Hi,

wenn ich mir den Schaltplan des Eval-Boards für den STM32H7 von ST 
ansehe, dann ist dort ein 25-MHz-Oszillator verbaut, der einmal mit dem 
Ethernet-Chip des Boards verbunden ist und einmal mit dem PH0-OSC_IN-Pin 
des STM selber.

Um den STM zu takten, benötige ich diesen exernen Clock nicht, der lässt 
sich so konfigurieren, dass alle Clocks intern erzeugt werden.

Das führt mich zu meiner Frage: kann ich dann auf einer eigenen Hardware 
nicht auch den PH1-OSC_OUT verwenden, um den Ethernet-Chip damit zu 
füttern? Sprich könnte der Quarz nicht komplett wegfallen, wenn ich 
PH1-OSC_OUT mit CLKIN des LAN8742A verbinde und PH1-OSC_OUT so 
konfiguriere, dass dort 25 MHz geliefert werden?

Oder ist dieser Clock zu ungenau?

Danke!

von Andreas B. (abm)


Lesenswert?

LAN8742A: "The device can accept either a 25 MHz crystal or a 25 MHz 
single-ended clock oscillator (±50ppm) input."

Wie bekommt man diese Genauigkeit mit den internen Oszillatoren und PLLs 
eines H7 ohne Quarz hin?

von Bauform B. (bauformb)


Lesenswert?

1
To comply with the IEEE 802.3 standard, each Ethernet node must have
2
a reference clock with accuracy of ±100 parts per million (ppm).

Texas Instruments SNLA290 "Selection and specification of crystals for 
Texas Instruments ethernet physical layer transceivers"

Also die STM32 HSI schaffen das nicht. So ein kompletter externer 
Quarzoszillator ist schon praktisch und pflegeleicht. In diesem 
speziellen Fall könnte man den nur für Ethernet verwenden und den STM32 
intern takten. Eine 25-MHz-Leiterbahn weniger...

Unabhängig davon: alle STM32 können diverse Taktsignal über den MCO-Pin 
ausgeben; man muss nicht den OSC_OUT missbrauchen.

von Frank K. (fchk)


Lesenswert?

Chris schrieb:

> Oder ist dieser Clock zu ungenau?

Der von einem MCO oder einem internen RC-Oszillator gelieferte Takt ist 
zu ungenau. Beim MCO gilt das insbesondere, wenn nicht ganzzahlige 
Teiler oder eine PLL verwendet wird. Das haben hier schon andere Leute 
versucht, funktioniert nicht.

fchk

von Chris (christophe_d)


Lesenswert?

Bauform B. schrieb:
> Also die STM32 HSI schaffen das nicht. So ein kompletter externer
> Quarzoszillator ist schon praktisch und pflegeleicht. In diesem
> speziellen Fall könnte man den nur für Ethernet verwenden und den STM32
> intern takten. Eine 25-MHz-Leiterbahn weniger...

Klingt gut.

Was wäre denn ein passender Quarz? Die Beschreibung des LAN-Chips redet 
von einer 100 uW und einer 300 uW-Variante, die verwendet werden kann, 
ohne klar zu spezifizieren, wann welche der beiden Varianten zu wählen 
ist...

von Wastl (hartundweichware)


Lesenswert?

Bauform B. schrieb:
> Also die STM32 HSI schaffen das nicht. So ein kompletter externer
> Quarzoszillator ist schon praktisch und pflegeleicht. In diesem
> speziellen Fall könnte man den nur für Ethernet verwenden und den STM32
> intern takten.

So isses.

Beitrag "STM32F107RBT6 Ethernet Clock"

von Wastl (hartundweichware)


Lesenswert?

.... und das hier auch noch:

Beitrag "STM32F107 Ethernet Interface"

von Wastl (hartundweichware)


Lesenswert?

Chris schrieb:
> wenn ich mir den Schaltplan des Eval-Boards für den STM32H7 von ST
> ansehe, dann ist dort ein 25-MHz-Oszillator verbaut

Neben der Erkenntnis dass man beim Thema Referenztakt für den
PHY durchaus so päpstlich sein sollte wie der Papst, stellt
sich für mich noch die Frage ob dir schon bekannt ist dass
sich schon manche Leute an der LwIP-Implementierung für
den STM32H7 schon die Zähne ausgebissen haben.

Aus meiner Erfahrung tut man sich beim STM32F407 und STM32F429
wesentlich leichter als beim STM32H7. Diese Controller
funktionieren auf Anhieb. Wobei es scheinbar schon verschiedenene
Chip-Versionen vom STM32H743 gibt die sich unterschiedlich
kapriziös bezüglich Ethernet verhalten.

Finde leider gerade den Thread nicht der hier auf uC.net die
Probleme mit dem STM32H743 und LwIP behandelt. Vielleicht
kann einer der Mitleser noch den Thread hier verlinken.

von Chris (christophe_d)


Lesenswert?

Wastl schrieb:
> ob dir schon bekannt ist dass
> sich schon manche Leute an der LwIP-Implementierung für
> den STM32H7 schon die Zähne ausgebissen haben.

CubeMX liefert eine fertige LwIP-Implementierung für den STM32H7. also 
wo ist das Problem?

von Wastl (hartundweichware)


Lesenswert?

Chris schrieb:
> CubeMX liefert eine fertige LwIP-Implementierung für den STM32H7. also
> wo ist das Problem?

Dass die Implementierung nicht (reibungslos) funktioniert.
Wenn du lieber erst mal das (nicht funktionierende) Rad neu
erfinden willst dann, dann mach das. Natürlich bietet CubeMX
eine Default-Implementierung an. Meinst du ich wäre so
blau-äugig das nicht zu wissen bzw. nicht vorauszusetzen?

YMMV. Aber:

Wastl schrieb:
> Finde leider gerade den Thread nicht der hier auf uC.net die
> Probleme mit dem STM32H743 und LwIP behandelt. Vielleicht
> kann einer der Mitleser noch den Thread hier verlinken.

von Chris (christophe_d)


Lesenswert?

Wastl schrieb:
> Dass die Implementierung nicht (reibungslos) funktioniert.

OK, ich habe es eben mal schnell auf dem Eval-Board probiert: lwIP 
klappt problemlos mit dem LAN8742A auf dem STM32H7. Also ohne genau zu 
wissen, WAS da in diesem Posting gestanden hat, ist diese Aussage so 
alleine eher nutzlos.

von Wastl (hartundweichware)


Lesenswert?

Chris schrieb:
> lwIP klappt problemlos mit dem LAN8742A auf dem STM32H7.

Was hast du denn an Funktionen überprüft?

von Wastl (hartundweichware)


Lesenswert?

Chris schrieb:
> lwIP klappt problemlos mit dem LAN8742A auf dem STM32H7

Was hast du denn an Funktionen überprüft? Welche Funktionen,
welche Version des Eval-Boards und welche Chip-version des H7?

Wastl schrieb:
> Wobei es scheinbar schon verschiedenene
> Chip-Versionen vom STM32H743 gibt die sich unterschiedlich
> kapriziös bezüglich Ethernet verhalten.

von Chris (christophe_d)


Lesenswert?

Ich habe das STM32H753I-EVAL-Board mit dem STM32H753XI drauf - und 
probiert habe ich DHCP sowie Zugriffe per HTTPD. Also ein TCP/IP Socket. 
Funktioniert. Statische IP geht auch.

von Wastl (hartundweichware)


Lesenswert?

Chris schrieb:
> Ich habe das STM32H753I-EVAL-Board mit dem STM32H753XI drauf

Ja ja, die Salami-Taktik mal wieder. Erst seit jetzt wissen
wir welchen H7 du benutzt.

Hier mal eine detailliertere Abhandlung zum H743.

Beitrag "STM32 NUCLEO H743ZI - Ethernet / WebServer-Probleme"
Beitrag "Re: STM32 NUCLEO H743ZI - Ethernet / WebServer-Probleme"

von Chris (christophe_d)


Lesenswert?

Wastl schrieb:
> Ja ja, die Salami-Taktik mal wieder. Erst seit jetzt wissen
> wir welchen H7 du benutzt.

Nein, es stand schon im allerersten Posting ,dass ich vom Eval-Board 
rede.

von Wastl (hartundweichware)


Lesenswert?

Chris schrieb:
> Nein, es stand schon im allerersten Posting ,dass ich vom Eval-Board
> rede.

Ja, schon klar. Es gibt ja nur ein H7 Eval-Board.

von Chris (christophe_d)


Lesenswert?

Wastl schrieb:
> Beitrag "STM32 NUCLEO H743ZI - Ethernet / WebServer-Probleme"
> Beitrag "Re: STM32 NUCLEO H743ZI - Ethernet / WebServer-Probleme"

Und was hat das jetzt alles genau mit mir zu tun? Die haben 
lwIP-Probleme mit einer lwIP-Implementierung aus irgend einer dubiosen 
Quelle. CubeMX-Probleme gibt es da nur beim COMPILIEREN - und die habe 
ich ja ganz offensichtlich nicht, da ich passenden Code problemlos 
erzeugen kann.

von Wastl (hartundweichware)


Lesenswert?

Chris schrieb:
> Die haben
> lwIP-Probleme mit einer lwIP-Implementierung aus irgend einer dubiosen
> Quelle.

Nö.

von Chris (christophe_d)


Lesenswert?

Ist 
https://github.com/windsorschmidt/stm32h7-nucleo-h743zi-ethernet-lwip 
CubeMX? Nein.

Ist "es gibt Probleme mit lwIP" eine Antwort auf meine Frage nach dem 
Ethernet-Hardwareclock? Nein.

Die gesamte Diskussion zum Schluss kann man also knapp zusammenfassen: 
Zeitverschwendung.

von Wastl (hartundweichware)


Lesenswert?

Chris schrieb:
> Die gesamte Diskussion zum Schluss kann man also knapp zusammenfassen:

Deine Frage "PH1-OSC_OUT als Clock für Ethernet verwenden?"
kannst du dir dann also selbst mit "ja" beantworten.

von Chris (christophe_d)


Lesenswert?

Wastl schrieb:
> Deine Frage "PH1-OSC_OUT als Clock für Ethernet verwenden?"
> kannst du dir dann also selbst mit "ja" beantworten.

Nein, konnte ich nicht, aber "es gibt Probleme mit lwIP" ist keine 
Antwort auf diese Frage! Du merkst das wirklich nicht, oder?

von Hans-Georg L. (h-g-l)


Lesenswert?

Frank K. schrieb:
> Chris schrieb:
>
>> Oder ist dieser Clock zu ungenau?
>
> Der von einem MCO oder einem internen RC-Oszillator gelieferte Takt ist
> zu ungenau. Beim MCO gilt das insbesondere, wenn nicht ganzzahlige
> Teiler oder eine PLL verwendet wird. Das haben hier schon andere Leute
> versucht, funktioniert nicht.
>
> fchk

Wen du den H7 mit einem externen 25Mhz Quarz betreibst und den MCO auf 
den HSE Oszillator schaltest ist der Ausgang nicht ungenauer wie der 
Quarz. Bei den Nucleo Boards kann es Probleme geben, das liegt aber 
nicht an der PLL oder den MCO Ausgängen, sondern am STLINK der den 
externen Takt für die MCU erzeugt.

von Chris (christophe_d)


Lesenswert?

Hans-Georg L. schrieb:
> Wen du den H7 mit einem externen 25Mhz Quarz betreibst und den MCO auf
> den HSE Oszillator schaltest ist der Ausgang nicht ungenauer wie der
> Quarz.

Was aber nicht so viel bringt, weil man sich auf diese Weise den Quarz 
eben nicht spart!?

Allerdings könnte das ein Hack sein, um eine Leitung auf dem Board zu 
sparen, so fern der MC0-Ausgang näher am LAN-Chip liegt als der Quarz.

von Bauform B. (bauformb)


Lesenswert?

Chris schrieb:
> so fern der MC0-Ausgang näher am LAN-Chip liegt als der Quarz.

du möchtest aber den LAN-Chip nicht direkt am Quarz anschließen. Oder 
meinst du mit "Quarz" immer "externer Quarz-Oszillator"? Das ist mir ein 
paar Beiträge vorher schon aufgefallen.

von Frank K. (fchk)


Lesenswert?

Hans-Georg L. schrieb:
> Frank K. schrieb:
>> Chris schrieb:
>>
>>> Oder ist dieser Clock zu ungenau?
>>
>> Der von einem MCO oder einem internen RC-Oszillator gelieferte Takt ist
>> zu ungenau. Beim MCO gilt das insbesondere, wenn nicht ganzzahlige
>> Teiler oder eine PLL verwendet wird. Das haben hier schon andere Leute
>> versucht, funktioniert nicht.
>>
>> fchk
>
> Wen du den H7 mit einem externen 25Mhz Quarz betreibst und den MCO auf
> den HSE Oszillator schaltest ist der Ausgang nicht ungenauer wie der
> Quarz. Bei den Nucleo Boards kann es Probleme geben, das liegt aber
> nicht an der PLL oder den MCO Ausgängen, sondern am STLINK der den
> externen Takt für die MCU erzeugt.

Das ist eine der wenigen Konfigurationen, die funktioniert. Gegenüber 
einem externen Quarzoszillator hast Du damit aber nichts gewonnen.

fchk

von Chris (christophe_d)


Lesenswert?

Bauform B. schrieb:
> du möchtest aber den LAN-Chip nicht direkt am Quarz anschließen.

Doch, das hat ST in seinem Eval-Board auch so gemacht. Da ist lediglich 
ein 100-Ohm-Widerstand dazwischen...

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.