Forum: Mikrocontroller und Digitale Elektronik stm32f103, libopencm3 und USB-Tastatur


von Ralph S. (jjflash)


Lesenswert?

Für unbestimmte Dinge würde ich bisweilen gerne über eine USB-Tastatur 
Eingaben an einen STM32 machen.

Als Library verwende ich libopencm3. Als Hardware habe ich Discovery- , 
Nucleo-, Eigenbau- und Bluepill Boards.

Nirgendwo im Netz finde ich eine Lösung (es gibt Unmengen 
Tastatursimulatoren, aber ich will ja nicht den STM32 als USB-Device 
betreiben, er soll eines auslesen).

Hat jemand soetwas von Euch schon gemacht und kann mir eine Seite 
nennen. Selbst schreiben mag ich das nicht, da ich glaube dass der 
Aufwand enorm ist.

Für AVR habe ich eine PS/2 Tastatur am Laufen und ich weiß noch, dass 
das eine Menge Aufwand war. Ich könnte zwar diese Software an einen 
STM32 anpassen, aber wie gesagt, ich hätte da gerne eine USB Tastatur 
dran.

Gruß
Ralph

von Dr. Sommer (Gast)


Lesenswert?

Der STM32F103 hat keine USB-Host-Peripherie, da kannst du keine Devices 
anschließen. Dafür brauchst du einen Controller mit OTG_FS/HS Hardware, 
wie z.B. einen STM32F105.
Die USB Library von ST selbst kann als Host fungieren. Nur läuft die 
wohl nicht mit libopencm3.

von M. K. (kichi)


Lesenswert?

Dr. Sommer schrieb:
> Die USB Library von ST selbst kann als Host fungieren. Nur läuft die
> wohl nicht mit libopencm3.

Es gibt eine veraltete Implementation mit libopencm3: 
https://github.com/libusbhost/libusbhost. Das ändert aber nichts daran, 
dass die Hardware den Host-Betrieb auch unterstützen muss.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Früher wurden die meisten Tastaturen mit einem PS/2 Adapterstecker 
verkauft. PS/2 passt ganz gut zu Mikrocontrollern.

Wie ist das heute. Diese Adapter sind nicht mehr dabei, aber vielleicht 
unterstützen die Tastaturen das Protokoll immer noch. Weiß jemand was 
dazu?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefanus F. schrieb:
> Diese Adapter sind nicht mehr dabei, aber vielleicht unterstützen die
> Tastaturen das Protokoll immer noch.

Das hängt vom Einzelfall ab; davon auszugehen ist eher nicht.

von Ralph S. (jjflash)


Lesenswert?

Dr. Sommer schrieb:
> Der STM32F103 hat keine USB-Host-Peripherie, da kannst du keine Devices
> anschließen. Dafür brauchst du einen Controller mit OTG_FS/HS Hardware,
> wie z.B. einen STM32F105.
> Die USB Library von ST selbst kann als Host fungieren. Nur läuft die
> wohl nicht mit libopencm3.

Oh, das war wohl ein "Handbook-not-read-error" von mir und ich werde 
mein Vorhaben dann wohl auf STM32F4 und den erwähnten 105er haben 
wollen.

Stricke ich mir mein Board um, damit ein STM32F105 darauf Platz findet. 
Das Problem mit dem Implementieren einer USB-Tastatur besteht dann aber 
immer noch.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ralph S. schrieb:
> Das Problem mit dem Implementieren einer USB-Tastatur besteht dann aber
> immer noch.

Das sind etwa drei Schritte:

- USB-Host-Protokollstack implementieren
- Treiber für HID-Geräteklasse implementieren
- und dann als Sonderfall HID-Tastatur auswerten.

Die Tastatur selbst musst Du nicht implementieren, die hast Du ja schon.

von Stefan F. (Gast)


Lesenswert?

Das sieht vielversprechend aus: 
http://www.hobbytronics.co.uk/usb-host-keyboard

von Frank K. (fchk)


Lesenswert?

Stefanus F. schrieb:
> Das sieht vielversprechend aus:
> http://www.hobbytronics.co.uk/usb-host-keyboard

Ja, klar. Alle PIC24/dsPIC33 und PIC32 mit USB können sowohl Device als 
auch Host spielen, und Microchip liefert einen recht brauchbaren 
USB-Stack mit, der die Standard USB-Klassen wie HID, CDC und Mass 
Storage unterstützt.

fchk

von Dr. Sommer (Gast)


Lesenswert?

Einen PIC neben einen STM32 setzen nur weil man für letzteren die 
verfügbaren USB-Host-Libraries nicht findet? Weia...

https://www.st.com/resource/en/user_manual/dm00105256.pdf

Insb. ab S. 25 ...

von safari (Gast)


Lesenswert?

Anmerkung: PS2 auf dem STM32 ist deutlich einfacher und kompakter als 
USB-Tipse...

von Markus F. (mfro)


Lesenswert?

safari schrieb:
> Anmerkung: PS2 auf dem STM32 ist deutlich einfacher und kompakter als
> USB-Tipse...

PS/2 ist überall viel einfacher und kompakter.

von W.S. (Gast)


Lesenswert?

Markus F. schrieb:
> PS/2 ist überall viel einfacher und kompakter.

Ja. Und wer mit PS/2 zurechtkommt, der kann auch IR.

Ich hätte da nämlich noch nen Vorschlag: "Ruwido Merlin Livingroom 
Keyboard" - das ist ne niedliche Tastatur, die per Infrarot funktioniert 
- alternativ Kabel an die IR-Diode löten. Die hatte es mal bei Pollin 
gegeben und hier im Forum gab's auch mal nen Thread dazu. Für 
µC-Basteleien ist sowas genau richtig, weil klein und handlich.

W.S.

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.