ich versuche gerade den Etherboot auf einem Mega 32 zum Laufen zu bekommen.
Leider Bekomme ich keine Verbindung, nach dem Starten blinken die LED am Netzwerkstecker zwar, aber sonst passiert nichts (PC Software Timeout)
Folgende Änderungen habe ich für den Mega 32 gemacht:
ENC28j60.h
Code: Alles auswählen
/*************************************************************
atmega <-> enc connection pins, ports, interrupt
*************************************************************/
#define SPI_DDR DDRB
#define SPI_PORT PORTB
#define SPI_SCK 7
#define SPI_MISO 6
#define SPI_MOSI 5
#define SPI_SS 3
//#define ENC_RESET 2
#define ENC_DDR DDRB
#define ENC_PORT PORTB
#define ENC_CS 4 //4 für Pollin NET I/O Board
#define ENC_PIN PINB
#define ENC_INT 2
#define enc_select() ENC_PORT &= ~(1<<ENC_CS)
#define enc_deselect() ENC_PORT |= (1<<ENC_CS)
#define ETH_INTERRUPT INT2_vect
#define ETH_INT_ACTIVE (!(ENC_PIN & (1<<ENC_INT)))
#define ETH_INT_ENABLE GICR|= (1<<INT2)//EIMSK |= (1<<INT1)
#define ETH_INT_DISABLE GICR&= ~(1<<INT2)// EIMSK &= ~(1<<INT1)
Code: Alles auswählen
//Interrupt Vektoren verbiegen
GICR = (1<<IVCE);
GICR = (1<<IVSEL);
/* Clear WDRF in MCUSR */
MCUCSR &= ~(1<<WDRF);
/* Write logical one to WDCE and WDE */
/* Keep old prescaler setting to prevent unintentional time-out */
//WDTCSR |= (1<<WDCE) | (1<<WDE);
/* Turn off WDT */
//WDTCSR = 0x00;
WDTCR = (WDTOE)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0); //Prescaler maximum, Watchdog turn of Enable Bit gesetzt
//Applikationen starten
Bei den Optimization Flags musste ich den Haken bei "Use rjmp/rcall (limted range) on >8k devices (-mshort-calls)" entfernen
F_CPU auf 16Mhz geändert
Hat noch jemand eine Idee wo das Problem liegt?