No connection with the router, using FPGA board

Hi. I’m trying to connect the w5500 board with an FPGA board. I found some code on here (w5500/W5500_PRO.v at master · YangYunLong1988/w5500 · GitHub) which I put in FPGA, but unfortunately it’s not quite working. I was expecting that after I configure the w5500 I would have connectivity with the router, but unfortunately this doesn’t happen. The ethernet yellow light on the connector is going on and off. On the other hand, when I connect the w5500 with an Arduino, it’s solid and I can see the w5500 on the router. I was wondering what I need to do in order to see the w5500 on the router.
Basically the code is doing this:

  • reset w5500, and wait for linkup in phy status reg (PHYCFGR)
  • does a soft reset and then it sets Gateway, MAsk, Src HW addr., Src IP addr.
  • sets rx buff, tx buff, retry count (RTR, RCR)
  • then it tries to initialize a socket.

I would have expected that at this point the router would see the Wiznet device but this doesn’t happen. I made sure that registers were written properly by reading them back.
It’s probably a stupid question, but what else do I need to set in order for the Wiznet device to show up in my router with the IP address that I set? Like what other steps are needed?
My end goal is to have a webserver (webpage) in FPGA (Verilog code, no soft processors/SW). I do not have an issue with writing HW, but ufortunately I don’t know what needs to be done. Arduino makes it look so easy, but there is so much SW going on behind it.
Thank you very much!

While this works, the more correct would be perform hard reset, then soft reset, then set all the attributes, and then, if needed, wait for link. There’s nothing useful in waiting for link unless your application explicitly does something special when link is off.

On which connector - W5500’s or router’s? Sounds like you keep W5500 in constant reset loop. During hardware or software reset PHY is also reset and it can be the cause of LEDs going off after establishing the link.

Keep in mind W5500 is having 8 hardware accelerated sockets.

Hi Eugeny. Thank you for your answer.

It seems that I was mixing up the ACT led with the LINK led. I was talking about the ethernet connector led on the little W5500 board and thought yellow means LINK, but it’s actually the other way around, that is the activity LED (which goes low/high) while the green led (LINK) is up solidly. Then I tried a ping from the computer to W5500 and all packets where sent/received correctly so the w5500 ip/cfg seems fine.

But still I don’t know why I don’t see see the device on the router page of static address hosts. At this point it’s probably not related to the w5500, but do you know what do I need for w5500 to be seen on the router? I guess I need to move to the next step of creating a web server, I need to figure out how it’s done, reverse the Arduino SW libs.

I guess that means only 8 connection at a time on the web server. But what does HW accelerated mean, like how do I make use of HW acceleration, is it transparent from user’s point of view?
Thanks in advance!

You are wise. The cause may be DHCP message from the W5500, announcing its IP address and host name.

The value of Wxx00 chips is in their socket implementation, providing high level programming. But they also can work in IPRAW and MACRAW modes, while with severe performance penalty.

Thanks for all your support. We can consider this thread resolved. I may annoy you again in future with another thread :slight_smile: Cheers!