SPI verwendet die selbe Schnittstelle wie ISP. Braucht 4 Leitungen (MOSI, MISO, SCK, SS). Ist auch hardwaremäßig in den AVRs vorhanden - kann also ohne gropße Performanceverluste verwendet werden.

I2C und TWI ist DAS SELBE Bussystem. Phillips hat I2C entwickelt - Atmel darf aus Lizenzrechtlichen Gründen I2C (Inter IC Connection) nicht verwenden. Also nennen sie es einfach TWI (Two Wire Interface). TWI/I2C benötigt nur zwei Leitungen.

Im Prinzip ist es egal, welche man verwendet. SPI sollte etwas höhere Datenraten erlauben und außerdem dürfen hier die Längen der Verbindungen etwas größer sein. I2C ist eigentlich nur für die Verbindung von Chips auf der selben Platine gedacht - die Leitungslängen sollten recht kurz sein (einige 10 cm) - je nach Busgeschwindigkeit.

Für beide Bussysteme gibt es Chips, die sich darüber ansteuern lassen. SPI hat den Nachteil, dass jedes Gerät über eine extra Leitung angeschlossen werden muss, d.h., 4 Leitungen bruachst du für einen Slave - für jeden weiteren Slave brauchst du eine weitere Leitung (Enableleitung). Dahingegen wird über I2C ein Slave nur über seine Adresse angesprochen. Dh. der Bus kommt mit nur 2 Leitungen aus, egal wieviele Slaves.

Viele Grüße
Flite