VL53L0x Array, Sensor Sync con I2C

-1

Estoy trabajando en un arreglo de VL53L0x por ST, compuesto por 15 sensores. Estoy utilizando una política de sondeo para leer las mediciones provenientes de la matriz, y cada sensor está configurado en el modo de rango continuo y en modo de alta velocidad (20 ms nominales por lectura).

Mi problema es que cuando leo la matriz se tarda aproximadamente medio segundo en leerla toda, cuando la velocidad a la que aparqué era de 20 ms, ya que los sensores pueden funcionar en paralelo.

Llamo a GetMesurament () para cada sensor y, al final, espero 20ms. La medición cuando llamo a la función debe estar lista, debido al rango continuo y porque he esperado 20 ms desde la última vez que solicité la medición. En su lugar, parece que tengo que esperar a que cada sensor esté listo.

¿He olvidado algo particular en la parte de configuración? ¿Hay un procedimiento de llamada correcto para hacer lo que quiero?

    
pregunta Simone Deola

1 respuesta

0

Dado que estos sensores funcionan en I2C, hay un comando de inicio para indicar al módulo que comience a establecer el rango, y en el modo de alta velocidad 20 ms tarde, el valor se recupera con un comando de lectura. Si utiliza GetMesurament (), es probable que las secuencias se muestren a continuación y que funcionen con un solo sensor.

Siescribierasupropiocódigo,podríaescribirloscomandosdeinicioensecuencia,a400kHz,uncomandodeiniciodeberíallevar~80usescrituraaunsensor.Siescribieraloscomandosdeinicioensecuencia,tomaría~270us.Despuésdequeterminedeescribir,espere20msdesdeelprimeroyluegovuelvaaleertodoslosvaloresensecuencia.

Suponiendo que tiene todos los sensores en un bus I2C, si tuviera varios buses I2C podría reducir su tiempo aún más.

Eso es algo malo de I2C, es bueno tener una interfaz de 2 cables, pero sin un pin de selección de chip no hay control sobre qué chip recibe el mensaje en el bus y tienes que esperar. La única otra forma de evitar esto sería golpear el I2C y colocar cada sensor en su propio bus I2C.

    
respondido por el laptop2d

Lea otras preguntas en las etiquetas