Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

W55RP20 Support Requirements #9747

Open
min-hs opened this issue Oct 23, 2024 · 2 comments
Open

W55RP20 Support Requirements #9747

min-hs opened this issue Oct 23, 2024 · 2 comments
Labels
enhancement network rp2 Both RP2 microcontrollers
Milestone

Comments

@min-hs
Copy link

min-hs commented Oct 23, 2024

Our engineers have made initial progress in developing a driver for the W55RP20, but we've encountered a few difficulties that we would like to address with your team. Below is a brief overview of the situation:

The W55RP20 is a SiP project that integrates the RP2040 and W5500 in one chip. Internally, the dies are connected via general GPIO pins, not the typical SPI pins. As a result, a PIO program is needed to configure these pins for SPI communication.

Our engineers then decided to start from scratch, writing a PIO program and general code to initialize the W5500 through registers. They were able to create a basic loopback server in standalone mode. While this solution works as an alternative, we thought about the possibility of creating a new CHIP_VARIANT for rp2 CHIP_FAMILY. Given our limited resources, we thought of collaboration with Adafruit to further develop the driver.

The link below is to a WIZNet PIO example we created.
https://github.com/WIZnet-ioNIC/WIZnet-ioNIC-Circuitpython

@dhalbert dhalbert added this to the Support milestone Oct 23, 2024
@tannewt tannewt added rp2 Both RP2 microcontrollers network labels Oct 23, 2024
@dhalbert
Copy link
Collaborator

There are PIO SPI examples here: https://github.com/raspberrypi/pico-examples/tree/master/spi, but it seems like you are well along in your PIO SPI implementation.

I'm guessing that you had to choose the pins you did due to limitations of the placement of the bonding wires between the chips. Is that correct?

While this solution works as an alternative, we thought about the possibility of creating a new CHIP_VARIANT for rp2 CHIP_FAMILY.

I am not sure what you mean by this. The PIO SPI could be separated out, and then the W5500 functionality could be done mostly in a library and in device-independent code. For instance, see https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k

@min-hs
Copy link
Author

min-hs commented Nov 13, 2024

Yes, that's right.
We are currently using PIO SPI due to wiring issues between the RP2040 and W5500.

I've currently made some similar to wiznet5k to control the W5500 with PIO SPI instead of busio.SPI, but I'm having trouble getting it to work with different socketpools, dhcp, dns, and other protocols.

Also, if I do this, I would like to discuss with you how to utilize the W55RP20 library from adafruit to make it available to users in the future.
https://github.com/WIZnet-ioNIC/WIZnet-ioNIC-Circuitpython

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement network rp2 Both RP2 microcontrollers
Projects
None yet
Development

No branches or pull requests

3 participants