ENC28J60 nimmt nur ARP Requests oder Broadcast an

#4786200
Lesenswert?
• ▲
▼
Ich verwende auch den ENC28j60, an einem STM32F4 Discovery Board.

Ich habe ebenfalls das Phänomen, dass keine PING-pakete empfangen 
werden.
Alles andere funktioniert jedoch einwandfrei. TCP, UDP, ARP, alles kein 
problem. HTTP, DHCP, DNS, NTP, LLMNR sind alle getestet

meine config:
1
const uint8_t enc28j60_InitScript[] = {
2
//    Size of junk    Data
3
    0x07,        0x48,0x40,0x06,0xFF,0x1F,0x40,0x06,    // set buffer pointer for rx, set read pointer to start
4
    0x03,        0x40,0x40,0x06,              // set spi read address to start
5
    0x02,        0x9F,0x01,                // switch to register bank 1
6
    0x02,        0x58,0x60,                // receive filter: all frames with correct crc
7
    0x02,        0x9F,0x02,                // switch to register bank 3
8
    0x07,        0x40,0x80,0x00,0xFF,0xE1,0xFF,0xFF,    // write own mac address
9
    0x02,        0xBF,0x01,                // switch to bank 2
10
    0x02,        0x40,0x0D,                // Enable Pause Control, enable MAC receive
11
    0x02,        0x42,0xB1,                // Enable Padding, CRC and Full Duplex
12
    0x02,        0x44,0x15,                // Set back to back inter packet gap
13
    0x03,        0x46,0x12,0x0C,              // Set non back to back inter packet gap
14
    0x03,        0x4A,0xEE,0x05,              // MTU is 1518
15
    0x05,        0x54,0x12,0x00,0x12,0x00,        // enable link change interrupt in PHY
16
    0x02,        0x5F,0x04,                // switch to register bank 0, enable receiver
17
    0x02,        0x5B,0xD8,                // enable interrupts
18
};
Gast #4786219
Lesenswert?
• ▲
▼
BerndB schrieb:
> Hallo,
>
> bei meinem Versuch (nach Ulrich Radig) auf einen "ping" zu antworten
> habe ich das Problem, das der Interrupt meines ENC28J60 nur bei einem
> ARP oder Broadcast funktioniert und nicht bei einem ICMP zum Beispiel.
>
> Kann mir jemand helfen?

Bei mir funktioniert Ping. Welche Firmware verwendest du?
Gast #4786227
Lesenswert?
• ▲
▼
Oh danke,

den ping sende ich von einem Windows-XP Rechner.

Folgendes passiert:
Auf ping 192.168.0.91 bekommt mein ENC28J60 ein Interrupt (ARP 0x0806) 
und ich kann die Anforderung bearbeiten und sende ein Paket mit den 
entsprechenden Daten als IP 0x0800 opcode = 2 zurück.
Darauf schickt der PC ein ICMP-Paket und ich bekomme aber kein Interrupt 
darauf!

Das ist mein Problem!

Bernd
Gast #4786389
Lesenswert?
• ▲
▼
>Dann nimm den Drahthai und lass ihn den Verkehr analysieren. Eventuell
>ist an deinem ARP-Response Päckchen etwas falsch.

Leider nicht! Nach Wireshark ist alles ok, und mit "arp -a" kann ich
den Eintrag in der Tabelle (PC) sehen.
Bei "Ulrich Radig" wird nach "ICMP" ausgewertet, also muß doch der 
ENC28J60 das ICMP-Paket empfangen können und einen Interrupt auslösen!

Woran kann das liegen das das bei mir nicht klappt??

Gruß,
Bernd

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren