You are reading a single comment by @javakys and its replies. Click here to read the full conversation.
  • @Gordon and @DrAzzy,

    I think it is a timing issue.
    When you send to or read from W5500 inside WIZ550io, its working mechanism is like below.

    When reading,
    MCU sends three bytes containing address and operation code first and make additional SPI clocks for the length of bytes.
    Then W5500 sends dummy data like 0x01, 0x02 and 0x03 during first three bytes and then real data, which MCU should get, synchronizing to additional SPI clocks back over MISO pin.

    possmann wrote,

    first eth.getIP() call returns very strange ip settings (e.g. { "ip": "3.192.168.1", ... })

    I think that WIZ550io sent back 1, 2, 3, 192, 168, 1, 2 in decimal sequentially but MCU returned a user 4 bytes from 3, not 192 by unknown fault,

    This is the reason why I'm saying it may be timing issue.

    WIZ550io has a tiny MCU inside to intialize W5500 with real MAC address and default IP address.
    So it takes a few mili seconds to finish intialization.
    WIZ550io provides RDY pin(J2.2) to check it.

    @possmann I recommend you connect your WIZ550io's RDY pin to espruino's any GPIO pin and do ether.getIP() or ether.setIP() after its value turns to '1'

    @Gordon Can you send me your ethernet dirver code for W5500? It may be helpful for me to find the reason of this problem.

    Thank you.

About

Avatar for javakys @javakys started