Forum: Mikrocontroller und Digitale Elektronik expandio-usb HID programmierung


von Jan (Gast)


Lesenswert?

Guten Tag zusammen!

Ich habe mir eine USB-I2C-Bruecke mit dem expandio-USB chip von 
www.hexwax.com gebaut um I2C slaves zu testen. Funktioniert soweit ganz 
gut, mit dem mitgelieferten Windows Konfigurationstool kann ich auch 
Daten zum I2C Bus vom PC aus schreiben und lesen. Jetzt wuerde ich das 
ganze gerne unter Linux probieren, betrete da aber Neuland und braeuchte 
von euch ein paar Denkanstoesse.
cat /proc/bus/usb/devices liefert folgendes:

T:  Bus=03 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  3 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  2
P:  Vendor=0b40 ProdID=0132 Rev= 0.04
S:  Manufacturer=expandIO-USB
S:  Product=Firmware Factory Ltd
S:  SerialNumber=No GUID
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
E:  Ad=01(O) Atr=03(Int.) MxPS=  64 Ivl=1ms
C:  #Ifs= 1 Cfg#= 2 Atr=80 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=03(HID  ) Sub=00 Prot=00 Driver=
E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
E:  Ad=01(O) Atr=03(Int.) MxPS=  64 Ivl=1ms

Der Chip wurde also erkannt. Nur wie mache ich jetzt weiter? Die Befehle 
an den Chip werden byte-weise geschrieben, also etwa sowas wie 'A0 00 A2 
02 00 00'. Koennte ich sowas einfach in ein device schreiben wie bei der 
seriellen Schnittstelle (tty*)?
Wie gesagt, stehe am Anfang, habe natuerlich schon gegoogelt aber nichts 
gefunden was mir einen brauchbaren Einstieg ermoeglicht.

Vielen Dank fuer eure Hilfe!

Jan

von guest (Gast)


Lesenswert?

Wenn ich Dich richtig verstehe, dann liegt Dein Problem auf PC-Seite? 
Versuchs mal mit LIBUSB.

Gruß

von Guido Körber (Gast)


Lesenswert?

Generic HID brauchen unter Linux einen eigenen Treiber. Der 
Protokollstack von Linux versucht auch Generic HID Device zu übernehmen 
und deren Daten in Eingangsrichtung zu interpretieren, was natürlich 
nicht so gut klappt.

Desshalb haben wir für unsere IO-Warrior schon seit Jahren einen Treiber 
in der Standard-Distribution von Linux.

von Jan (Gast)


Lesenswert?

Hallo zusammen!

D.h. ich muss einen generic HID Treiber fuer mein expandIO schreiben? Da 
hab ich mir wohl etwas viel vorgenommen :-( Was fertiges bzw. eine 
modifizierbare Vorlage gibt es da nicht, oder?

Danke und Gruss,

Jan

von Guido Körber (Gast)


Lesenswert?

LibUSB, oder in den Linux-Sourcen den Treiber für die IO-Warrior 
angucken.

Oder den hier nehmen, der hat Treiber und API für Linux und ist 
handlich:
http://www.codemercs.com/index.php?id=256&L=0

Beispielcode für Linux haben wir allerdings nicht so üppig, aber das API 
ist identisch mit dem für Windows und da sind etliche Beispiele dabei.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.