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?
Mit Dank,
Bernd
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
constuint8_tenc28j60_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
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?
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
BerndB schrieb:> Das ist mein Problem!
Dann nimm den Drahthai und lass ihn den Verkehr analysieren. Eventuell
ist an deinem ARP-Response Päckchen etwas falsch.
BerndB schrieb:> ENC28J60 nimmt nur ARP Requests oder Broadcast an
Kann gar nicht sein. Der ENC28J60 nimmt alles an was er
auf der LAN-Leintung bekommt, sogar die Pakete die er
gar nicht haben will.
Entscheidend ist was der daran hängende Controller damit macht.
>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