@Joerideman Thanks, I again had a quick look at your HW.h file and found the issue:
// set pin mode: MOSI,SCLK,CE,CSN = OUTPUT, MISO = INPUT (=> all on same port)
SPI_DDR = _BV(SPI_MOSI) | _BV(SPI_SCLK) | _BV(CE_PIN) | _BV(PB2) | ~_BV(SPI_MISO);
CSN_DDR = _BV(CSN_PIN);
SPI_DDR and CSN_DDR are both pointing at DDRB:
// SPI communication
#define SPI_PORT PORTB //
#define SPI_DDR DDRB //
and
#elif defined(SPI_PINS_CE8_CSN9)
#define CSN_PORT PORTB // port for CSN
#define CSN_DDR DDRB // DDR for CSN
#define CSN_PIN PB1 // Arduino Pin 9 <-> Bit 1 of port B
Thus, setting CSN_DDR = _BV(CSN_PIN) you overwrite SPI_DDR. Comment out the second line and add _BV(CSN_PIN) to SPI_DDR:
// set pin mode: MOSI,SCLK,CE,CSN = OUTPUT, MISO = INPUT (=> all on same port)
SPI_DDR = _BV(SPI_MOSI) | _BV(SPI_SCLK) | _BV(CE_PIN) | _BV(PB2) | _BV(CSN_PIN);
//CSN_DDR = _BV(CSN_PIN);