Forum: Mikrocontroller und Digitale Elektronik Pic32 USB Starter Kit II


von Minoso (Gast)


Lesenswert?

Hallo an alle die das lesen,

ich habe hier das USB Starter Kit II von Microchip vor mir liegen.
Alles installiert usw., funktioniert auch alles.

Jetzt wollte ich die HDI Funktion des Kits ausprobieren. Hab das 
Beispielprogramm, welches eine Maus emuliert geöffnet, compaliert, 
ausgeführt... und es funktioniert. Soweit so gut!

Jetzt will ich aber selbst eine Tastatur (zumindest ein, zwei Tasten) 
simulieren. Komm da aber nicht wirklich voran. Irgendwie hab ich das 
Gefühl, dass mir Microchip verheimlichen will wie man Code für das 
Starter Kit schreibt...
Komm aus der Renesas-Ecke und vermisse bei Microchip ein Dokument in dem 
es nur um Softwaregeschichten geht...

Kann mir jemand sagen wo ich Informationen für die HDI Funktionalität 
herbekomme? Oder steht da was im Datenblatt und ich bin nur zu blöd um 
es zu finden?

Grüße
Minoso

von Oliver J. (skriptkiddy)


Lesenswert?

Minoso schrieb:
> Kann mir jemand sagen wo ich Informationen für die HDI Funktionalität
> herbekomme?

[1] www.usb.org (USB 2.0 Spec + HID usage tables)

[2] USB 2.0 Handbuch für Entwickler

Gruß Oliver

von Minoso (Gast)


Lesenswert?

Danke Oliver, der HID usage Table hilft mir schon mal ein ganzes Stück 
weiter!

von Minoso (Gast)


Lesenswert?

Der usage Table hat mir zwar einiges geholfen, jedoch komm ich trotzdem 
nicht wirklich weiter...

Gibt es von Microchip kein Beispielprojekt in dem eine Tastatur 
simuliert wird? Ich finde zumindest keines...

Habe den Class specific descriptor - HID mouse des Beispielprojektes wie 
folgt umgeschrieben.

    0x05, 0x0c,                    // USAGE_PAGE (Consumer Devices)
    0x09, 0x01,                    // USAGE (Consumer Control)
    0xa1, 0x01,                    // COLLECTION (Application)
    0x05, 0x07,                    //   USAGE_PAGE (Keyboard)
    0x19, 0x00,                    //   USAGE_MINIMUM (Reserved (no 
event indicated))
    0x29, 0x65,                    //   USAGE_MAXIMUM (Keyboard 
Application)
    0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
    0x25, 0x65,                    //   LOGICAL_MAXIMUM (101)
    0x75, 0x08,                    //   REPORT_SIZE (8)
    0x95, 0x01,                    //   REPORT_COUNT (1)
    0x81, 0x00,                    //   INPUT (Data,Ary,Abs)
    0x09, 0x00,                    //   USAGE (Unassigned)
    0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
    0x25, 0x01,                    //   LOGICAL_MAXIMUM (1)
    0x75, 0x01,                    //   REPORT_SIZE (1)
    0x95, 0x00,                    //   REPORT_COUNT (0)
    0x81, 0x02,                    //   INPUT (Data,Var,Abs)
    0xc0                           // END_COLLECTION


bin ich da schonmal auf dem richtigen weg?
Zusätzlich habe ich noch die Produkt ID geändert, mir ergibt sich zwar 
nicht warum man diese ändern soll, aber durch Recherche mit Herrn Google 
bin ich zu dem Ergebnis gekommen.
Was mir auch noch nicht klar ist, ist die Längenberechnung des 
HID_RPT01_SIZE (Im Beispielcode mit 50, aber warum?)

Was ich jetzt vorhabe ist:
Die Funktion des Beispielprojektes Emulate_Mouse() will ich benutzen um, 
bei Tastendruck auf dem Starter Kit, nicht den Mauszeiger im Kreis zu 
wirbeln, sonder eine Tastaturtaste zu simulieren.

Kann mir da jemand weiterhelfen? Muss ich, außer der Product ID, im 
Device Descriptor zusätlich Änderungen durchführen? Und wie sieht's mit 
dem Configuration Descriptor aus?

Grüße Minoso

von Minoso (Gast)


Lesenswert?

Zusätzlich hab ich noch ein anderes Problem.
Und zwar bootet mein Rechner des öfteren neu, wenn ich mit dem Starter 
Kit arbeitet. Ohne irgendwelche Fehlermeldungen oder sonstige 
Anzeichen...
Kennt jemand das Problem?

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.