STM32H7: PH1-OSC_OUT als Clock für Ethernet verwenden?

#7907295
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!

#7907299
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.

#7907313
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...

#7907361
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.

#7907378
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.

#7907433
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.

#7907531
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.

#7907639
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.

#7907648
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

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