Unterschied zwischen / dev / ttyACM0 und / dev / ttyS0 (Arduino IDE-Ports unter Linux)

10

Ich verwende die Arduino IDE, um Skizzen auf mein Arduino Uno hochzuladen. Mein Betriebssystem ist Linux Ubuntu 14.04 LTS. Die Arduino IDE verfügt standardmäßig über zwei Ports für die Kommunikation mit dem Arduino Uno:

/dev/ttyACM0
/dev/ttyS0
  1. Was ist der Unterschied zwischen diesen beiden Ports?
  2. Was bedeuten "ACM0" und "S0"?
  3. Gibt es irgendwo in der Ordnerstruktur des Betriebssystems Konfigurationsdateien, die die Parameter dieser Ports beschreiben?

Ich weiß, dass ich bei Auswahl /dev/ttyACM0Daten an mein Arduino Uno senden kann. Es funktioniert jedoch nicht, wenn ich auswähle /dev/ttyS0.

Ich möchte nur besser verstehen, was diese Ports genau sind.

Phodor
quelle

Antworten:

6

/dev/ttyACM0ist ein USB- Kommunikationsgerät (CDC) vom Subtyp "Abstract Control Model" (ACM). Das ist der Arduino.

/dev/ttyS0 ist eine serielle Hardware-Schnittstelle - der (normalerweise) 9-polige D-Anschluss auf der Rückseite Ihres Computers.

Wenn Sie verwenden möchten /dev/ttyS0(warum sollten Sie?!), Benötigen Sie ein spezielles Kabel, das die RS-232-Spannungssignale vom 9-poligen D-Stecker in die richtigen TTL-Pegelsignale für den Ardiuno umwandelt und an die richtigen Pins anschließt auf der Tafel.

Majenko
quelle
-1

Einige Hochsprachen (z. B. matlab) behandeln alle seriellen Schnittstellen als / dev / ttyS # -Selektor. Um eine Schnittstelle zu einem Arduino mit MATLAB herzustellen, müssen Sie / dev / ttyACM0 in / dev / ttyS # umbenennen.

Dies kann auch eine Option in der Arduino IDE sein, weshalb diese Optionen vorhanden sind.

Austin Downey
quelle
1
Warum würden Sie es umbenennen, wenn ein Symlink den Trick machen könnte?
PypeBros