Forum: Mikrocontroller und Digitale Elektronik STM32 RMII Anbindung an UBlox Odin-W262 WiFi Modul


von Max W. (maxw)


Lesenswert?

Hallo zusammen,

ich möchte für ein Projekt das WiFi Modul Odin-W262 von UBlox verwenden. 
Ein Testaufbau mit einem Nucleo Board und dem Eval-Board vom UBlox Modul 
funktioniert bereits. Dort ist das Modul über die RMII-Schnittstelle 
angebunden, allerdings mit zwei Phys und einem Ethernet-Kabel 
dazwischen.
Auf der finalen Platine ist das Modul direkt angeschlossen ohne die Phys 
dazwischen. Weiß jemand, wie ich das Modul initialisiert und angesteuert 
bekomme?
Ich verwende die STM CubeIDE mit CubeMX. Die verwendet den LWIP-Stack. 
In CubeMX kann man zwischen zwei Phys auswählen.
Falls es hilft, das UBlox Modul basiert auf einem ESP32.

Ich bin für jede Hilfe dankbar, denn auf Seiten von UBlox finde ich 
nicht wirklich Infos dazu, lediglich eine fertige Library für mbed.

Viele Grüße!

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Wenn du das Odin Modul mit RMII benutzt brauchst du eine Art Switch, und 
vermutlich auch zwei PHY's. Das Odin fungiert dann als Ethernet-WiFi 
Bridge. Die 2 Chips direkt per RMII verbinden wird nicht gehen, das sind 
beides Master.

IMO ist das unnötig umständlich, teuer und ineffizient, und nur sinnvoll 
wenn du mehrere Ethernet-Nodes hast, nicht nur den STM32. Du kannst das 
Odin Modul auch per UART und AT Commands ansteuern. Das ist allerdings 
auch nicht besonders flexibel/elegant, und lwIP kannst du dann auch 
nicht nutzen. Am Besten ist es IMO ein WiFi-Modul mit SDIO zu nutzen (da 
gibt es auch ESP Varianten, oder die ATWILC von Atmel). Dann werden die 
Ethernet-Frames vom Mikrocontroller über SDIO übertragen und du brauchst 
keine zusätzlichen Bauteile und du hast die volle Flexibilität von lwIP. 
Du brauchst die entsprechende Library für das Modul.

Noch besser ist es den STM32 ganz wegzulassen und stattdessen alles auf 
dem ESP32 zu implementieren, aber das geht natürlich nicht immer.

: Bearbeitet durch User
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Niklas G. schrieb:
> Die 2 Chips direkt per RMII verbinden wird nicht gehen, das sind
> beides Master.

Bei RMII gibt es keinen Master, sondern diese Schnittstelle ist 
symmetrisch. Man muss nur TXD0/1 mit RXD0/1 kreuzen, TX_EN mit RX_DV. 
Das Taktsignal REFCLK mit 50 MHz wird dann extern erzeugt und mit 
gleichen Leitungslängen(!) an beide Bausteine angelegt.

Das zugehörige MDIO/MCLK wird gar nicht verwendet.

von Max W. (maxw)


Lesenswert?

Hallo zusammen,

ich wollte nur kurz Rückmeldung geben, falls irgendwer das gleiche 
vorhat.

Niklas G. schrieb:
> Wenn du das Odin Modul mit RMII benutzt brauchst du eine Art Switch, und
> vermutlich auch zwei PHY's. Das Odin fungiert dann als Ethernet-WiFi
> Bridge. Die 2 Chips direkt per RMII verbinden wird nicht gehen, das sind
> beides Master.
> IMO ist das unnötig umständlich, teuer und ineffizient, und nur sinnvoll
> wenn du mehrere Ethernet-Nodes hast, nicht nur den STM32.

Der zitierte Text von Niklas ist nämlich kompletter Unsinn.

Andreas S. schrieb:
> Bei RMII gibt es keinen Master, sondern diese Schnittstelle ist
> symmetrisch. Man muss nur TXD0/1 mit RXD0/1 kreuzen, TX_EN mit RX_DV.
> Das Taktsignal REFCLK mit 50 MHz wird dann extern erzeugt und mit
> gleichen Leitungslängen(!) an beide Bausteine angelegt.
> Das zugehörige MDIO/MCLK wird gar nicht verwendet.

Die Antwort von Andreas war komplett richtig. Es müssen lediglich die 
Leitungen gekreuzt werden und im LWIP-Stack die Funktionen vom Phy 
"überbrückt" werden, es muss kein Register gesetzt werden, sondern 
lediglich der Verbindungsstatus vom WiFi Modul abgefragt werden. Dann 
funktioniert es quasi auf Anhieb.
Ich wüsste nicht, wieso es "unnötig umständlich, teuer und ineffizient" 
sein soll, wenn man Funktionen braucht, die ein ESP32 nunmal nicht hat.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Andreas S. schrieb:
> Bei RMII gibt es keinen Master, sondern diese Schnittstelle ist
> symmetrisch.

Ach, das wusste ich nicht.

Max W. schrieb:
> Der zitierte Text von Niklas ist nämlich kompletter Unsinn.

Naja, nicht ganz; auch wenn die RMII-Anbindung doch so einfach ist, ist 
die Nutzung des Moduls als Bridge etwas "durch die Brust ins Auge".

Max W. schrieb:
> Ich wüsste nicht, wieso es "unnötig umständlich, teuer und ineffizient"
> sein soll

Ohne den Switch-IC ist es natürlich nicht mehr wirklich ineffizient.

Eine Frage hätte ich da aber: Wie setzt du die Wifi-Daten (SSID, 
Passwort) vom W262 über das RMII? Über das SDIO-Interface sollte es 
"direkt" gehen.

Laut 
https://content.u-blox.com/sites/default/files/documents/ShortRange-StandAlone_LineCard_UBX-14003456.pdf 
enthält das W262 übrigens ein WL1837 und kein ESP32. Kann auch gar 
nicht, denn es gibt (noch) keinen ESP32 mit 5 GHz.

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.