nimm doch einfach die I²C Lib und beachte diesen Satz daraus:

/* initialize TWI clock: 100 kHz clock, TWPS = 0 => prescaler = 1 */

TWSR = 0; /* no prescaler */
TWBR = ((F_CPU/SCL_CLOCK)-16)/2; /* must be > 10 for stable operation */

also meine TWI Erfahrungen mit Start NULL Ahnung und gleich mal einen RTC angesprochen waren sofort erfolgreich

der häufigste Fehler ist der vergessene Pullup am Ende der Leitung 4,7k-47k , ich hab 47k drin, aber man liest oft selten größer als 10k