Różnica między / dev / ttyACM0 i / dev / ttyS0 (porty Arduino IDE w systemie Linux)

10

Używam Arduino IDE do przesyłania szkiców do mojego Arduino Uno. Mój system operacyjny to Linux Ubuntu 14.04 LTS. Arduino IDE ma domyślnie dwa porty do komunikacji z Arduino Uno:

/dev/ttyACM0
/dev/ttyS0
  1. Jaka jest różnica między tymi dwoma portami?
  2. Co oznaczają „ACM0” i „S0”?
  3. Czy są jakieś pliki konfiguracyjne gdzieś w strukturze folderów systemu operacyjnego, które opisują parametry tych portów?

Wiem, że po wybraniu /dev/ttyACM0mogę wysyłać dane do mojego Arduino Uno. Jednak nie działa po wybraniu /dev/ttyS0.

Chcę tylko lepiej zrozumieć, czym dokładnie są te porty.

phodor
źródło

Odpowiedzi:

6

/dev/ttyACM0jest urządzeniem komunikacyjnym USB (CDC) podtypu „abstrakcyjny model sterowania” (ACM). Taki właśnie jest Arduino.

/dev/ttyS0 to sprzętowy port szeregowy - (zwykle) 9-stykowe złącze D z tyłu komputera.

Jeśli chcesz użyć /dev/ttyS0(dlaczego ?!), potrzebujesz specjalnego kabla, który konwertuje sygnały napięciowe RS-232 z 9-stykowego złącza D na odpowiednie sygnały poziomu TTL dla Ardiuno i podłącz je do odpowiednich styków na pokładzie.

Majenko
źródło
-1

Niektóre języki wysokiego poziomu (np. Matlab) traktują wszystkie porty szeregowe jak selektor / dev / ttyS #. Aby połączyć się z Arduino z MATLAB, musisz zmienić nazwę / dev / ttyACM0 na / dev / ttyS #.

Może to być również opcja w Arduino IDE i dlatego te opcje istnieją.

Austin Downey
źródło
1
dlaczego miałbyś zmienić jego nazwę, skoro dowiązanie symboliczne może załatwić sprawę?
PypeBros,