Dos MinIMU-9 v2 con LPCxpresso, o Arduino Uno / Mega

1

Estoy trabajando en un proyecto que interconecta dos sensores IMU a un microprocesador (NXP LPCxpresso). El propósito es leer tanto el giro como el acelerador en dos lugares diferentes de los cuerpos. Me he apresurado a comprar este producto: enlace

Lo triste de esto es que "la dirección del esclavo del acelerómetro está fijada en 0011001b", por lo que no puedo usar dos direcciones I2C diferentes para dos IMU. (¡Pero es posible en la versión 1 de este sensor!).

¿Hay alguna manera de superar este dilema? También estoy pensando en cambiar a MPU-6050, pero lamentablemente, no puedo encontrar una biblioteca para MPU-6050 para LPCxpresso.

¿Podría por favor darme algunas sugerencias?

    
pregunta Josh Vo

2 respuestas

0

El bit SA0 establece el bit menos significativo de la dirección del esclavo. El último bit de la dirección refleja este bit. En el esquema puede ver que este pin se levanta a través de 4.7k a VCC. Puede conectar este pin a tierra para cambiar el último bit de la dirección.

Consulte la página 23 de la hoja de datos de L3GD20 para obtener información sobre esto. Entonces, en su caso, tendrá que despoblar R6 y conectar el pin a tierra.

Esto no resuelve el problema completamente ya que el LSM303 no parece tener la misma capacidad. La forma más fácil aquí es conectarlo a un bus I2C separado si tiene otro disponible.

Una opción interesante es que hay dos transistores Q1 y Q2 en la placa. Podría desconectarlos de VCC cortando las trazas y enrutándolos a un GPIO que seleccionará la IMU con la que desea hablar.

    
respondido por el Gustavo Litovsky
1

Puede usar un multiplexor I2C para dividir su bus I2C y colocar las direcciones en conflicto en diferentes sub-buses. Alternativamente, puede usar un controlador con múltiples interfaces I2C independientes (lo que desafortunadamente el ATMega2560 no lo hace).

    
respondido por el vicatcu

Lea otras preguntas en las etiquetas