Encontré un comportamiento i2c muy extraño en mi proyecto.
Utilizo un Adafruit Feather M0 (3.3V) como maestro i2c y 3 esclavos (sensor de giroscopios MPU6050, DS3231 RTC, M24C01WP EEPROM) esquema a continuación
La EEPROM funciona sin fallas, el Gyro devuelve 0 en todos los registros existentes y el RTC solo funciona en minutos y segundos. La fecha y las horas siempre se devuelven mal.
Debido a Adafruit Feather M0 y la biblioteca Arduino estándar, el bus I2C funciona con 3.3 V a 100 kHz. Utilicé 1kOhm Pullups.
Todas las hojas de datos indican que los dispositivos son compatibles con 3.3v y 100kHz. También los 3 dispositivos tienen diferentes direcciones i2c.
Construí el dispositivo dos veces, así que no creo que el gyro o el rtc estén rotos.
Nuevamente los dispositivos responden a las solicitudes. Solo los valores son incorrectos.
MPU6050: enlace
DS3231: enlace
Edición: C1 está entre 3V3 y tierra, NO scl y datos