cs8900 not reciveing frames

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 cirquitry....

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...

TIA

Markus

Reply to
Markus Zingg
Loading thread data ...
[snip]
[snip]

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

Silly me!

Markus

Reply to
Markus Zingg

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.