GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Problema de comunicación USB y microcontrolador?

Soy nuevo en el mundo de Linux y actualmente uso Ubuntu 12.04. Se ejecuta en una partición de Windows. Desarrollé un programa de python que lee datos en serie desde un microcontrolador a través del puerto USB. Todo funcionaba bien hasta hace dos días cuando comenzó a fallar. Al ingresar dmesg | grep tty en la consola obtengo el siguiente resultado:

[    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

Cada vez que conecto y desconecto el USB me sale una nueva línea con los mismos datos. La única diferencia ha sido el tiempo. Es esto correcto o tengo un problema. Cualquier ayuda sería apreciada. Gracias

Actualización:

El problema estaba en el microcontrolador. Se reiniciaba cada vez que no recibía un paquete de ningún sensor durante un período de tiempo. El microcontrolador es un enrutador en una red de sensores inalámbricos. Cada vez que el microcontrolador se reiniciaba, su puerto de conexión se incrementaba, por ejemplo, ttyACM0 a ttyACM1 . Al conectar el controlador a una Raspberry PI, esto dejó de suceder.

Respuesta aceptada:

  1. Verifique la identificación del proveedor USB, la identificación del producto y el número de serie.

    $ 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
    

    O udevadm info -a /dev/ttyUSB1 puede ser más completo.

  2. Cree un nuevo archivo de reglas de udev. Ejemplo con reglas para teléfono Android, Arduino, Bus pirata y 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"
    

Referencias:

  • Nombres persistentes para dispositivos serie USB
  • Primeros pasos con BeagleBone y BeagleBone Black o exactamente mkudevrule.sh

Ubuntu
  1. Comunicación entre procesos en Linux:sockets y señales

  2. ¿Comprender la comunicación entre Pam y Pam-aware Daemon?

  3. ¿Instalar Ubuntu en USB y arrancar desde Destop con Uefi?

  4. Las mejores aplicaciones de mensajería y comunicación para Ubuntu

  5. Problema con Mint 18 y VMware Tools

Guía completa para Triple Boot Windows, Lubuntu y Debian

Cómo formatear el disco duro, la unidad flash USB y las tarjetas SD en el sistema operativo elemental / Ubuntu

Cómo hacer un USB de arranque múltiple en Linux y Windows

Cómo montar/desmontar manualmente un dispositivo USB en Ubuntu 20.04 y 22.04

Problema de desplazamiento y visualización (¿error?) en Libreoffice 3.6 y superior?

Unidad flash USB:¿vaciada pero no hay espacio libre (¿y no hay espacio usado?) en ella?