Estoy trabajando en un proyecto que requiere comunicación SPI de baja latencia (< 1 ms) entre una computadora de escritorio y un microcontrolador ESP32. El tamaño del paquete de cada transacción es entre 15 y 30 bytes full-duplex. Mi objetivo es enviar un paquete cada milisegundo.
Actualmente estoy usando el panel de conexiones FT232H USB2.0 de FTDI, que requiere al menos 3-4 ms para completar una transacción de dúplex completo. Supongo que esto se debe a los tiempos de ida y vuelta de USB convencionales, que, por lo que sé, rondan los 2 ms.
De manera ideal, me gustaría encontrar una placa, con una API de C ++ (me gustó mucho el FT232H para eso), que proporciona una conexión SPI de baja latencia a la MCU. Como no soy un programador muy capaz, no quiero escribir firmware para las placas (como, por ejemplo, es necesario para la placa Cypress Fx3 USB3.0). Aparte de eso, no tengo una preferencia sobre qué interfaz usar, por ejemplo, USB overclockeado, Ethernet, PCI / PCIe, etc.
He buscado por un tiempo y hasta ahora no he encontrado una solución específica para este problema. ¿Hay soluciones probadas que hacen esto posible?
¡Gracias por tu ayuda!
Como aclaración solicitada para la solicitud:
La MCU ejecuta un regulador de circuito cerrado, y la computadora proporciona valores establecidos para este regulador. La computadora envía estos valores a través de SPI a la MCU.
- Quiero mantener las latencias en esta comunicación lo más bajas posible, idealmente alrededor de 1 ms. Probablemente también podría vivir con 2-3ms, si no hay una forma viable de obtener más bajo que esto.
- Más importante aún, quiero enviar instrucciones a alrededor de 1 khz, por ejemplo, rampa los valores establecidos.
- Me gustaría recibir los valores de MCU medidos para fines de diagnóstico. Esta es la razón por la que uso la transacción de dúplex completo ahora.