Conecte una gran cantidad de dispositivos MPU 6050 I2C

0

Soy bastante nuevo en electrónica, en mi proyecto estoy tratando de conectar una gran cantidad de dispositivos I2C MPU6050s (alrededor de 10 sensores) y trato de obtener la lectura 'simultáneamente'.

Algunas preguntas que no tengo muy claras:

  • Alguien sugirió que la dirección del dispositivo será un problema, pero alguien no, que solo se pueden usar dos direcciones de dispositivo (ALTA y BAJA). ¿Si la dirección del dispositivo no será un problema, cómo los conecto?

He buscado la solución en línea pero todavía no tengo muy claro cómo hacerlo, y obtuve una idea simple (podría ser una tontería) de cómo abordarla, sin embargo, pensé que no es la mejor solución.

Aquí está mi idea:

  • EstoyusandodosmultiplexoresMUX-AyMUX-B.
  • YousolaranuraMUX-AC0-C15paraconectarcadaranuraAD0decadaMPU6050individual,asíquecuandoseleccionounaDeestosMUX-Alepasarán5V.
  • YousolaranuraMUX-BC0-C15paraConectecadaranuraINTdelMPU6050individual,yaquesilasconectoSeriaFIFObuffersedesbordará.
  • ConectolosbusesI2Censerie,ASAVCCyGND.
  • ControlotantoelMUX-AcomoelMUX-BjuntosusandolaranuraS0-S3,paraPorejemplo,siintentoconectareldispositivo0,pasaré0000aambosMUX-AyMUX-B,MUX-ApasaráAD0unaALTAtensiónquelomarcacomoun0x69;MUX-BloharáconectarseaGND;yrestodeotrosdispositivos.permanecerádesconectado.
  • Recorrítodoslosdispositivosde0000a1111lomásrápidoposible,yuséelcódigoMPU6050DMPdeJeffRowbergpararecuperarlosdatos,ylosalmacené.
  • Loquesignificaquenoesperfectamente'simultáneo'peroasincronizado,sinembargo,simisdatosderequisitossolonecesitanunafrecuenciamásbaja,como50Hz,loquesignificaqueprobablementepodríarecuperartodoslosdatosdeestosdispositivosalmismotiempo.

Aquíestánlosrequisitosdemiproyecto:

  • Miproyectoserelacionaconelaprendizajeautomático,porloquedeberíarecopilardatostansincronizadoscomopueda.Delocontrario,mepreocuparéporlosproblemasdeprecisión.

Ymipregunta:

  • ¿Hayalgunaideamejorparaacercarmeamiobjetivo?

Serémuyapreciadoporcualquierayuda...

=========Imageninteresantequeencontréenlínea==========

    
pregunta Yank

1 respuesta

3

Parece que el problema que tiene es que desea conectar 10 dispositivos a un bus IIC, pero estos dispositivos solo pueden configurarse en una de dos direcciones. Ignoro su solución propuesta porque la descripción es demasiado confusa y demasiado larga.

Una forma de lidiar con esto es si cada uno de los dispositivos tiene una línea de habilitación. Puede configurar los dispositivos en dos grupos de 5, una dirección para cada grupo. Luego debe tener 5 líneas de habilitación separadas, con solo un dispositivo de cada grupo habilitado a la vez. Una forma de generar las líneas habilitadas es con un decodificador de 3 a 8 líneas. O puede usar hasta 5 líneas de E / S para un bus de datos y otra como reloj, y luego ejecutarlas en un flip-flop octal. Hay varias ventajas y desventajas entre los pines del micro hardware utilizado y externo.

Otra posibilidad es controlar activamente el bit de dirección de cada dispositivo. Guárdelas todas en una dirección, excepto el dispositivo que desea usar. Ese dispositivo cambia a la segunda dirección, que es la única dirección que usted envía a través del bus IIC. Esto utiliza efectivamente la línea de configuración de dirección como una línea de habilitación. Esta vez necesitarás 10 líneas de habilitación diferentes de una forma u otra eventualmente.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas