Hallo,
Zitat Zitat von peterfido Beitrag anzeigen
Nutze nur Soft-TWI. Im Code kannst Du mit config TWI die PortPins wechseln.
Die Soft-TWI ist zwar sehr flexibel, was die Pins angeht aber eine Simulation der vorhanden Hardware. belastet halt die CPU, da sie sich selbst um jedes Bit kümmern muss.
Die CPU muss das aktuelle Datenbit extrahieren und an SDA senden und dann SCL toggeln und dabei noch das Timing beachten. Wenn Clockstretching unterstützt wird, muss noch SCL abgefragt werden.
Etwas komplizierter wird es dann, wenn man einen Slave implementieren will. Hier muss dann der Bus eigentlich dauernd überwacht werden, weil man nie weiss man der Master was will. Praktisch wird man dies aber nur mit Interrupts erreich, was dann die Freiheit bei der Pinwahl wieder einschränkt.

Bei der Hardware Variante muss sich die CPU nur um jedes Byte kümmern, hat also wesentlich weniger zu tun, den Rest übernimmt die Hardware.
Allerdings sind die Pins fest vorgegeben.

Die Belastung der CPU hängt natürlich auch vom Datenvolumen auf dem I2C-Bus ab.

MfG Peter(TOO)