Troubles with 10 Bytes by sending every 10 miliseconds

I’m using the W5300 in TCP mode with a Spartan6 FPGA at 250Mhz. When I set the registers of the W5300 every 100 milliseconds for sending 10 Bytes data it work fine.
The Connection open and closing every time. When I set him every 10 milliseconds he don’t communicate over the Ethernet.

How can I send data faster with the chip?

W5300 can support on upto 50Mbps.
In your case, You just need 8Kbps. The bandwidth is enough to W5300. Further more, if the FPGA control W5300.

Check the command clear and Sn_IR(SENDOK) = ‘1’.

Thank you.

Thanks for you’re reply.

At the endresult I need to send 3500 bytes every millisecond, so thats 3.5MBps.
When SSR is Established, I do the next steps:

  • Check S0_IR_CON and Clear him
  • Write the data in S0_TX_FIFOR
  • Set S0_TX_WRSR
  • set S0_CR_SEND to ‘1’

next I check S0_IR1(SENDOK). If the bit become to ‘1’ I clear the bit. If the socket is closed before SENDOK become to ‘1’ or I cleared SendOk, I return for checking the SSR.

Need I, and is it posible to, get open the connection for sending these 3.5MBps or is there another solution?

It maybe possible or not. Becasue the bandwidth is effected on various environment as the shared network status, MCU throughput, retransmittion, and so on.

Mind if I roughly calculated in theory,
For one byte sending time , it needs 3 NIC clock at least. So, To send 3500 bytes, It takes 35003NIC clock at least.
when If the link is 100Mbps, NIC clock is 40ns. If 10Mbps, 400ns.
If 100Mbps, 420us. If 10Mbps, 4.2ms.

If you can copy 3500 bytes data into a Socket Tx Memroy and control the W5300 within the rest time 580us.
But, you should copy and control as fast as possible. because it doesn’t consider the time internal logic processing time that maybe small and 10~20us.

Thank you.

Thanks for you’re reply.

I have fix it. I used a slow TCPserver in Delphi, that was the problem. Now I’m using a faster way to receive the data. Thanks for you’re help.

Glad you were well resolved.

Thank you.