USB csatlakoztatási probléma (giroszkóp)

Fórumok

Üdv!
A problémám a következõ:

Van egy USB-n csatlakozó hardverem (giroszkóp) ami adatokat küld a linuxon futó (c-ben írt) programnak. A programban biztosan nincs hiba. (A giroszkópot gyártó cég küldte)

A program futásának kezdetén meg kell adni az eszköz nevét (elérési útvonalát). példaként oda is írja, hogy /dev/ttyS0 vagy /dev/ttyUSB0. A hardvert USB-n és COM porton keresztül is lehet csatlakoztatni, de nekem jobb lenne az USB. A gond az, hogy a /dev/ttyUSB0-ra azt írja, hogy nem megnyitható. Meg is néztem a fájlt, létezik, de nem megnyitható. A /dev/ttyS0 viszont megnyitható, de nem oda van csatlakoztatva az eszköz, ezért az nem jó.
usbview programmal meg is néztem a hardvert, és látja: ki is írja a gyártót és az adatait, de azt nem, hogy mi az elérési útvonala. Tudtok adni vmi ötletet, hogy hogyan lehetne csatlakoztani a hardvert vagy megtudni az elérési útvonalát?

Üdv:
Péter

Hozzászólások

Jogok rendben vannak? Lehet valami jog nincs enegedélyezve.

Én usb-s com portot használok, valószinüleg ez is egy ilyet tartalamaz.

Emlékeim szerint nem tudtam megnyitni a soros port-ot vagyis a fájt adtam magamnak jogot hozzá. Mostmár megtudom.

Nekekm tökéletesen működik az USB-s soros port.

Húzd ki, dugd vissza és a dmesg-ből az utolsó vonatkozó sorokat copyzd be.

Egy másik ötlet: gyári vagy saját kernelt használsz? Rendesen benne van az USB alrendszer? Gondolok most az USB-serial részre.

Ja meg ilyet is copyzz be: cat /proc/bus/usb/devices

Ha ezek megvannak, talán könnyebb lesz kideríteni.

Hiba feltárásához még ajánlom az:
/sbin/lsusb
/sbin/lsusb -v -s [[bus]:][devnum]
és egyéb kapcsolós megoldásokat, eléggé sok infót ad az eszközről. Ha már itt sem látszik hogy milyen class akkor nem is lesz soros port.

Hogy lásd miröl is beszélek:

Bus 002 Device 003: ID 0557:2008 ATEN International Co., Ltd UC-232A Serial Port [pl2303]
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0557 ATEN International Co., Ltd
idProduct 0x2008 UC-232A Serial Port [pl2303]
bcdDevice 3.00
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 39
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x000a 1x 10 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0

Mindenkinek köszönöm a segítséget!
A probléma megoldódott, végülis nem USB-n keresztül, hanem COM porton sikerült csatlakoztatni. (/dev/ttyS0)

Viszont találtam leírást az USB-s csatlakoztatásra is. A gond az volt, hogy az én 2.4-es kernelemhez kellett volna egy plusz modul. 2.6-os kerneltől állítólag működik automatikusan

Nem akartam új topikot nyitni...
Nem teljesen az alaptéma szerinti problémával azonos gondom van.

Van egy kütyüm, amit USB-sen kell csatlakoztatni, van a
kommunikációhoz 2-3 könyvtár, a mintaprogramok lefordulnak
szépen. Látszólag történik is valami, valójában a programok
nem kommunikálnak a kütyüvel.

2.4.x-es kernel, hotplug megy, az lsusb ki is listázza a
hardvert. Azt gyanítom, hugy az udev körül van a gáz.
Hogyan is kell udev eszközöket csinálni 2.4.x (slack 10.2)
alatt?

Mi a különbség a hotplugin út és az udev út között?

(bocs, ha lámául kérdeztem)

> Sol omnibus lucet.

Ha a cucc nem CDC class-ben van, szóval nem szabványos sorosportot emulál USB-n keresztül akkor a két problémának köze sincs egymáshoz.
Először ezt kellene kideritened hogy mi is az, mármint a gép szempontjából. Fentebb irtam parancsot ami kilistázza a cucc tulajdonságait, abból rá lehet jönni. Ha sorosport lenne belőle, akkor a megfelelő kernel vagy kernelmodul kell hozzá, ezt nem tudom mert nekem mind uj kernel van és megy rajta egyből, semmit nem kellett soha állítanom, betöltenem.

Szóval először deritsd ki hogy mégis hogy akar kommunikálni.

lsusb -vv kimenete az adott eszközre vonatkozóan:

Bus 004 Device 007: ID 3923:717a National Instruments Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x3923 National Instruments Corp.
idProduct 0x717a
bcdDevice 1.00
iManufacturer 1 National Instruments
iProduct 2 NI USB-6008
iSerial 3 012D990A
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 46
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 4
bInterfaceClass 0 (Defined at Interface level)
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 bytes 64 once
bInterval 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 bytes 64 once
bInterval 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 bytes 64 once
bInterval 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 bytes 64 once
bInterval 5

> Sol omnibus lucet.