Acabo de leer la hoja de datos, sin algún hardware externo (por ejemplo, algún tipo de búfer de multiplexación con selección de canal y habilitación de chip) no puede tener dos de estos dispositivos en el mismo bus I2C.
El dispositivo que está utilizando tiene una dirección fija establecida de fábrica. No hay formas de cambiar la dirección por software o incluso por pines externos para ajustar su dirección de bus I2C de 7 bits.
El AVR de 8 bits de ATMEL más complejo, como los XMEGA, tiene múltiples interfaces I2C, por lo que con esos podría tener dos dispositivos, uno por canal. Lo mismo con el ARM Cortex M0 simple y más pequeño - > M3, por ejemplo, todos tienen múltiples interfaces de bus que pueden resolver este problema.
Algo que se puede hacer con un poco de hardware y software es tener un IC que bloquee el I2C Serial Clock (SCL) a uno u otro y alterne cuál recibe las señales del reloj y, por lo tanto, puede recibir y responder. a los comandos. Supongo que un simple MOSFET dual con control XOR en las puertas podría hacerlo, con circuitos simples. De lo contrario, algún tipo de controlador de línea / chip de búfer con un pin de habilitación y doble canal / salida multiplexada le permitirá cambiar qué salida recibe la señal SCL.
De cualquier manera no es bonito. Siempre puede encontrar un segundo, pero un magnetómetro de módulo / IC similar que tiene una dirección I2C con código de codificación diferente o al menos la capacidad de cambiarlo (generalmente configuraciones de pin / resistencias externas) para permitir múltiples en el mismo bus.
EDIT: Texas Instruments tiene un documento de solución de problemas de I2C que en la página 8 muestra una manera de haga la multiplexación de una manera más sencilla de lo que describí para dividir el bus I2C en subsecciones para tratar problemas de dirección de esclavos conflictivos como los que tiene.
buena suerte!