Aquí está el problema fundamental que tengo: estoy mirando una placa de desarrollo para, digamos, un microprocesador o DSP de TI / AD / Microchip. Esto es mucho antes de un diseño de producto completo; Estamos hablando de trabajo de prueba de concepto aquí. Quiero enviar datos desde una PC para que sean procesados por mi firmware, o hacer que mi firmware envíe datos a mi PC. Y quiero que la tasa sea del orden de 1-10MB / s.
Hace más de 15 años, 1-10MB / s habría sido bastante nicho. kB / s habría sido más habitual, y la placa de desarrollo tendría un conector DB9. Podría haber conectado un cable serie entre la placa dev y mi PC, tal vez con un convertidor de USB a serie, y leer y escribir en COMX
o /dev/ttySX
.
Sin embargo, este esquema tiene una serie de limitaciones que ahora están empezando a aparecer:
- Quiero MB / s, no kB / s.
- La tasa máxima absoluta de UART que un dispositivo de 100MHz podría administrar es de solo 0.7 MB / s. Por otro lado, SPI permite hasta 3-4 MB / s.
- Es increíblemente raro que las PC vengan con puertos serie ahora, por lo que se necesitan adaptadores especializados para interactuar con una PC, por ejemplo. Cable USB a serie.
Pero estoy perplejo por lo que podría usar para reemplazar el antiguo esquema serial. El contexto principal de esta pregunta es el envío de datos de depuración serializados entre las placas de desarrollo del proveedor y una PC antes de que se finalice el diseño, por lo que cualquier cosa que requiera dispositivos secundarios, por ejemplo. Bluetooth no es super útil. Los µPs con los que trabajo normalmente están en el ámbito de MSP430 de TI, PIC32M * de Microchip y DSP de bajo consumo como TI C55x o C674. Sus tableros de desarrollo normalmente vienen con encabezados conectados a periféricos SPI / I2C / UART.
Ethernet requeriría la implementación completa de una pila de red, lo que no es realmente práctico en los DSP o µP restringidos con los que trabajo a menudo. Además, la mayoría de las PC solo tienen un puerto Ethernet, si es que lo tienen, por lo que no podrá usarlo para redes cableadas.
El USB conectado a tierra requiere obtener un ID de proveedor de un tercero, y reinventar todo tipo de ruedas en el nivel del controlador y del software solo para obtener datos de un dispositivo a otro.
Idealmente, me gustaría poder volcar bytes en un registro periférico en mi µP y vaciarlo con Python en la PC o viceversa, usar un cable que la mayoría de los departamentos de TI tendrían, y obtener 1-10 MB / s. Un bono sería no tener que sondear todos los puertos disponibles de cualquier tipo para encontrar el dispositivo en una PC. ¿Es esto posible?