¿Cómo funciona un búfer de osciloscopio?

2

Estoy haciendo un simple osciloscopio de 1MHz con un sistema embebbed basado en ARM y Android. Tengo un ADC con una velocidad de 12MSa / s que toma las muestras. Lo necesito para enviar las muestras a un microcontrolador PIC, para enviarlas por USB a mi sistema Android.

No puedo enviar 12MSa / s de datos a través de USB, así que investigué y creo que tengo que usar un búfer de RAM. He investigado un poco en Internet, pero no puedo entender cómo funcionan.

Por lo que puedo entender: Supongamos que tengo 2 IC de RAM . Comienzo a llenar RAM 1 con muestras de mi ADC, luego, cuando se llena, comienzo a llenar RAM 2 . Mi microcontrolador comenzará a leer datos de RAM 1 . La velocidad de transferencia USB no es lo suficientemente rápida como para leer todo el contenido de la RAM antes de que se llene RAM 2 , por lo que el ADC tendrá que esperar hasta que RAM 1 esté vacío, por lo que lo haré muestras sueltas de mi ADC.

¿Hay alguna manera de prevenir esto? Mi placa de desarrollo es un PandaBoard. Estoy ejecutando Android 4 en él y funciona perfectamente, pero tengo este problema relacionado con el almacenamiento en búfer del hardware.

    
pregunta Andres

1 respuesta

1

No puedes muestrear continuamente.
Sin embargo, esto no es un gran problema, por lo general con los ámbitos, ya que la mayoría no lo hace (al menos a velocidades más altas). Incluso un alcance analógico no muestra información continua, ya que tiene el período de barrido posterior del haz.

Un ámbito de almacenamiento digital típico espera un disparador, llena su búfer a alta velocidad, luego envía los datos a una velocidad inferior al microcontrolador (o Android en su caso) para su visualización. Como menciona Photon, esto sucede lo suficientemente rápido (por ejemplo, más de 15 cuadros de datos por segundo) para que se vea continuo para el usuario.

Obviamente, mientras más grande sea la memoria RAM, más muestras (tiempo) se pueden capturar. Esta es la razón por la que verá DSO que anuncian grandes búferes de captura. A alta velocidad, esto puede hacer una gran diferencia: con 2 Gigasmples por segundo y un búfer de captura de 10 KB, solo obtendrá 5us de información. Algunos con búferes más grandes solo pueden usar parte de ella a la velocidad más alta, por ejemplo, mi DSO tiene 10 MB de búfer hasta 1 Gsps, pero solo puede usar 10KB a 2Gsps.

En su caso, podría cambiar a la captura continua a velocidades que el USB es capaz de (por ejemplo, < 1 Msps) También podría considerar usar la compresión.
O eso o mirar usando USB de alta velocidad / super velocidad.

    
respondido por el Oli Glaser

Lea otras preguntas en las etiquetas