Ich plane ein Projekt mit einem Arduino, bei dem viele Anforderungen von einem Host-Computer verarbeitet werden, und der standardmäßige maximale Baud-Wert von 115200 gegenüber seriell reicht nicht aus. Ich möchte in der Lage sein, wenn möglich 1 Mbit / s Vollduplex zu erhalten, aber 400 Kbit / s + Vollduplex wären akzeptabel. Ich verwende ein Arduino Due, daher sollte es in der Lage sein, deutlich höhere Kommunikationsgeschwindigkeiten zu bewältigen.
Gibt es eine Möglichkeit, die Baudrate gegenüber der seriellen zu erhöhen, oder gibt es eine zweite Option, die ich für die Anbindung an einen Computer mit höheren Geschwindigkeiten wählen kann?
Antworten:
Es ist definitiv möglich, mit einem Arduino im Mbit / s-Bereich aufzustehen, besonders mit Ihrem Due. Der serielle Monitor unterstützt nur Bauds bis 115200, Sie können jedoch ein separates Terminalfenster verwenden, in dem Sie Ihren Baud auf einen beliebigen Wert einstellen können.
Weitere Informationen finden Sie unter Dieser Thread im Arduino-Forum.
In Bezug auf das Setup ist es auf dem Arduino so einfach wie
Serial.begin(1000000);
oder in diesem Ausmaß. Es geht um die Einrichtung des Geräts, mit dem Sie kommunizieren möchten, und darum, wie es damit umgehen kann.quelle
Ich würde versuchen, eine benutzerdefinierte Firmware für den Atmega16u2 zu schreiben, der die USB-Schnittstelle übernimmt. Dieser Chip kann USB mit voller Geschwindigkeit (bis zu 12 Mbit Signalgeschwindigkeit) sprechen, und der SPI-Ausgangsanschluss dieses Chips ist bequem über den ICSP-Header verfügbar. Schließen Sie das an den SPI-Eingang des Arduino an (auch im ICSP-Header verfügbar), und Sie können SPI mit 4 Mbit / s (4 CPU-Takte pro Bit) ausführen.
Die Atmegas auf dem Mega (16u2 und 128) können ihre serielle Schnittstelle mit bis zu 2 Mbit / s betreiben. Wenn Sie eine benutzerdefinierte Firmware für den 16u2 schreiben, können Sie auch den bereits vorhandenen asynchronen seriellen USART verwenden.
In beiden Fällen verlieren Sie wahrscheinlich die Programmierbarkeit der seriellen Schnittstelle, sodass Sie einen USB-basierten separaten Programmierer verwenden müssen.
Das LUFA-Projekt enthält viele Beispielprogramme und hilfreiche Bibliotheken zum tatsächlichen Sprechen von USB auf einem Atmega-Chip. "libusb" ist eine praktische Bibliothek, mit der Sie direkt mit USB-Geräten kommunizieren können, anstatt sich auf die serielle Emulation verlassen zu müssen.
quelle
Es gibt einige Ergebnisse , die von Nutzen sein können , hier .
quelle