sorry
------------------------
ich habe den Webserver mit Holger's Platine (http://www.mikrocontroller.com) aufgebaut. Aber ich bekomme den irgendwie nicht zu Laufen.
Ich habe zwei Netzwerkarten mit UM9008 Chip. Sollten lt. Uli auch laufen. Alle Werte auf den Karten sind korrekt eingestellt (9,300). Und trotzdem bekomme ich kein 'Card Init: OKAY 34'.
Ich bekam anfangs meistens folgende Werte:
Card Init: ERROR(255).
Dann habe ich einen Pullup den Dataport A7 gehangen. Fortan bekomme ich nun:
Card Init: ERROR(162).
Wäre wahrscheinlich auch in Ordnung. Die Karte wird eben nicht erkannt. Aber bei jedem 4.-8. Reset erhalte ich:
Card Init: ERROR(34).
Das heisst doch, beim ersten Test ReadRTL(0) bekommt der AVR einen Wert != 34 und beim anschliessenden printf(...) ist der Wert dann '34'. Also wird die Karte doch manchmal erkannt, oder?
Und wenn ich dann einen 'Card Init: ERROR(34)' bekommen habe, dann kommt nach einiger Zeit auch ein 'Overrun!'.
Also wird doch auch ein Interrupt ausgelöst!? Ich habe nun auch mal in der Interrupt-Routine ein printf("interrupt") eingefügt, damit ich sehe, ob und ann die Funktion aufgerufen wird.
Nun habe ich folgendes entdeckt: Wenn ich nach einem 'Card Init: ERROR(34)' den Webserver mit einem Netzwerk verbinde, kommt nach einer Weile ein 'interrupt' und gleich darauf ein 'overrun!'. Dann pinge ich den Webserver mal an. Eine Weile tut sich gar nichts, aber nach 30-60s (da steht schon lange im DOS-Fenster mehrfach 'Zeitüberschreitung' drin) werden plötzlich 4-5 Zeilen 'interrupt' z.T. auch 'overrun!' auf der seriellen Schnittstelle ausgegeben.
Mir sieht das Ganze nach einem gewaltigen Timing-Problem aus.
Ich hoffe, meine Ausführungen waren nicht zu wirr. Hat hier vielleicht einer eine Idee, was ich noch machen kann, damit es geht?
Wo finde ich Informationen, wie man eine NE2000-Karte richtig initialisiert und anspricht?
Danke
Joline
P.S. Ich benutze übrigens die Quellen von http://www.mikrocontroller.com v1.38.