Problema de comunicação USB e microcontrolador

1

Eu sou novo no mundo Linux e atualmente estou usando o Ubuntu 12.04. Está sendo executado em uma partição do Windows. Eu desenvolvi um programa python que lê dados seriais de um micro-controlador através da porta USB. Tudo estava funcionando bem até dois dias atrás, quando começou a cair. Ao inserir dmesg | grep tty no console, recebo a seguinte saída:

[    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

Toda vez que eu conecto e desconecto o USB eu recebo uma nova linha com os mesmos dados. A única diferença foi a hora. Está certo ou tenho um problema? Qualquer ajuda seria apreciada. Obrigado

Atualização:

O problema foi com o microcontrolador. Ele reinicializou toda vez que não recebeu um pacote de nenhum sensor por um período de tempo. O microcontrolador é um roteador em uma rede de sensores sem fio. Toda vez que o micro-controlador reinicializou, sua porta de conexão foi incrementada, por exemplo, ttyACM0 para ttyACM1 . Ao conectar o controlador a um PI de framboesa, isso parou de acontecer.

    
por user3053086 07.02.2014 / 16:42

1 resposta

0
  1. Verifique o ID do fornecedor USB, o ID do produto e o número 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 pode ser mais completo.

  2. Crie um novo arquivo de regras do udev. Exemplo com regras para telefone Android, Arduino, pirata Bus e um 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"
    

Referências:

por user.dz 16.03.2014 / 15:47