Hello
I tried compilng the uIP code but it came up with a number of
errors. To tell you the truth I wasn't to bothered about these as
I just wanted the code to use the CS8900 low level interface code as
I want to have a go at writing my own limited interface stack.
The cs8900a_init function was fine but the cs8900a_poll function was
indicating a frame was ready at all times even when I had no network
connected. The problem seemed to be this ..
if ((cs8900a_read(DATA_PORT) & 0xd00) == 0)
return 0;
as this isn't checking the status of bit 8 the RxOK bit which indicates
a valid frame is waiting. When I changed this to ..
u=cs8900a_read_addr_high_first(DATA_PORT);
// Check if the RxOK flag is set //
if ((u&RX_OK)==0) return 0;
// Now check that either the Broadcast or Individual Addr bits are set
if ((u&(RX_BROADCAST_ACCEPT+RX_IA_ACCEPT))==0) return 0;
all was well but I still can't read the value of the RxLength word.
The original code did this ..
// Read receiver status and discard it.
cs8900a_read_addr_high_first(RX_FRAME_PORT);
// Read frame length
len = cs8900a_read_addr_high_first(RX_FRAME_PORT);
but that just returns garbage in the form of an alternating pattern
of 1's and 0's.
Oh and yes I do have an LPC-E2124.
But I might be missing something as it is just far to hot to think
at the moment :(
Regards
IanMessage
re: CS8900A question
2005-07-11 by Ian Wraith
Attachments
- No local attachments were found for this message.