GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Problème de communication USB et microcontrôleur ?

Je suis nouveau dans le monde Linux et j'utilise actuellement Ubuntu 12.04. Il s'exécute dans une partition Windows. J'ai développé un programme python qui lit les données série d'un microcontrôleur via le port USB. Tout fonctionnait bien jusqu'à il y a deux jours quand il a commencé à planter. En saisissant dmesg | grep tty dans la console, j'obtiens le résultat suivant :

[    0.000000] console [tty0] enabled
[   14.599394] cdc_acm 3-1:1.0: ttyACM0: USB ACM device
[  290.236065] cdc_acm 3-1:1.0: ttyACM0: USB ACM device
[ 1105.915191] cdc_acm 3-1:1.0: ttyACM0: USB ACM device

Chaque fois que je connecte et déconnecte l'USB, j'obtiens une nouvelle ligne avec les mêmes données. La seule différence était le temps. Est-ce exact ou ai-je un problème. Toute aide serait appréciée. Merci

Mise à jour :

Le problème venait du microcontrôleur. Il redémarrait chaque fois qu'il ne recevait pas de colis d'aucun capteur pendant un certain temps. Le microcontrôleur est un routeur sur un réseau de capteurs sans fil. Chaque fois que le microcontrôleur a redémarré, son port de connexion a été incrémenté, par exemple ttyACM0 à ttyACM1 . Lors de la connexion du contrôleur à un Raspberry PI, cela a cessé de se produire.

Réponse acceptée :

  1. Vérifiez l'ID du fournisseur USB, l'ID du produit et le numéro de série.

    $ dmesg | grep usb
    [...]
    [11427.635362] usb 2-1.2: new high-speed USB device number 8 using ehci-pci
    [11427.730823] usb 2-1.2: New USB device found, idVendor=04e8, idProduct=685e
    [11427.730830] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [11427.730834] usb 2-1.2: Product: SAMSUNG
    [11427.730838] usb 2-1.2: Manufacturer: Android
    [11427.730842] usb 2-1.2: SerialNumber: S610275b03f86
    [11427.742314] usb-storage 2-1.2:1.0: USB Mass Storage device detected
    [11427.742436] scsi8 : usb-storage 2-1.2:1.0
    [11427.786013] usbcore: registered new interface driver cdc_acm
    

    Ou udevadm info -a /dev/ttyUSB1 peut être plus complet.

  2. Créez un nouveau fichier de règles udev. Exemple avec des règles pour téléphone Android, Arduino, Bus pirate et un kit ARM.

    $ sudo nano /etc/udev/rules.d/99-my-usb-serial.rules
    SUBSYSTEM=="tty", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="685e", ATTRS{serial}=="S610275b03f86", SYMLINK+="android"
    SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A6008isP", SYMLINK+="arduino"
    SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A7004IXj", SYMLINK+="buspirate"
    SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTDIF46B", SYMLINK+="ttyUSB.ARM"
    

Références :

  • Noms persistants pour les périphériques USB-série
  • Démarrer avec BeagleBone et BeagleBone Black ou exactement mkudevrule.sh

Ubuntu
  1. Comment désactiver les ports USB, les lecteurs de CD-ROM et de disquette dans Ubuntu

  2. Comprendre la communication entre Pam et le démon compatible Pam ?

  3. Installer Ubuntu sur USB et démarrer à partir de Destop avec Uefi ?

  4. Edimax Ew-7811un USB sans fil - voit le réseau mais ne parvient pas à s'y connecter ?

  5. Linux USB :allumer et éteindre l'alimentation ?

Guide complet du triple démarrage de Windows, Lubuntu et Debian

Comment formater un disque dur, une clé USB et des cartes SD dans un système d'exploitation élémentaire / Ubuntu

Comment créer une clé USB multiboot sous Linux et Windows

Comment monter/démonter manuellement un périphérique USB sur Ubuntu 20.04 et 22.04

Problème de défilement et d'affichage (bug ?) dans Libreoffice 3.6 et supérieur ?

Clé USB - Vidée mais il n'y a pas d'espace libre (et pas d'espace utilisé ?!) dessus ?