¿Todos los sensores I2C son interoperables?

Tengo un controlador de vuelo quadcopter ( RTFQ Flip MWC ) que admite sensores I2C para agregar cosas como un barómetro, un magnetómetro y un sistema GPS. El bloque de sensor admitido oficialmente ( BMP180 , HMC5883L en una placa) está descontinuado, por lo que puedo decir.

He encontrado otros sensores de barómetro y magnetómetro I2C ( BMP280 , LSM303 ), pero ni siquiera estoy seguro de si todos los dispositivos I2C del mismo tipo son interoperables. ¿Todos se ven iguales (al menos en cuanto a la interfaz) para el controlador de vuelo?

También soy nuevo en I2C en general; los sensores que necesito vienen en dos tableros separados. ¿Solo apilo las placas, conectando directamente el bus I2C entre cada una?

Gracias de antemano, Neil.

EDITAR: Pude encontrar las hojas de datos de los sensores descontinuados y propuestos:

Todos son compatibles con la salida de 3.3v del Flip MWC, lo cual es bueno.

Rápidamente pude encontrar lo que creo que es el mapa de registro para BMP180 y HMC5883L, pero la tabla que encontré para LSM303 era muy confusa y no pude encontrar ninguna en la hoja de datos de BMP280.

No asumiría que lo son. ¿Seguramente puede comparar las hojas de datos para averiguarlo?
@BrianDrummond ¿Qué especificaciones buscaría comparar entre hojas de datos? Pinout?
Registro de mapas y formatos de datos. Si contienen datos diferentes, o direcciones I2C diferentes, o los registros están en direcciones internas diferentes, etc., no puede usarlos sin volver a escribir el software del controlador de vuelo.
O si funcionan con un voltaje diferente. Por ejemplo, probablemente no pueda conectar un sensor I2C alimentado por 5 V a un controlador alimentado por 3,3 V sin agregar un circuito traductor de voltaje.
Pinout es lo único que no importa para la compatibilidad en el bus. Pinout solo importa si está buscando un reemplazo directo directo que tenga que encajar en las almohadillas existentes.

Respuestas (1)

La única forma de saber si dos dispositivos IIC son compatibles en este contexto es comparar su interfaz IIC en las dos hojas de datos con mucho cuidado. IIC puede ser en gran medida estándar, pero no dice nada sobre los datos de carga útil transportados por IIC.

Si un producto en particular se vuelve popular, los competidores a menudo harán que el suyo sea compatible. Sin embargo, no hay garantía de que dos dispositivos sean compatibles. Cada uno podría usar un formato diferente para enviar los datos, requerir diferentes configuraciones en diferentes registros a los que se accede de manera diferente para seleccionar funciones, etc.

A menos que sepa que son compatibles, asuma que no lo son.