GitHub - maximeborges/pico-rmii-ethernet
source link: https://github.com/maximeborges/pico-rmii-ethernet
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
pico-rmii-ethernet
Enable 100Mbit/s Ethernet connectivity on your Raspberry Pi Pico with an RMII based Ethernet PHY module.
Leverages the Raspberry Pi RP2040 MCU's PIO, DMA, and dual core capabilities to create a Ethernet MAC stack in software!
Hardware
- Raspberry Pico
- Any RMII based Ethernet PHY module, such as the Waveshare LAN8720 ETH Board
Modification to do
We're generating the 50MHz RMII clock on the RP2040 instead of getting it from the LAN8720A crystal. For that, we remove the two R12 and R14 resistors, and connect one of them back on the two top pads instead to avoid connecting the onboard crystal to the clock, and instead connect the nINT/RETCLK pin from the connector to the XTAL1/CLKIN pin of the LAN8720A chip.
Wiring
RMII Module Raspberry Pi Pico Library Default
TX1 TX0 + 1 11
TX-EN TX0 + 2 12
TX0 any GPIO 10
RX0 any GPIO 6
RX1 RX0 + 1 7
nINT / RETCLK 21/23/24/25 21
CRS RX0 + 2 8
MDIO any GPIO 14
MDC MDIO + 1 15
VCC 3V3
GND GND
Examples
See examples folder. LWIP is included as the TCP/IP stack.
Current Limitations
- Built-in LWIP stack is compiled with
NO_SYS
so LWIP Netcon and Socket API's are not enabled - Auto-negotiation to 10BASE-T is not supported
- MDIO is bit-banged
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK