Forum: Mikrocontroller und Digitale Elektronik Problem mit WIZ812MJ!


von asdf (Gast)


Lesenswert?

Hallo

Ich bin gerade dabei einen einfachen Webserver mit einem Wiz812mj Modul 
und dem Atmega32 zu basteln. Ich habe den Aufbau ferig und auch 
überprüft.

Soo ich habe die super Seite
http://members.home.nl/bzijlstra/software/examples/wiz810mj.htm
gefunden und diese hat mir auch sehr viel weitergeholfen aber ich 
schaffe es nicht eine Verbindung aufzubauen.
Ich will einfach nur mal als erstes den PING Befehl ausführen und dann 
eine AAntwort von meinem Board bekommen. Aber das klappt nicht und ich 
bin schon bald am verzweifeln, weil ich einfach keinen Fehler finde.

Als Antwort auf den PING Befehl bekomme ich immer Zeitüberschreitung.
Ich habe am PC eine fixe IP Adresse eingestellt, das Standardgateway und 
Subnetmask sind gleich wie für den wiznetcontroller. Dann das Board 
direkt mit dem PC verbunden. SOllte passen oder??

Ich glaube es liegt am SPI. Ich habe zwar alle Signale mit dem Oszi 
überprüft und feststellen können das alle Daten und Adressen auch 
gesendet werden, aber bin mir nicht sicher ob auf die Clockrate passt.

Hier mal die spi_init, write_Data und die wiznet_init Funktion:
1
void write_data_wiznet(int registers, unsigned int data) {
2
   unsigned int address_l = 0;
3
   unsigned int address_h = 0;
4
   
5
   address_l = get_AddressL(registers);
6
   address_h = get_AddressH(registers);
7
8
   SPI &= ~SCS;  // SCS low setzen -> Wiznet enabled  
9
   //WIZNET &= ~CS;  // CS low setzen -> Wiznet enabled   
10
   //_delay_us(5); 
11
   write_spi(WIZNET_WRITE);
12
   write_spi(address_h);
13
   write_spi(address_l);
14
   write_spi(data);
15
   //WIZNET |= CS;   // CS high setzen -> Wiznet disabled
16
   SPI |= SCS;   // SCS high setzen -> Wiznet disabled
17
   //_delay_us(5); 
18
}
19
20
void init_spi() {
21
   // MISO -> input; MOSI -> output; SCK -> output; SS -> output
22
   SPI_DDR = 0xB0;
23
24
   SPI |= SCS;  //set 
25
26
   //SPI control register
27
   SPCR = 0x50;
28
   //SPI status register
29
   SPSR = 0x00;
30
31
   //SPI data register
32
   SPDR = 0x00;  
33
}
34
35
void init_wiznet() {
36
    // hardware reset
37
   WIZNET |= RESET;  //set
38
   _delay_ms(10);   
39
   WIZNET &= ~RESET;  //reset
40
   _delay_ms(30);     
41
   WIZNET |= RESET;  //set
42
 
43
   // register reset
44
   write_data_wiznet(MR, 0x80);
45
46
   // set gateway ip address 
47
   write_data_wiznet(GAR0, 192);
48
   write_data_wiznet(GAR1, 168);
49
   write_data_wiznet(GAR2,   0);
50
   write_data_wiznet(GAR3,   1);
51
52
   // set subnet mask 
53
   write_data_wiznet(SUBR0, 255);
54
   write_data_wiznet(SUBR1, 255);
55
   write_data_wiznet(SUBR2, 255);
56
   write_data_wiznet(SUBR3,   0);
57
58
   // set mac address 
59
   write_data_wiznet(SHAR0, 0x00);
60
   write_data_wiznet(SHAR1, 0x08);
61
   write_data_wiznet(SHAR2, 0xDC);
62
   write_data_wiznet(SHAR3, 0x01);
63
   write_data_wiznet(SHAR4, 0x02);
64
   write_data_wiznet(SHAR5, 0x03);
65
66
   // set own ip address 
67
   write_data_wiznet(SIPR0, 192);
68
   write_data_wiznet(SIPR1, 168);
69
   write_data_wiznet(SIPR2,   0);
70
   write_data_wiznet(SIPR3,  10);
71
}

Wäre euch sehr sehr dankbar wenn mir jemand weiterhelfen könnte!!!

mfg

von Bernhard T. (bernhard_t56)


Lesenswert?

Hallo, ich habe das gleiche Problem wie du. Hast du schon eine Lösung 
für das obige Problem entdeckt?

Danke für die Antwort

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.