Tiempo para una resolución de 100 ns requiere un temporizador a 10 mhz. Muchos microcontroladores debe ser capaz de ejecutar un temporizador que rápido.
El problema viene cuando usted está tratando de momento la llegada de 6 señales. Son estas señales en el mismo cable, o cada uno en un cable diferente?
Si es que estamos todos en el mismo cable, entonces es posible hacer esto con precisión en cualquier MCU con una sola 10MHz temporizador. Ingenuamente, para ello, el código sería algo como esto:
wait for trigger signal
reset timer
wait for first signal
save timer value
reset timer
....
wait for sixth signal
save timer value
reset timer
El problema es que se tarda una cantidad finita de tiempo para restablecer el temporizador. Esto causa dos problemas:
Los tiempos de medición estaría mal por un par de 100 ns, dependiendo de su aplicación. Sin embargo, debe ser siempre de mal. I. E. malo por exactamente la misma cantidad cada vez. Esto significa que usted puede fácilmente compensarlo mediante la adición de una pequeña cantidad de cada medición.
No sería el tiempo mínimo que se podría medir. Si cualquiera de pulso de 100 ns llegó después de que el anterior, entonces es probable que la pierdas. No sé si hay algo que usted puede hacer acerca de eso en el software. Usted tendrá que encontrar un microcontrolador que puede manejar múltiples pulsos en el hardware.
Que el microcontrolador puede manejar varios pulsos en hardware? El Ciprés PSoC! Este es un microcontrolador, el cual contiene también configurable bloques digitales, lo que significa que usted puede fácilmente tener 6 separar los temporizadores corriendo, cada uno a 60MHz, dando una mejor que 20ns resolución.
He aquí un ejemplo que me llamó rápidamente para mostrar el tipo de cosas que podía hacer con él. Tengo 6 temporizadores independientes, todos corriendo el reloj del bus, que puede ir hasta 67MHz. Hay un desencadenador pin que inicia todos los temporizadores de ejecución, y otras 6 pines, cada uno de los cuales provoca un evento de captura en el temporizador. Un registro de estado que permite que su código de supervisar que las temporizadores de captura de pulso. El código puede leer los valores de los temporizadores.