Diferença entre / dev / ttyACM0 e / dev / ttyS0 (portas IDE do Arduino no Linux)

10

Eu uso o IDE do Arduino para fazer upload de esboços para o meu Arduino Uno. Meu sistema operacional é Linux Ubuntu 14.04 LTS. O IDE do Arduino possui duas portas por padrão para comunicação com o Arduino Uno:

/dev/ttyACM0
/dev/ttyS0
  1. Qual é a diferença entre essas duas portas?
  2. O que significa "ACM0" e "S0"?
  3. Existem arquivos de configuração em algum lugar da estrutura de pastas do SO que descrevem os parâmetros dessas portas?

Sei que, quando seleciono /dev/ttyACM0, posso enviar dados para o meu Arduino Uno. No entanto, ele não funciona quando eu seleciono /dev/ttyS0.

Eu só quero entender melhor o que essas portas são exatamente.

phodor
fonte

Respostas:

6

/dev/ttyACM0é um dispositivo de comunicação USB (CDC) do subtipo "modelo de controle abstrato" (ACM). Isso é o que o Arduino é.

/dev/ttyS0 é uma porta serial de hardware - o conector D (normalmente) de 9 pinos na parte traseira do computador.

Se você deseja usar /dev/ttyS0(por que você faria isso ?!), precisará de um cabo especial que converta os sinais de tensão RS-232 do conector D de 9 pinos nos sinais de nível TTL corretos para o Ardiuno e conecte-o aos pinos certos no quadro.

Majenko
fonte
-1

Algumas linguagens de alto nível (por exemplo, matlab) tratam todas as portas seriais como o seletor / dev / ttyS #. Para interagir com um Arduino com o MATLAB, você deve renomear / dev / ttyACM0 como / dev / ttyS #.

Isso também pode ser uma opção no IDE do Arduino, e é por isso que essas opções existem.

Austin Downey
fonte
11
por que você o renomearia quando um link simbólico poderia fazer o truque?
PypeBros