Medición de tiempo muy precisa.


13

Voy a medir tiempos muy cortos con la mayor precisión posible. El dispositivo obtendrá primero un pulso y dentro de 150 microsegundos seis más, cada uno en sus propios cables. El tiempo entre la primera señal y cada una de las otras seis señales debe medirse con la mayor precisión posible. La precisión debe ser de al menos 100 nanosegundos, pero más es mejor.

¿Qué microcontrolador sería mejor para esto? He encontrado esto . Parecen tener un temporizador con un período de 4 nanosegundos. Sería lo suficientemente preciso para mí.

¿Sería mejor algún otro microcontrolador para hacer esto? ¿Se puede hacer esto con AVR?


2
Creo que estás hablando de precisión, no de precisión. ¿Qué pasa si tiene una precisión de nanosegundos, pero el reloj subyacente está apagado en un 10%? Entonces las medidas no son precisas.
Kaz

¿A qué distancia están los seis pulsos? ¿Llegan en una entrada común o en seis separadas?
Starblue

Tienen todas sus propias entradas. Los pulsos a veces pueden venir todos al mismo tiempo, pero generalmente vienen en diferentes momentos.
Kestis

Respuestas:


8

La velocidad del microcontrolador no siempre es el factor limitante. El MSP430 puede ser una solución adecuada, no porque solo funcione hasta 25MHz, sino porque varios dispositivos MSP430 tienen el periférico Timer D que permite un período de tiempo de hasta 4ns (256MHz). Esto es más rápido que casi todos los microcontroladores que existen. Incluso el STM32 en sus últimas versiones (F4) solo puede hacer 180MHz.

El temporizador D está disponible en dispositivos MSP430F51x1 y MSP43051x2 como el MSP430F5131.

Sin embargo, eso solo resuelve poder capturar el tiempo. La gran pregunta es qué hacer con él porque el procesamiento en sí será más lento. Puede probar el tiempo entre dos pulsos, pero no podrá realizar ningún procesamiento entre ellos, si eso es lo que quiere decir.


Lo malo es que no tenía RTFM completamente del MSP430, principalmente porque el sitio web de TI desencadena convulsiones de odio pavlovianas.
John U

@JohnU: Nunca tuve esa reacción. La verdad es que el OP no especificó mucha información sobre lo que está haciendo, por lo que es difícil dar una sugerencia adecuada.
Gustavo Litovsky

El procesamiento no es un problema. Hay muchos segundos para hacer los cálculos una vez que se han capturado los tiempos y los algoritmos ni siquiera son complejos. ¿Puede un MSP430 manejar los seis pulsos o debería haber más?
Kestis

@Kestis: El temporizador D contiene 6 registros de comparación de captura, y algunos MSP430 tienen más de un solo módulo Timer D, por lo que debe cumplir con sus requisitos.
Gustavo Litovsky

4

La sincronización a una resolución de 100ns requiere un temporizador que funcione a 10MHz. Muchos microcontroladores deberían ser capaces de ejecutar un temporizador tan rápido.

El problema surge cuando intenta cronometrar la llegada de 6 señales. ¿Están todas estas señales en el mismo cable o cada una en un cable diferente?

Si todos están en el mismo cable, entonces es posible hacer esto con precisión en cualquier MCU con un solo temporizador de 10MHz. Ingenuamente, el código para hacer esto se vería así:

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 lleva un tiempo finito restablecer el temporizador. Esto causa dos problemas:

  1. Los tiempos medidos estarían mal por unos 100ns, dependiendo de su implementación. Sin embargo, deberían estar consistentemente equivocados. IE mal por exactamente la misma cantidad cada vez. Esto significa que puede compensarlo fácilmente agregando una pequeña cantidad a cada medición.

  2. Habría un tiempo mínimo que podría medir. Si el pulso llegó 100ns después del anterior, entonces probablemente lo perderá. No sé si hay algo que puedas hacer al respecto en el software. Tendrá que encontrar un microcontrolador que pueda manejar múltiples pulsos en el hardware.


¿Qué microcontrolador puede manejar múltiples pulsos en hardware? El Cypress PSoC ! Este es un microcontrolador que también contiene bloques digitales configurables, lo que significa que puede tener fácilmente 6 temporizadores separados en funcionamiento, cada uno a 60MHz, lo que le brinda una resolución mejor que 20ns.

6 temporizadores PSoC Cypress

Aquí hay un ejemplo que hice rápidamente para mostrarle el tipo de cosas que podría hacer con él. Tengo 6 temporizadores separados, todos corriendo fuera del reloj del bus, que pueden llegar hasta 67MHz. Hay un pin de activación que inicia la ejecución de todos los temporizadores y otros 6 pines, cada uno de los cuales causa un evento de captura en el temporizador. Un registro de estado permite que su código monitoree qué temporizadores tienen un pulso. El código puede leer los valores de los temporizadores.


Ese PSoC parece muy interesante. Sin embargo, preferiría AVR o MSP430 porque son mucho más comunes.
Kestis

0

Respuesta revisada : Un osciloscopio de almacenamiento digital rápido o posiblemente un dispositivo contador de frecuencia.

Vieja respuesta :

En términos simples, "el microcontrolador más rápido que pueda encontrar", ya que cuanto más rápido sea su reloj / muestreo, más preciso podrá ser. Los MSP430 no son dispositivos rápidos.

Los STM32 son de 32 bits y se ejecutarán más rápido, además de tener paneles y herramientas de desarrollo igualmente baratos disponibles, pero incluso eso es bastante lento en comparación con algunas de las cosas más potentes disponibles (Raspberry Pi @ 800MHz - 1GHz (Overclocked)). En general, sin embargo, cuanto más rápido vaya, más complicado será el procesador, por lo que puede haber una compensación en la curva de aprendizaje.

Agregado: Benji tiene razón, usted (puede) también necesita un oscilador preciso para el micro si desea mediciones muy precisas (realmente no especifica límites de error en su pregunta).


Básicamente, hay otros tipos de temporizadores, además del microcontrolador que muestrea la señal en un bucle.
Nick Alexeev

Y ayudaría si el microcontrolador tiene un oscilador / cristal externo muy preciso conectado.
BenjiWiebe

Ambos tienen razón, he editado.
John U
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.