PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Wiznet Wiz830mj Modul!



doolitle15
22.04.2010, 14:32
Hallo

Ich verwende das Wiz830Mj Modul und einen Atmega32L. Ich möchte eine als
ersten Schritt eine Verbindung vom PC zu meinem Board (über Ethernet)
herstellen und später einen Webserver implementieren.Leider klappt das
Pingen nicht.
´
Der Atmega ist folgendermaßen mit dem Wiznet Modul verbunden:
Atmega -> Wiz830mj
PortA -> D0...D7
PortB (Pin 0,1) -> A8,A9
PortC -> A0...A7
PortD.2 -> /RD
PortD.3-> /CS
PortD.4 -> /RESET
PortD.5 -> /WR
PortD.6 -> /INT (verwende ich in der Software noch nicht)

Die Spannungsversorgungen und GND Leitungen vom Atmega und Wiznet Modul
sollten stimmen. Habe als Testprogramm ein einfaches Blinklicht in den
Atmega programmiert und es funktioniert. Beim Wiznet Modul habe ich
mehrmals nach gemessen. Also ich denke der Aurbau müsste passen.

So nun habe ich im Netz einen Bascom code zur Initialisierung eines
Wiz810mj Moduls gefunden. Dieses Modul hat einen W5100 und das Wiz830mj
einen W5300 drauf. (Bens Hobby Corner) Dabei wird der Controller(W5100)
auf dem Wiznet Modul per SPI initialisiert. Beim Wiz830mj kann ich den
Controller (W5300) nur parallel ansteuern. Im Datenblatt findet man auch
ein Zeitdiagramm um Werte in ein bestimmtes Register vom W5300 schreiben
zu können.

Ich habe hier mal die Funktion um Daten in ein bestimmtes Register des
W5300 zu schreiben:


void write_data_wiznet(int registers, int value) {
DATA_L_DDR = 0xFF; //setting as outputs
_delay_ms(5);
ADDRESS_H = getHighAddress(registers); //Highbyte aus registers und am PortB ausgeben
ADDRESS_L = getLowAddress(registers); // Low byte aus registers und am PortC ausgeben
_delay_us(1);
WIZ_CONFIG &= ~CS; // CS low setzen -> Wiznet enabled
//WIZ_CONFIG |= RD; // RD high setzen -> read disabled
_delay_us(1);
WIZ_CONFIG &= ~WR; // WR low setzen -> write enabled
_delay_us(0.010);
DATA_L = value;
_delay_us(1);
WIZ_CONFIG |= WR; // WR high setzen -> write disabled
_delay_us(1);
WIZ_CONFIG |= CS; // CS high setzen -> Wiznet disabled
_delay_us(1);

ADDRESS_H = 0x00;
ADDRESS_L = 0x00;
DATA_L = 0x00;
}



Ich glaube das in dieser Funktion der Hund begraben ist, doch leider
weiß ich einfach nicht was ich falsch mache! Der Code müsste doch so
stimmen oder??
Ich wäre euch sehr dankbar wenn ihr mir weiterhelfen könntet!

mfg[/code]