¿Qué clase de USB debo implementar?

2

Estoy jugando con STM32F4 Discovery board y libopencm3 . Quiero enviar los datos adquiridos de los canales ADC a través de usb y mostrar algunos gráficos en la computadora. Después de investigar un poco sobre los códigos de clase USB, estoy un poco confundido: ¿cuál debería elegir para mi aplicación? Al principio pensé que el USB-CDC es el camino a seguir, ya que es más fácil de implementar pero no creo que sea la solución óptima.

    
pregunta Ashton H.

1 respuesta

3

La clase CDC USB es fácil de implementar y usar, ya que en el lado de la PC crea un puerto COM virtual. Puede probar fácilmente la interfaz con un programa como RealTerm , que puede mostrar datos ASCII o binarios. Necesitará escribir un programa para capturar los datos, convertirlos a ASCII y guardarlos en un archivo para ingresar a un programa de hoja de cálculo como Excel para hacer el trazado.

El único gotcha es el número de puerto COM que se asigna, por lo general no se puede predecir de antemano, por lo que debe tener algún tipo de archivo de configuración que especifique cuál usar (una vez que el sistema elige un puerto COM para el dispositivo USB , debe seguir utilizando el mismo después de eso).

No menciona las tasas de datos que necesita admitir, ni la duración de la muestra. A 115K baudios, puede enviar una muestra de ADC (12 bits, expandida a 16) en poco menos de 175 µS, o aproximadamente 5000 kHz. Supongo que necesitas algo más rápido que eso. Ya que tiene 192K de RAM disponibles, puede almacenar hasta 90,000 o más muestras. A 44.1 kHz, eso es un poco más de dos segundos.

Si va a muestrear primero y luego enviar, puede encontrar la clase HID aún más fácil de usar. Puede presentarse como un teclado virtual, por lo que no hay software para escribir en el lado de la PC. Puede abrir un programa como Excel, y mientras el firmware en el STM32F4 esté enviando los datos como caracteres ASCII seguidos de un avance de línea / carro para cada muestra, cada línea se ingresará como una fila adicional en la hoja de cálculo, lista graficar.

    
respondido por el tcrosley

Lea otras preguntas en las etiquetas