Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

CS8900A question

2005-07-11 by Ian Wraith

Hello
      I am currently writing some low level code for interfacing the
LPC2124 to a CS8900A (it is an Olimex LPC2124 board). I am basing my
code around that on the Rowley Associates website. There are no
problems initialising the CS8900 and I can even read its EISA company
ID correctly. The problem comes when I poll the CS8900 to see if a
frame is waiting. My initial code used the RxEvent (0x0124) register ..

cs8900a_write(ADD_PORT,PP_RxEvent);
u=cs8900a_read_addr_high_first(DATA_PORT);

(where DATA_PORT is 0x0c)

this works fine. But when I tried to read the RXLength (0x402) word
I just received garbage. So to try and diagnose this I thought I
would try and read the RxStatus (0x400) word which according to the
datasheet should be the same as the RxEvent word. But when I tried the
code ..

cs8900a_write(ADD_PORT,PP_RxStatus);
u=cs8900a_read_addr_high_first(DATA_PORT);

I again get garbage and a result different to that contained in
Rx_Event.

  Can anyone tell me where I'm going wrong here ? Its very odd how I
can read data from some locations but not others.

Regards

Ian

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.