Estoy haciendo un osciloscopio simple de 1 MHz con un sistema integrado 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 12 MSa/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 circuitos integrados de RAM . Empiezo a llenar la RAM 1 con muestras de mi ADC, luego, cuando está llena, empiezo a llenar la RAM 2 . Mi microcontrolador comenzará a leer datos de la RAM 1 . La velocidad de transferencia USB no es lo suficientemente rápida para leer todo el contenido de la RAM antes de que se llene la RAM 2 , por lo que el ADC tendrá que esperar hasta que la RAM 1 esté vacía, por lo que perderé muestras de mi ADC.
hay alguna forma de prevenir esto? Mi placa de desarrollo es una PandaBoard. Estoy ejecutando Android 4 y funciona perfectamente, pero tengo este problema con respecto al almacenamiento en búfer de hardware.
No se puede muestrear continuamente.
Sin embargo, esto no es un gran problema generalmente con los osciloscopios, ya que la mayoría no hace esto (al menos a velocidades más altas). Incluso un osciloscopio analógico no muestra información continua ya que tiene el período de barrido del haz hacia atrás.
Un osciloscopio de almacenamiento digital típico espera un disparador, llena su búfer a alta velocidad y luego envía los datos a una velocidad más baja 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 parezca continuo para el usuario.
Obviamente, cuanto mayor sea el búfer de RAM, más muestras (tiempo) se pueden capturar. Esta es la razón por la que verá anuncios de DSO de grandes búferes de captura. A alta velocidad, esto puede marcar una gran diferencia: a 2 gigamuestras por segundo y un búfer de captura de 10 KB, solo obtendrá 5 us de información. Algunos con búfer más grandes solo pueden usar parte de él a la velocidad más alta; por ejemplo, mi DSO tiene 10 MB de búfer hasta 1 Gsps, pero solo puede usar 10 KB a 2 Gsps.
En su caso, podría cambiar a la captura continua a velocidades que el USB es capaz de (por ejemplo, <1 Msps). Tal vez también podría considerar usar compresión.
O eso o mirar el uso de USB de alta / súper velocidad.
Andrés
chris stratton
tubo
chris stratton