Hallo liebe Mikrocontroller Community,
Ich habe momentan ein Projekt bei dem ich einen über UART eingelesenen
String auf einem PC als Zeichenkette ausgeben soll, also als wenn er von
einer Tastatur kommen würde. Das Problem ist, dass ich dazu keine
passenden IC's finde, sondern nur fertige Kabel oder fertige Wandler.
Ich möchte aber nichts vorgefertigtes, sondern einen IC, welchen ich in
mein Projekt einbauen kann.
Die Frage ist also nun, kennt irgendwer von euch einen IC, den man am
besten nicht programmieren muss, sondern der nur einen String wie von
einer Tastatureingabe auf dem PC ausgibt, welcher ihm vorher über UART
gesendet wurde?
Es sollte auch am besten ein HID USB Protokoll sein, damit es auf den
meisten PC's erkannt und benutzt werden kann.
Danke schonmal im voraus...
Das Problem bei diesem Chip/Evlatuation Board ist für mich, dass er
sich selbst nicht als Keyboard ausgeben kann. Ich bräuchte eben einen
Chip, der UART Strings bzw. Daten auf USB umsetzen kann und dafür keinen
Extra Treiber und kein extra Programm benötigt.
Alternative Fakten schrieb:> Den IC gibt es auch einzeln>> http://www.silabs.com/products/development-tools/interface/cp2110ek-evaluation-kit
Der CP2110 emuliert aber keine Tastatur, er nutzt nur HID als
Schnittstelle.
Das Design vom OP ist nicht besonders toll. Besser man nimmmt einen
beliebigen USB-fähigen µC und hackt da das - oft vom Hersteller
bereitgestellte - Tastaturbeispiel rein.
Übrigens kann eine Tastatur nur Keycodes aber keine Zeichen senden.
Daher wird aus dem String "querty" ein "qwertz" wenn eine deutscher
Tatstaur eingestellt ist.
Jim M. schrieb:> Besser man nimmmt einen> beliebigen USB-fähigen µC und hackt da das - oft vom Hersteller> bereitgestellte - Tastaturbeispiel rein.
Also gibt es keinen richtigen IC der das bewerkstelligen würde, was
meinen Ansprüchen genügt? Man muss also eine µC benutzen, daran dann das
Device mit UART anschließen und dann ein bisschen Programmieren, damit
sich der µC als Tastatur ausgibt und die Strings, die per UART gesendet
wurden an den PC per HID Interface/Keyboard Interface weitergibt?
Habe ich das jetzt so richtig verstanden?
Es wäre halt schade für mich, da ich dachte ich muss nur einen IC
anschließen, den ein bisschen konfigurieren und dann hat sich das...
Aber danke.
Tim K. schrieb:> Also gibt es keinen richtigen IC der das bewerkstelligen würde, was> meinen Ansprüchen genügt?
Natürlich nicht, die Anforderung ist etwas zu speziell, um von
allgemeinem Nutzen zu sein. Das Thema mit den Scancodes wurde ja schon
angesprochen, aber hier noch etwas mehr Hintergrund dazu:
Tastaturen senden nicht "A" oder "a", sondern nur die Information "Taste
34 gedrückt" - "Taste 34 losgelassen". Welche Bedeutung diese
Tastennummer hat, hängt vom Tastaturlayout ab, aber das kennt nur
derjenige, der die Tasten beschriftet hat und der Tastaturtreiber des
Betriebssystems, nicht aber die Firmware der Tastatur (bzw. Deines
gesuchten Seriell-zu-HID-Tastatur-ICs).
Hallo,
ist zwar kein UART aber vielleicht hilft das dir weiter, das beste, du
muss dich dann nicht mehr um VID/PID kümmern..
KeyWarrior24D
Technische Details - KeyWarrior24D
KeyWarrior24D Chips erzeugen Tastendrücke aus einem 8 Bit Code, so
können Anwendungen mit Microcontrollern oder SPS auf einfache Weise
Tastatureingaben erzeugen.
USB 1.1/2.0 konform, Low Speed
Direkte Ausgänge für Caps, Num und Scroll LEDs
8 Eingänge für Tastencode
6 Eingänge für Modifier-Tasten
http://www.codemercs.com/de/tastatur/anderes-als-tasten
Rufus Τ. F. schrieb:> Welche Bedeutung diese> Tastennummer hat, hängt vom Tastaturlayout ab, aber das kennt nur> derjenige, der die Tasten beschriftet hat und der Tastaturtreiber des> Betriebssystems, nicht aber die Firmware der Tastatur
Also müsste, insofern ich das Ganze mit einem µC realisieren wollen
würde, der µC nicht einzelne Zeichen sondern eben die Tastennummern
senden??
Robert H. schrieb:> KeyWarrior24D Chips erzeugen Tastendrücke aus einem 8 Bit Code, so> können Anwendungen mit Microcontrollern oder SPS auf einfache Weise> Tastatureingaben erzeugen.
Dafür bräuchte ich dann unbedingt einen µC, der einen 8-Bit Code an den
KeyWarrior sendet? Und der KeyWarrior wandelt den dann in eine
Tastennummer um? Habe ich das so richtig verstanden?
Tim K. schrieb:> Das Problem bei diesem Chip/Evlatuation Board ist für mich, dass er> sich selbst nicht als Keyboard ausgeben kann. Ich bräuchte eben einen> Chip, der UART Strings bzw. Daten auf USB umsetzen kann und dafür keinen> Extra Treiber und kein extra Programm benötigt.
Ich bin gespannt, ob es da was gibt.
FTDI würde ich sowas zutrauen.
Mein Ansatz ist derzeit ein STM32 plus RS232-Pegelwandler.
Die notwendige Hardware für den Prototypen kostet bei Ebay ca. 5€.
Ein Mikrocontroller kann nebenbei auch noch VID/PID speichern.
Siehe auch mein Abschlussbericht hier
Beitrag "Haretition Pro: Digitaler Joystick"
Falls Du die Entwicklung auslagern möchtest - bitte PM.
Das oft verpönte* V-USB kann hier standardkonform eingesetzt werden:
https://www.obdev.at/products/vusb/prjhid.html (dort nach "uart2kbd"
suchen)
*) verpönt, weil es nur Low-Speed-USB unterstützt, aber manche
Protokolle wie z.B. CDC "legal" nicht mit Low-Speed-USB umsetzbar sind
und daher von manchen betriebssystemen auch nicht mehr akzeptiert
werden. Ist hier irrelevant, denn es geht hier nur um HID, und da ist
Low-Speed-USB "legal".
Marcus H. schrieb:> Ich bin gespannt, ob es da was gibt.> FTDI würde ich sowas zutrauen.
Bei FTDI habe ich schon nachgeguckt. Es gibt dort den FT260, der kommt
aber nicht ohne extra Programm auf dem Computer aus.
Marcus H. schrieb:> Mein Ansatz ist derzeit ein STM32 plus RS232-Pegelwandler.
Ich habe bis jetzt mit keinem anderen Mikrokontroller gearbeitet bis auf
Arduino. Geht es denn mit dem STM32 relativ leicht?
Tim K. schrieb:> Also müsste, insofern ich das Ganze mit einem µC realisieren wollen> würde, der µC nicht einzelne Zeichen sondern eben die Tastennummern> senden??
Eine Tastatur sendet Tastendrücke an den Computer. Wenn dein "System"
eine Tastatur nachbilden soll, dann muss es das logischerweise auch tun.
Was die Tastendrücke bedeuten, interessiert die Tastatur nicht.
Tim K. schrieb:> Ich habe bis jetzt mit keinem anderen Mikrokontroller gearbeitet bis auf> Arduino. Geht es denn mit dem STM32 relativ leicht?
Tja, das ist eine interessante Frage.
Kommt wohl auf den persönlichen Trainingsstand an.
Für mich ist der Ansatz mit STM32 einfacher gewesen, aber es kann
durchaus sein, dass irgendwo eine passende Arduino-Lib im Netz liegt.
Okay danke an alle die geantwortet haben.
Ich bin momentan so weit, dass ich die Recherche aufgegeben habe und
darauf umgestiegen bin einen µC zu benutzen.
Danke aber nochmal...
Das geht am einfachsten mit einen Arduino Pro Micro, oder jeder mit
ATmega32U4! Hat UART drinn und USB. HID-Library ist bei Arduino schon
dabei!
Gruss Chregu
Tim K. schrieb:> Robert H. schrieb:>> KeyWarrior24D Chips erzeugen Tastendrücke aus einem 8 Bit Code, so>> können Anwendungen mit Microcontrollern oder SPS auf einfache Weise>> Tastatureingaben erzeugen.>> Dafür bräuchte ich dann unbedingt einen µC, der einen 8-Bit Code an den> KeyWarrior sendet? Und der KeyWarrior wandelt den dann in eine> Tastennummer um? Habe ich das so richtig verstanden?
Ja, das ist richtig so. Je nach Anzahl der gewünschten Tasten werden
bis zu 8 parallele Datenleitungen + 2 Steuerleitungen benötigt.
Von der Firma "Genie" gab es mal serielle Keyboardtreiber.
Die akzeptierten den 'normalen' ASCII-Code und machten fuer
das (Windows-)Betriebssystem Scancodes daraus.
Aber keine Ahnung ob die hinter einem USB-Seriall-Wandler tun.
Und ob Mann der Treiber heute noch irgendwo habhaft werden kann...
(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag
#4934494:
> Und ob Mann der Treiber heute noch irgendwo habhaft werden kann...
... und ob diese Treiber unter aktuellen Windows-Versionen noch
verwendbar sein könnten ...
Allerdings bietet Windows selbst von Hause aus eine Schnittstelle für
seriell angeschlossene Tastaturen, die wird einem unter "Eingabehilfen"
angeboten. Gedacht für Spezialtastaturen für körperlich eingeschränkte,
lässt sich diese Schnittstelle natürlich auch unter anderen
Voraussetzungen verwenden.
Vor einiger Zeit hab' ich schon mal was darüber geschrieben:
Beitrag "Re: Tastatureingaben über RS232"
Manfred schrieb:> habe es aber selbst nicht probiert, MCP2200:
Zwar verwendet das Ding HID, aber darüber implementiert es keine
Tastatur oder Maus. Die HID-Verwendung dient nur der einfachen und
treiberlosen Ansteuerung der Gerätefunktionen über eine von Microchip
gestellte DLL.
1
The MCP2200 is configured by writing special commands using the
2
HID interface. Configuration can be achieved using the configuration
3
utility provided by Microchip. Alternatively, a custom utility can be
4
developed by using the DLL available on the MCP2200 product page.
Übrigens ist dieser Text aus dem von Dir verlinkten PDF rauskopiert,
ohne Klimmzüge. Was für einen PDF-Betrachter verwendest Du?
Auf dem LowPinCount Demo Board von Mikrochip ist der original Prozessor
verbaut der hinter dem mcp2200 Steckt. Die Demoprojecte beinhalten USB
to RS232 und HID Mouse und Tastatur.
Beides verheiratet sollte das gewünschte tun.
mfg
Michael