visto che con il fast i2c al massimo avrai 1kHz letture,
Con l'I2C a 100 kHz (poco meno di 100 kbps reali) hai un transfer rate reale di circa 8 kByte/sec ipotizzando un flusso dati continuo, tenuto conto che ogni operazione I2C prevede l'uso di almeno tre byte, address + comando + risposta, ottieni un transfer rate minimo (worst case) di almeno 2600 Bytes/sec di dati reali, a 400 kHz arrivi a oltre 10 kByte di dati reali.
Poi tocca vedere cosa devi farci con i dati in oggetto, anche se l'I2C è gestita in hardware, ovvero durante la trasmissione e ricezione dei singoli byte la cpu non è impegnata, gestire un flusso di 2600 Bytes/sec con un ATmega 328, con relative operazioni per la manipolazioni dei dati, è praticamente impossibile.
Comunque l'ITG3200 in realtà garantisce un flusso dati pari ad un massimo di 256 letture al secondo perché le letture raw analogiche sono preventivamente filtrate con un passo basso, programmabile come banda, in modo fornire dati già filtrati rendendo più semplice il lavoro del micro.
Per leggere 3 valori interi dal gyro basta una singola operazione I2C con lettura di tutti e sei i registri dati, ovvero complessivamente occorrono 8 byte tra trasmessi e ricevuti, per leggere 256 volte al secondo i dati occorre una banda reale leggermente maggiore di 2 kHz pertanto anche utilizzando il bus I2C a 100 kHz è perfettamente possibile leggere il gyro alla massima velocità possibile.
Le considerazioni sulla banda reale valgono anche per gli accelerometri visto che pure loro prevedono sistemi di filtri analogici interni che permettono di scremare i dati raw.