Ich habe das TWI-Problem gelöst:

Durch Messungen habe ich herausgefunden, dass der SCL-Takt im Fehlerfall dauernd auf "1" bleibt. Masterseitig wartet das Programm auf das Bit TWINT { while (!(TWCR & (1<<TWINT))); // siehe Atmel Spec. }, das aber niemals mehr diesen Zustand erreicht.
Durch einen Watchdog { while ( (!(.....))) && !Watchdog) komme ich aus der Warteschleife wieder heraus und der Bus läuft auch wieder an.
Vielen Dank für eure Tipps.

francesco