Hallo,

wenn es bevorzugt nach dem Einschalten passiert, könnte es ja sein, daß Slaves noch nicht bereit sein.
Warte doch einfach etwas, bevor das Programm mit der Übertragung loslegt.

Du schreibtst, es läuft nichts mehr auf dem Bus.
Hängt das Programm im Controller wegen völlig anderer Bugs und kommt deswegen nicht dazu, was auf I2C zu senden?
Mach doch ein paar Debug Ausgaben mit ins Programm rein, dann kannst Du die Stelle eingrenzen, wo das Programm hängen bleibt.
Wenn Du I2C Transfers verdächtigst, dann als z. Bsp ein 1 senden über RS232 wenn Du die I2C Routinen betrittst, 2 wenn Du wieder verlässt.
Dann erkennst Du, wo es hängt.

Ist Deine I2C Routine robust gegen Fehler auf dem Bus?
Wenn ein Slave angesprochen wird, der aber nicht antwortet, wartest Du dann unendlich auf Acknowlege oder kommst Du geordnet aus so einem Fehler wieder raus.

Bernhard