El arranque del sensor VL6180x permanece encendido a pesar de haber eliminado el VIN

2

Estoy experimentando con un par de sensores de distancia VL6180x en brotes ( enlace , los azules).

Debido a que el sensor restablece su dirección i2c cuando se quita la alimentación, y debido a que quiero usar más de una, necesito poder configurar la dirección deseada después del arranque.

Mi idea para resolver eso fue simplemente encender el VIN de los sensores uno tras otro, y establecer la dirección antes de que se encienda el siguiente. Desafortunadamente, parece que los sensores obtienen energía de alguna manera, incluso sin ningún VIN conectado. Supongo que es a través de las resistencias pullup en el bus i2c.

¿Cómo puedo resolver esto? ¿Tengo que agregar algo para romper la conexión del bus i2c junto con el VIN, o hay otras formas mejores?

(Dado que el proyecto para el que están destinados tiene un espacio libre limitado, prefiero una solución con un bajo número de componentes)

    
pregunta Stefan

3 respuestas

2

¿Entonces eso es solo una tabla de ruptura para esto? enlace

Si es así, puede mantener baja la entrada GPIO0 (el 0 en la tabla de ruptura) para poner el chip en un estado de reinicio. Esto significa que tendrá que dedicar una línea de E / S a cada placa, pero de esa manera puede aumentarlas una a la vez sin hacer locuras en el bus I2C.

    
respondido por el Chris Ryding
0

Este es un problema común, a menudo denominado "retroalimentación". Cuando una señal activa puede conectarse a un tablero apagado puede alterar su funcionamiento. Incluso puede hacer que los circuitos apagados sigan funcionando

El culpable habitual dentro del IC son las estructuras ESD utilizadas para evitar el daño electrostático, que a menudo consisten en diodos entre la señal de entrada y el riel de suministro.

La forma habitual de evitar este problema es colocar algún tipo de aislador entre el bus principal y los circuitos en la placa, a menudo lograrán un cambio de nivel al mismo tiempo. Hay soluciones comerciales integradas, así como las que usan dispositivos discretos.

Estanotadeaplicacióndescribelaoperacióncomounaisladorenlasección2.3.4enlapágina11(Noserequiererealizaruncambiodenivel,lasdosfuentesdealimentaciónpuedenserdelmismovoltaje)
Desplazador / aislador bidireccional

    
respondido por el Kevin White
0

Hace algunos años tuve un problema similar con los módulos de detección de movimiento de 6 ejes basados en los chips Invensense MPU6050. También "hablan" a través del bus I2C.

Mi solución fue bastante "fuerza bruta" pero funciona excelente: para cada módulo he creado un circuito simple basado en los interruptores bilaterales cuádruples HCF4066. Se usan dos interruptores para cambiar las líneas I2C, y otros dos conectados en paralelo se usan para controlar el voltaje de alimentación para los módulos MPU6050.

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Jakub Rakus

Lea otras preguntas en las etiquetas