ENC28J60 Problem mit Empfang

Gast #808086
Hallo!
Ich habe mir ein TestProgramm für den enc28j60 geschrieben.
Zum Testen schicke ich einen Ping an irgendeine Adresse, sodass im 
Sekundentakt ein ARP-Paket bei mir ankommt. allerdings kommen nur die 
ersten 4 Pakete heil an, danach gibt es in etwa 8 von 10 Fällen ein 
unerwartetes Ergebnis:
Wenn ich das erste Paket bekomme, dann wird es ab Adresse 0x0000 im 
Speicher abgelegt. Die ersten Beiden Bytes (00 46) stellen den Zeiger 
auf das Nächste Paket dar; es liegt bei 0x0046
Wenn das nächste Paket gekommen ist, dann kann ich es auch ab dieser 
Adresse finden. das Nächste ist dann bei 0x008C, dann bei 0x00D2 und 
schließlich bei 0x0118. Also immer
im Abstand von 0x46 und Der Pointer zeigt immer Richtig auf das nächste 
Paket, außer ab 0x0118. hier finde ich nur Datenmüll, auf den ersten 
Blick, dann fiel mir auf, dass das Paket schon an der Adresse 0x00FC zu 
finden ist. also bei 0xD2 + 0x2A. Ab hier stimmt dann der Pointer auf 
das Nächste Paket wieder , welches ich dann in 0x0140 finde, was gerade 
0xFC + 0x46 ist.
Abhilfe schafft also die Zeile if(NextPacketPointer==0x118) 
NextPacketPointer=0xFC
Das Kuriose ist allerdings, dass dieses Problem nicht immer auftritt. 
Manchmal arbeitet das Programm auch
ganz normal und Ich bekomme ein ordentliches Paket an der Stelle 0x0118 
abgeliefert. Ich bekomme also immer die richtigen Daten, allerdings 
manchmal an der falschen Stelle geliefert.
was kann das sein?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.