mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ENC28J60 Problem mit Empfang


Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.