Hallo,
ich bin gerade dabei ein Gerät mit Netzwerkinterface zu entwickeln. Als Ethernetcontroller kommt dabei ein CS8900A-CQ (10MBit, von Crystal) zum Einsatz, der von einem M16C angesprochen wird. Der CS8900A ist über Twisted Pair (isolation transformer = TG42-1406N1) mit einem 100/10 MBit Switch verbunden. Die Verschaltung des analogen TP-Parts ist wie im Datenblatt vom CS8900A angegeben. Auch am RES Pin des Controllers liegt mittlerweile ein echter 4.99KOhm Widerstand gegen Masse und die Kommunikation M16C CS8900A funktioniert einwandfrei. Beim Empfangen (also Switch -> CS8900A) von Ethernet-Frames gibt es nun folgendes Problem: Wenn mehrere Frames schnell aufeinander folgen, werden vom CS8900A nicht alle korrekt empfangen. Etwa jedes 20. Paket geht verloren. Ich habe mal die Error Flags analysiert und so erfahren, dass der Controller bei einem solchen "verlorenen" Paket meistens einen Runt-Error (= Paket zu kurz, < 64 Byte, ist im Ethernet wegen Kollisionserkennung nicht erlaubt) und (logischerweise auch) einen CRC Error ausgibt. Manchmal ist es aber auch nur ein CRC Error oder er registriert gar kein Paket. Dieser Fehler tritt nur auf, wenn die Ethernet Pakete schnell aufeinander folgen (bei meinem Test ca. 10µs Delay zwischen den Frames) und auch schon, wenn es nur zwei Pakete sind. Wird zwischen den Paketen hingegen ein grösserer Delay (z.B. 10ms) eingehalten, so geht keines verloren. (Ein Mp3-Datenstrom lässt sich z.B. fehlerfrei abspielen.) Durch die vielen Runt-Errors dachte ich zuerst, der Controller würde vielleicht manchmal das Preamble eines Frames verpassen, aber dieser Fehler müsste dann ja auch bei grösseren Delays zwischen den Frames auftreten. Daher meine Frage, hatte jemand schon mal ein ähnliches Problem oder eine Idee, wo ich noch suchen könnte? Und wenn jemand ein Projekt mit dem CS8900A am Laufen hat, könnte er mir vielleicht mal die Initialisierungsroutine schicken? Ich könnte mir vielleicht auch vorstellen, dass es an einer falschen Initialisierung liegt. Obwohl der Controller ansonsten einwandfrei funktioniert.
Vielen Dank, Michael