Diferencia entre / dev / ttyACM0 y / dev / ttyS0 (puertos Arduino IDE en Linux)

10

Utilizo el IDE de Arduino para cargar bocetos en mi Arduino Uno. Mi sistema operativo es Linux Ubuntu 14.04 LTS. El IDE Arduino tiene dos puertos por defecto para la comunicación con el Arduino Uno:

/dev/ttyACM0
/dev/ttyS0
  1. ¿Cuál es la diferencia entre estos dos puertos?
  2. ¿Qué significa "ACM0" y "S0"?
  3. ¿Hay archivos de configuración en algún lugar de la estructura de carpetas del sistema operativo que describan los parámetros de estos puertos?

Sé que cuando selecciono /dev/ttyACM0, puedo enviar datos a mi Arduino Uno. Sin embargo, no funciona cuando selecciono /dev/ttyS0.

Solo quiero entender mejor cuáles son estos puertos exactamente.

Phodor
fuente

Respuestas:

6

/dev/ttyACM0es un dispositivo de comunicación USB (CDC) de subtipo "modelo de control abstracto" (ACM). Eso es lo que es el Arduino.

/dev/ttyS0 es un puerto serie de hardware: el (normalmente) conector D de 9 pines en la parte posterior de su computadora.

Si desea usar /dev/ttyS0(¡¿por qué lo haría ?!) necesitará un cable especial que convierta las señales de voltaje RS-232 del conector D de 9 pines en las señales de nivel TTL correctas para el Ardiuno y conéctelo a los pines correctos a bordo.

Majenko
fuente
-1

Algunos lenguajes de alto nivel (por ejemplo, matlab) tratan todos los puertos seriales como el selector / dev / ttyS #. Para interactuar con un Arduino con MATLAB, debe cambiar el nombre de / dev / ttyACM0 como / dev / ttyS #.

Esto también puede ser una opción en el IDE de Arduino, y es por eso que existen esas opciones.

Austin Downey
fuente
1
¿por qué lo cambiarías de nombre cuando un enlace simbólico podría hacer el truco?
PypeBros