Estoy intentando conectar muchos (~ 80) sensores de distancia ToF VL53L0X a un solo bus i2c. Tienen la dirección i2c predeterminada 0x52, que es programable, pero no persistente. Por lo tanto, puedo elegir entre la activación / desactivación selectiva de sensores (a través de la expansión GPIO en i2c, etc.) y reprogramar cada dirección individual al inicio, o hacer que las direcciones se traduzcan sobre la marcha en hardware. Esto es sobre la segunda opción.
Habría el traductor T
(algo así como LTC4316, pero preferiblemente uno sin divisores de voltaje) siempre entre el sensor S
y el bus, así, cada traductor configurado para una dirección diferente, por supuesto:
master ---+---+---+---+
T T T T
S S S S
Ahora me gustaría poder conectar otros módulos idénticos como este uno después de otro, pero para evitar conflictos de direcciones, cada módulo tendría un traductor N
al principio:
(-- module 1 --) (-- module 2 --) (-- module 3 --)
M---+---+---+---+ === M---+---+---+---+ === M---+---+---+---+
T T T T T T T T T T T T
S S S S S S S S S S S S
El módulo 1 se traduciría por M
, el módulo 2 por MM
, el módulo 3 por MMM
y así sucesivamente, por ejemplo como este (con la dirección del sensor 0 para simplificar, T
agregando 1, M
añadiendo 4)
global address 4 5 6 7 8 9 10 11 12 13 14 15
module-level address 0 1 2 3 0 1 2 3 0 1 2 3
sensor address 0 0 0 0 0 0 0 0 0 0 0 0
Me gustaría comentar si esta es una buena forma de avanzar lógicamente, si tiene sentido eléctricamente y quizás incluso una sugerencia para IC similar al LTC4316, con la dirección de traducción seleccionable tirando de los pines alto / bajo.