MCP2221 und HID

Gast #4824679
Lesenswert?

Wie kann ich den MCP2221 unter Linux über HID ansteuern ?

Mein MCP2221 wir als "/dev/hidraw3" erkannt.

Ich kann die Device mit
1
int fd = open("/dev/hidraw3", O_RDWR|O_NONBLOCK);
öffnen.


So kann ich den Herstelle-Name auslesen.
1
int res;
2
char buf[256];
3
res = ioctl(fd, HIDIOCGRAWNAME(256), buf);

Kann ich irgendwie auch mit "ioctl(fd, ....." auf die GPIO und I²C 
zugreifen ?
#4824843
Lesenswert?

Mathias schrieb:

> Kann ich irgendwie auch mit "ioctl(fd, ....." auf die GPIO und I²C
> zugreifen ?

Ja, das müsste gehen.

Wie Du mit hidraw umgehst, steht hier:
https://www.kernel.org/doc/Documentation/hid/hidraw.txt
(oder in Deinem Kernel-Source-Verzeichnis)

Im Datenblatt 
http://ww1.microchip.com/downloads/en/DeviceDoc/20005292B.pdf
ab Seite 23 ("3.0 USB HID COMMUNICATION") findest Du die Struktur der 
HID-Pakete. Die sind immer 64 Byte groß und werden mit read() und 
write() übertragen.

Damit müsstest Du alle nötigen Informationen zusammen haben.

fchk
#4824893
Lesenswert?

>Wie Du mit hidraw umgehst, steht hier:
>https://www.kernel.org/doc/Documentation/hid/hidraw.txt

Das habe ich hier auch gefunden, ich konnte es auch fehlerfrei 
kompilieren und starten. Das spuckt mir aber nur Info zu den HID-Geräten 
aus.

https://android.googlesource.com/kernel/common.git/+/android-3.10/samples/hidraw/hid-example.c

>Im Datenblatt
>http://ww1.microchip.com/downloads/en/DeviceDoc/20...
>ab Seite 23 ("3.0 USB HID COMMUNICATION") findest Du die Struktur der
>HID-Pakete. Die sind immer 64 Byte groß und werden mit read() und
>write() übertragen.

Dies habe ich auch schon gesehen, werde aber nicht schlau.

Schön wäre ein Beispiel, wie ich zB. den GPIO0 ein und ausschalte.
Google findet da leider nichts.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren