Différence entre / dev / ttyACM0 et / dev / ttyS0 (ports IDE Arduino sous Linux)

10

J'utilise l'IDE Arduino pour télécharger des croquis sur mon Arduino Uno. Mon système d'exploitation est Linux Ubuntu 14.04 LTS. L'Arduino IDE possède deux ports par défaut pour la communication avec l'Arduino Uno:

/dev/ttyACM0
/dev/ttyS0
  1. Quelle est la différence entre ces deux ports?
  2. Que signifient "ACM0" et "S0"?
  3. Existe-t-il des fichiers de configuration quelque part dans la structure de dossiers du système d'exploitation qui décrivent les paramètres de ces ports?

Je sais que lorsque je sélectionne /dev/ttyACM0, je peux envoyer des données à mon Arduino Uno. Cependant, cela ne fonctionne pas lorsque je sélectionne /dev/ttyS0.

Je veux juste mieux comprendre ce que sont exactement ces ports.

phodor
la source

Réponses:

6

/dev/ttyACM0est un dispositif de communication USB (CDC) de sous-type "modèle de contrôle abstrait" (ACM). C'est ce qu'est l'Arduino.

/dev/ttyS0 est un port série matériel - le connecteur D à 9 broches (généralement) à l'arrière de votre ordinateur.

Si vous souhaitez utiliser /dev/ttyS0(pourquoi le feriez-vous?!), Vous aurez besoin d'un câble spécial qui convertit les signaux de tension RS-232 du connecteur D à 9 broches en signaux de niveau TTL appropriés pour l'Ardiuno et les câbler aux bonnes broches sur le tableau.

Majenko
la source
-1

Certains langages de haut niveau (par exemple matlab) traitent tous les ports série comme le sélecteur / dev / ttyS #. Pour interfacer avec un Arduino avec MATLAB, vous devez renommer / dev / ttyACM0 en / dev / ttyS #.

Cela peut également être une option dans l'IDE Arduino, et c'est pourquoi ces options existent.

Austin Downey
la source
1
pourquoi le renommeriez-vous quand un lien symbolique pourrait faire l'affaire?
PypeBros