I setted up the W5500 TCP/IP connection. The intialisation is succesfull. All checked by Wireshark & logic analyzer.
I am also able to receive the right amount of bytes from my laptop when I send some bytes (Interrupt based). Connecting the ethernet controller and sending data is done by a TCL program.
Now, to send data from the microcontroller to the laptop is a whole different story…
I followed the datasheet and several forum topics to send my data, but when I send the data, it sends like the whole buffer it seems?!
I tried different combinations regarding the buffer pointers but the buffer size keeps being the same… (now I only use the Tx_WR pointer)
Below you can see my logic analyzer output of sending data by the W5500 over SPI:
Frame 1: Read Socket 0 FSR with output 0x0800
Frame 2: Read Socket 0 TX_WR with output 0x006F
Frame 3: Write Socket 0 TX buffer + pointer offset with data: b6 00 00 02 55 66 (6 bytes in total)
Frame 4: Write Socket 0 TX_WR with updated pointer (0x6F + 6 bytes)= 0x75
Frame 5: Write Socket 0 CR SEND-command
Frame 6: Check if Socket0 is again in ESTABLISHED mode (which is)
In Wireshark it shows that the W5500 is sending 1460 bytes while I only want to send the 6 bytes of Frame 3. The 6 bytes I send are to be found somewhere in the 1460 bytes received on the laptop…
Does someone know if I did something wrong in my sending procedure or if I forgot to configure maybe something which can cause this?
Thank you in advance! If something is not clear, please ask! I don’t think my code will be useful here, since the logic analyzer shows what I am sending