Interfaz de computadora de alta velocidad con un Arduino

10

Estoy planeando un proyecto con un Arduino que involucra el manejo de muchas solicitudes desde una computadora host, y el estándar de baudios máximo de 115200 en serie no es suficiente. Me gustaría poder obtener dúplex completo de 1Mbps si es posible, pero dúplex completo de 400 Kbps + 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 una manera de aumentar significativamente la velocidad de transmisión en serie o hay una segunda opción que puedo utilizar para interactuar con una computadora a velocidades más altas?

    
pregunta Polynomial

3 respuestas

8

Definitivamente es posible levantarse en el 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 su baud a lo que desee.

Para obtener más información, consulte This Thread 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.

    
respondido por el Jay Greco
1

Me gustaría escribir un firmware personalizado para el Atmega16u2 que está haciendo la interfaz USB. Ese chip puede hablar USB a toda velocidad (hasta una velocidad de señal de 12 Mbit) y el puerto de salida SPI de ese chip está disponible de manera conveniente en el encabezado ICSP. Conéctelo a la entrada SPI del Arduino (también disponible en su encabezado ICSP) y puede ejecutar SPI a 4 Mbit / s (4 relojes de CPU por bit), creo.

Los Atmegas en el mega (16u2 y 128) pueden ejecutar su puerto serie a hasta 2 Mbit / s. Si escribe firmware personalizado para el 16u2, también puede usar el USART serie asíncrono que ya está allí.

En ambos casos, es probable que pierdas la capacidad de programación del puerto serie, por lo que tendrás que usar un programador independiente basado en USB.

El proyecto LUFA tiene muchos programas de ejemplo y bibliotecas útiles para realmente hablar de USB en un chip Atmega. "libusb" es una biblioteca conveniente para hablar directamente a dispositivos USB, en lugar de tener que depender de la emulación en serie.

    
respondido por el Jon Watte
0

Hay algunos resultados que pueden ser útiles aquí .

    
respondido por el Eric Gunnerson

Lea otras preguntas en las etiquetas