I built a Calunium 1284p-based board and loaded it with optiboot. It's running at 16MHz with an oscillator.
I attached a WIZ820io (W5200-based) ethernet connector such that the pins are connected like so:
Atmega1284p <-> WIZ820io
5 (PB4, D10, PWM/SS) <-> 5 (nSS)
6 (PB5, D11, MOSI) <-> 3 (MOSI)
8 (PB7, D12, PWM/SCK) <-> 4 (SCLK)
7 (PB5, D12, PWM/MISO) <-> 7 (MISO)
I tried to make the following corrections in In w5100.h:
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
inline static void initSS() { DDRB |= _BV(4); };
to:
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1284P__)
inline static void initSS() { DDRB |= _BV(4); };
When I call Ethernet.begin the Atmega1284p simply freezes.
The w5100.h I use has previously been tested with an Atmega328p on a breadboard together with the same Wiz820io that I use now.
Any suggestions on what I could try?