Proyecto Tarjeta de adquisicion

#1
Hola, quisiera que me dieran algunas ideas sobre lo siguiente. Necesito desarrollar una tarjeta de adquisición de datos con las siguientes características:
Frecuencia de muestreo de mínimo 50 mil muestras por segundo.
Dos canales analógicos de 16 bits.
Conexión USB.

Por el momento estoy utilizando el ADC LTC1865 y una memoria flash (M45PE16)para guardar los datos del ADC y luego enviar los datos poco a poco por USB a la PC. Con el microcontrolador 18F4550 he logrado tomar muestras del ADC y guardar datos en la memoria, pero leyendo el datasheet de la memoria me doy cuenta que en guardar 256 Bytes le lleva un tiempo de 23ms con lo cual quedaré tremendamente lejos de las 50mil muestras como objetivo.

Alguna sugerencia, idea, que componentes usan las tarjetas de adquisición comerciales?

Les agradezco de ante mando, y un saludo a todo el foro.
 

Dr. Zoidberg

Well-known-Papá Pitufo
#2
joorge87 dijo:
Por el momento estoy utilizando el ADC LTC1865 y una memoria flash (M45PE16)para guardar los datos del ADC y luego enviar los datos poco a poco por USB a la PC. Con el microcontrolador 18F4550 he logrado tomar muestras del ADC y guardar datos en la memoria, pero leyendo el datasheet de la memoria me doy cuenta que en guardar 256 Bytes le lleva un tiempo de 23ms con lo cual quedaré tremendamente lejos de las 50mil muestras como objetivo.
Eso sucede por que estas usando una memoria flash. Esas son fáciles de usar con un PIC pero los tiempos de acceso son enormes. No conozco las especificaciones completas que requiere tu diseño, pero ni me gastaría en usar un PIC para eso. Tal vez diseñando la lógica adecuada en un FPGA y utilizando memorias RAM estáticas puedas exceder ampliamente la velocidad de muestreo que te piden y luego usar el PIC para gestionar la comunicación USB y la entrega de la información.

Saludos!
 
#3
Posiblemente un PIC si te sostenga 50 ksps con USB pero hay que tener mucho cuidado con la programacion para mantener los tiempos adecuados

Usar una EEPROM definitivamente esta mal... son lentas y tienen un numero maximo de escrituras que pueden soportar, asi que si costantemente estas escribiendola vas a terminar por dañarla

En lo personal usaria la idea del FPGA que te dieron arriba o usaria 2 micros unidos por medio de una memoria RAM, uno se dedicaria a hacer la adquisicion de datos y el otro a mandar la información por computadora via USB, si no es posible conseguir una RAM de doble puerto vas a tener que implementar un pin que avise al otro micro que se esta haciendo una escritura en la RAM para que no la accese y se corrompan los datos..
 
Arriba