Rolf,

try to modify the Rdy4Tx function like this:

unsigned int Rdy4Tx(void)
{
  unsigned int i = 0;

  Write8900(...)
  while ((i++ < 1000) && !(Read8900(...) & READY_FOR_TX_NOW));
}

The CS8900 seems to need sometimes a bit more time to allocate
the buffer space. The datasheet doesn't seem to mention that, but
when you look at the Cirrus Logic provided Linux driver packet
(file name cs89x0.c) you'll find in the sub-function send_test_pkt(...)
a similar procedure.

Hope that helps,
Regards,
~Andreas


> Hi,
> 
> My TCP/IP application works, with the buffer size for TX = 1024 and RX 
> =
> 128. Now, I would like to increase the buffer size. If I do that, the
> SOCK_ERR_ETHERNET comes, because the ready bit from the CS8900 is not
> set.
> 
> To slow up the superloop (every 4ms with TX = 1024 and RX = 256) 
> works,
> but this can not be the right way. To put a while loop in the Rdy4Tx(),
> and wait until the bit is set, brings no solution. Have anybody solved
> this problem, or a good idea to solve it? 
> 
> Thanks, Rolf
> 
> 
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf _______________________________________________
> Mspgcc-users mailing list
> Mspgcc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mspgcc-users
> 


Reply via email to