Forum: Mikrocontroller und Digitale Elektronik MCP2221 und HID


von Mathias (Gast)


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 ?

von Frank K. (fchk)


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

von Mathias B. (mathias_b103)


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.

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.