Estoy planeando un proyecto con un Arduino que involucra el manejo de muchas solicitudes de una computadora host, y el estándar 115200 baudios máximos en serie no es suficiente. Me gustaría poder obtener 1Mbps full duplex si es posible, pero 400Kbps + full duplex sería aceptable. Estoy usando un Arduino Due, por lo que debería ser capaz de manejar velocidades de comunicación significativamente más altas.
¿Hay alguna manera de aumentar significativamente la velocidad en baudios en serie, o hay una segunda opción que pueda elegir en términos de interfaz con una computadora a velocidades más altas?
Respuestas:
Definitivamente es posible subir al rango de Mbps con un Arduino, especialmente con su Due. El monitor en serie solo admite baudios de hasta 115200, pero puede usar una ventana de terminal separada que le permite configurar sus baudios para cualquier cosa que desee.
Para un poco más de información, vea este hilo en el foro de Arduino.
En términos de configuración, en Arduino es tan fácil como
Serial.begin(1000000);
o hasta ese punto. Se trata de la configuración del dispositivo con el que desea comunicarse y de lo que puede manejar.fuente
Me gustaría escribir un firmware personalizado para el Atmega16u2 que está haciendo la interfaz USB. Ese chip puede hablar USB de alta velocidad (velocidad de señal de hasta 12 Mbit) y el puerto de salida SPI de ese chip está convenientemente disponible en el encabezado ICSP. Conéctelo a la entrada SPI del Arduino (también disponible en su encabezado ICSP) y puede ejecutar SPI a, creo, 4 Mbit / s (4 relojes de CPU por bit).
El Atmegas en el mega (16u2 y 128) puede ejecutar su puerto serie a hasta 2 Mbit / s. Si escribe firmware personalizado para el 16u2, también puede usar el USART serial asincrónico que ya está allí.
En ambos casos, es probable que pierda la capacidad de programación del puerto serie, por lo que deberá utilizar un programador independiente basado en USB.
El proyecto LUFA tiene muchos programas de muestra y bibliotecas útiles para hablar realmente USB en un chip Atmega. "libusb" es una biblioteca conveniente para hablar directamente con dispositivos USB, en lugar de tener que depender de la emulación en serie.
fuente
Hay algunos resultados que pueden ser útiles aquí .
fuente