GNU/Linux >> Znalost Linux >  >> Ubuntu

Problém s komunikací USB a mikrokontroléru?

Jsem ve světě Linuxu nový a momentálně používám Ubuntu 12.04. Běží v oddílu Windows. Vyvinul jsem program python, který načítá sériová data z mikrokontroléru přes USB port. Všechno fungovalo dobře až do dvou dnů, kdy to začalo havarovat. Při zadání dmesg | grep tty do konzole dostanu následující výstup:

[    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

Pokaždé, když připojím a odpojím USB, dostanu novou linku se stejnými daty. Rozdíl byl pouze v čase. Je to správně nebo mám problém. Jakákoli pomoc by byla oceněna. Díky

Aktualizace:

Problém byl s mikrokontrolérem. Restartoval se pokaždé, když po určitou dobu neobdržel balíček od žádných senzorů. Mikrokontrolér je router v bezdrátové senzorové síti. Pokaždé, když se mikrořadič restartoval, jeho připojovací port byl zvýšen, např. ttyACM0 na ttyACM1 . Po připojení ovladače k ​​Raspberry PI se to přestalo dít.

Přijatá odpověď:

  1. Zkontrolujte ID dodavatele USB, ID produktu a sériové číslo.

    $ 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
    

    Nebo udevadm info -a /dev/ttyUSB1 může být úplnější.

  2. Vytvořte nový soubor pravidel udev. Příklad s pravidly pro telefon Android, Arduino, Bus pirát a sadu 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"
    

Reference:

  • Trvalé názvy pro sériová zařízení usb
  • Začínáme s BeagleBone &BeagleBone Black nebo přesně mkudevrule.sh

Ubuntu
  1. Meziprocesová komunikace v Linuxu:Sokety a signály

  2. Jak vypálit obraz ISO na DVD a USB pomocí dd

  3. Nejlepší 4 bezplatný a otevřený týmový komunikační software

  1. Edimax Ew-7811un USB Wireless – vidí síť, ale nedokáže se k ní připojit?

  2. Nainstalovat Grub na USB a udělat z něj záchranný disk?

  3. Problém s Mint 18 a VMware Tools

  1. Jak zakázat porty USB, CD-ROM a disketové jednotky v Ubuntu

  2. Rozumíte komunikaci mezi Pam a démonem vědomým si Pam?

  3. Instalace Ubuntu na USB a spouštění z Destop pomocí Uefi?