How to add Ethernet on Raspberry Pi PICO
Raspberry Pi released PICO board with their first Microcontroller in early 2020. Its a very powerful platform with inhouse built microcontro
In this article we will see how we can add Ethernet capability to Raspberry Pi PICO platform.
Raspberry Pi PICO uses RP2040 microcontroller and it doesn’t have inbuilt ethernet interface like MII or RMII so how one can add ethernet?
Well there two possible ways.
External Ethernet PHY Chip
Raspberry PICO RP2040 has a very unique logic block called programmable IO which could be used to implement a lot of peripherals which are not available natively and we can use the same PIO to interface Ethernet PHY like LAN7820.
You will need:
- LAN7820 breakout board
- ethernet cable
- and jumper wires
External SPI to Ethernet Chip
Raspberry Pi PICO has SPI interface and there are a lot of SPI to Ethernet chips and their breakout boards available in the market which can be used to add the ethernet interface.
For examples two of the most popular ones are:
- ENC28J60 from Microchip
- W5500/W5100 from Wiznet
and breakout board using above chips are widely available in the market.
To further reduce the effort, here is another solution:
Wiznet’s Raspberry Pi PICO Clone
Wiznet has recently developed a Raspberry PI PICO board which is nothing but Raspberry PI PICO + Ethernet on the same board and gives access to all pins which are available on Raspberry PI PICO Board.
The board is available as Open source:
Learn more from Wiznet’s product page
What is the difference in both approach?
The two approaches mentioned above are very different.
In the 1st one where we are using Ethernet PHY chip the whole ethernet stack is implemented on the microcontroller itself.
On the other hand in case of SPI to Ethernet the stack is implement in the chip and user need to only configure the registers to work in particular way and send data and receive data. This makes life easy for a developer where they need to understand the internals of how ethernet works. Other the other hand in both the case an external chip is required for the implementation.