13 votos

Medida muy precisa del tiempo

Voy a medir muy corto tiempo, de forma tan precisa como sea posible. El dispositivo se consiguen por primera vez en un pulso y dentro de los 150 microsegundos más de seis, cada uno en sus propios cables. El tiempo entre la primera señal y cada uno de los otros seis señales deben ser medidos de forma tan precisa como sea posible. La precisión debe ser de al menos 100 nanosegundos, pero más es mejor.

Que el microcontrolador sería mejor para esto? He encontrado este. Ellos parecen tener un temporizador con un periodo de 4 nanosegundos. Sería lo suficientemente precisas como para mí.

Algunos otros microcontrolador ser mejor para hacer esto? Se puede hacer esto con AVR?

8voto

Scott Puntos 138

La velocidad del microcontrolador no es siempre el factor limitante. El MSP430 puede ser una solución adecuada, no por el hecho de que sólo se ejecuta hasta 25MHz, pero debido a varios MSP430 dispositivos tienen el Temporizador D periférico que permite hasta 4ns período de tiempo (256MHz). Esto es más rápido que casi todos los microcontroladores por ahí. Incluso el STM32 en sus últimas versiones (F4) sólo se puede hacer 180MHz.

Temporizador D está disponible en MSP430F51x1 y MSP43051x2 dispositivos tales como el MSP430F5131.

Sin embargo, que sólo resuelve ser capaz de capturar el momento. La gran pregunta es ¿qué hacer con él, porque el procesamiento de la misma será más lento. Puedes probar el tiempo entre dos pulsos, pero usted no será capaz de hacer cualquier procesamiento entre ellos, si eso es lo que quieres decir.

4voto

Armandas Puntos 552

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:

  1. 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.

  2. 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.

6 Timers PSoC Cypress

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.

0voto

Mario Puntos 191

Revisado respuesta: Una rápida osciloscopio de almacenamiento digital o, posiblemente, contador de frecuencia del dispositivo.

Respuesta anterior:

En términos simples, "el más rápido del microcontrolador se puede encontrar", sobre la base de que el más rápido de su reloj / de muestreo, la más precisa puede ser. MSP430 no son rápidos dispositivos.

STM32 son de 32 bits y se ejecutará más rápido, además de disponer del mismo modo hoteles dev consejos y herramientas disponibles, pero incluso eso es bastante lento en comparación con algunos de los más poderosos material disponible (Raspberry Pi @800 mhz - 1 ghz(Overclocking)). Generalmente sin embargo, cuanto más rápido vaya, más complicado que el procesador para que pueda haber un trade-off en la curva de aprendizaje.

Añadido: Benji es de la derecha, (que) también necesitan una precisa oscilador para el micro si desea muy precisas mediciones (que realmente no especificar los límites de error en su pregunta).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X