¿La forma más rentable de implementar un host USB de máxima velocidad? [cerrado]

0

Necesito un dispositivo que pueda actuar como un host USB para enviar varios fragmentos de datos binarios estáticos periódicamente a un periférico serie USB de tipo FT232 (RS-232-ish UART).

Estaba pensando que tal vez esté usando un microcontrolador que admita un host USB y acceda a un flash serie para los datos binarios.

Será una placa personalizada (en comparación con los módulos) y necesito mantener el recuento de partes lo más bajo posible.

¿Me estoy acercando a esto de la manera correcta? ¿Alguna recomendación que se ajuste a estos requisitos? Me temo que no estoy seguro de por dónde empezar en un proyecto como este ...

    
pregunta Sam Washburn

2 respuestas

1

Le sugiero que la forma más sencilla de obtener las capacidades que necesita es usar la Raspberry Pi Zero. Esto admitirá sus requisitos de USB y Raspbian descubrirá automáticamente su USB \ serial. Soportará un par de botones si los necesitas. Existe una versión Lite de Raspian que tiene un poco más de 300 MB.
También tiene un montón de espacio para sus archivos de datos en la tarjeta SD, y un entorno de desarrollo 'C' o Python fácil. Lo mejor de todo es que cuesta $ 5.00 ... quién podría superar eso ...

Funcionará desde una fuente de alimentación simple (cable de alimentación estilo USB) 5 V @ 2 A

Suponiendo que tiene un protocolo en serie simple, puede desarrollar el protocolo de intercambio de datos y el protocolo de datos en el 'Pi con una pantalla y teclado o mediante una conexión ssh remota, o simplemente puede conectar su dispositivo a una PC y desarrollar un script en Python para hacer tu tarea A 'Pi tarda unos 10 segundos en arrancar (casi lo mismo que un tiempo de espera del cargador de arranque Arduino), lo que supongo que puede ser viable.

    
respondido por el Jack Creasey
0

Después de todas las aclaraciones, la pregunta OP se reduce a la siguiente solicitud formal: cómo construir un host integrado FS USB. Los hosts integrados USB pueden restringirse a qué clase de periféricos admitir. Esta solicitud es compatible con un único convertidor de USB a UART de estilo FT-232, que es una restricción válida.

La solución, como es habitual, está llena de compensaciones, según la disponibilidad de las herramientas de software y las habilidades del implementador. Incluso a máxima velocidad, la solución requeriría un hardware USB especializado (también conocido como USB PHY), que debe estar integrado en la MCU, y puede ser externo a través de un bus UTMI o ULPI. La interfaz USB en serie requiere "masajes" de datos especiales (codificación NRZI, relleno de bits y cálculos de CRC), y protocolos especiales de intercambio de manos (como IN-DATA-ACK), además de transmisión periódica continua de marcos USB. Incluso a la velocidad de 12 mbps, esto debe hacerse a nivel de hardware. Afortunadamente, muchas MCU comerciales ofrecen la funcionalidad de host USB, generalmente etiquetada erróneamente como "USB OTG".

Una solución es usar una MCU completa basada en ARM (como ciertos modelos de Raspberry Pi basada en Broadcomm) que debe cargarse con un sistema operativo estilo Linux, que tiene casi total compatibilidad plug-and-play para la mayoría de USB periféricos.

La otra solución es utilizar una MCU más pequeña con soporte "USB OTG", e implementar la funcionalidad de host limitada (¡dispositivo único!) con firmware integrado personalizado. Compañías como Texas Instruments, Cypress, Microchip, NXP (y estoy seguro de que muchas más) ofrecen MCU más pequeñas con capacidad "USB OTG", principalmente para tasa de FS (máxima velocidad). Desafortunadamente, la funcionalidad del host USB generalmente (por alguna vaga razón) no se encuentra en la parte superior de los ejemplos de aplicaciones ofrecidos, por lo que el esfuerzo por implementar el OTG personalizado podría exceder la solución más universal y validada como el enfoque Linux / Android en toda regla. p>

Los comentarios con enlaces a ejemplos específicos de firmware "OTG host" son definitivamente bienvenidos.

    
respondido por el Ale..chenski

Lea otras preguntas en las etiquetas