cs8900 not reciveing frames

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
Hi all

I'm facing an odd problem with a cs8900a ethernet controller in that
it does not seem to be possible to recive any frames with it although
everything looks like it should. I'm seeking advice on what else to do
to make this thing work.

I'm operating the chip in 16 bit mode, and so far most things work
like performing the reset, waiting for the chip to become ready,
verifying it's the propper chip, wigling /BHE to set it to 16 bit mode
etc. etc.

The chip is initialized as follows:

- perform reset and wait for it to be ready. To do so the reset line
is driven high and back low. Then the /SBHE pin is wiggled (connected
to /CS as recomended), the EISA and PID id's are cheched and then the
CPU wait's for the SI_BUSY bit to be cleared followed by waiting for
the INIT_DONE bit to be set.
- programm the MAC address
- turning serial rx and tx on in line control register - all other
bit's off
- make it accept RxOkA, BroadcastA, and IdividualA by writing the
propper bitmask to the RxCTL register.

All settings of the registers are verified with reading the register
contents back after programming them. All bit patters match 100% what
they should acording to the datasheet. I also double checked with a
logic analyzer that the chip really responds with these values, that
the timings are ok etc.

Reading the LineStatus register showes that all is well, that is
10BaseT operation, propper polarity and linkok

Now for the strange part. It does not seem to recive ANY frames - no
matter what I do. Setting Promisious mode does not help. Reding the
InteruptStatus Q always returns '0'. BUT, the LAN led showes the
packets that are transmitted from other nodes in the network and the
link led is on.

Then, when I have it run the loopback test using the source code
available from CS, this test suceeds BUT, it also suceeds if no
loopback test cable is attached! I really would expect it to fail
then. And no, ENDECloop is not set during this test meaning acording
to the datasheet the loopback is made using the external anlalog

Aparently I must miss something obvious, and I suspect that it must be
related to the analog part. Now, I don't have experinece with Ethernet
CSMACD protocol and what the signals should look like etc. etc
Especially I don't know what should be measrured behind the RJ45 plug
and transformer. Btw, the transformer is the propper one for 3.3V
operation (Pulse E2023) and I tripple checked the wiring against
multiple reference designs (the analog part is wired like the slaa137
app note from TI). I also should note that I have the same behaviour
with the two prototypes I have. That said it would be really bad luck
if say the cs8900a would be damaged the same way on both PCB's.
Moreover, one of the prototypes uses the pulse transformer and a dump
rJ45 jack whereas the other uses a combined jack including the
transformer (also from pulse) . I'm sure I must have made a mistake -
but where?

I highly would apreciate any input on this one...



Re: cs8900 not reciveing frames
Quoted text here. Click to load it

And that's where the problem was. Polling the ISQ does not make sense
with interupts not configured to ocure :))

Silly me!


Site Timeline