Forum: Mikrocontroller und Digitale Elektronik USB Device vs HID (Alternativen)


von Elektrotiger (Gast)


Lesenswert?

Ich stehe vor der Aufgabe über den Mikrocontroller eine Ausgabe am PC 
wie eine Tastatur zu realisieren.
Dazu steht noch die Überlegung das ganze mit einer SD-Karte zuerweitern, 
so dass der Mikrocontroller seine Einstellungen aus einer SD-Karte 
einlesen kann.

Zunächst frage ich mich, ob ich den USB-Device vom Mikrocontroller 
benutzen sollte oder lieber selbst als HID realisiere?

Es wird ausschließlich Windows als Betriebssystem genutzt.

Ich muss zugeben, dass das ganze absolut Neuland für mich ist.

Soweit ich durch das Internet recherchieren konnte, sind HID natürlich 
sehr flexibel und individuell. Dazu brauchen sie im Gegensatz zu USB 
Device, keine zusätzliche Treiber am PC selbst.

Mir ist wichtig, dass die Verbindung zum PC zuverlässig funktioniert und 
zwar schnell.

Danke für eure Antworten im voraus :).

von Peter II (Gast)


Lesenswert?

Elektrotiger schrieb:
> Ich stehe vor der Aufgabe über den Mikrocontroller eine Ausgabe am PC
> wie eine Tastatur zu realisieren.

wie ist die Aufgabe?

von Elektrotiger (Gast)


Lesenswert?

Peter II schrieb:
> wie ist die Aufgabe?

Es werden mittels Signale durch Lichtwellenleiter letztenendes mit dem 
Mikrocontroller "Buchstaben" als Ausgabe stimuliert.

Sprich Schalter gedrückt führt zur Ausgabe "a" usw, wie als würde man 
auf der Tastatur a drücken.

von Peter II (Gast)


Lesenswert?

Elektrotiger schrieb:
> Sprich Schalter gedrückt führt zur Ausgabe "a" usw, wie als würde man
> auf der Tastatur a drücken.

dann spricht doch alles dafür sich als HID anzumelden.

von Elektrotiger (Gast)


Lesenswert?

Peter II schrieb:
> dann spricht doch alles dafür sich als HID anzumelden.

Und warum nicht USB Device?

von Peter (Gast)


Lesenswert?

Du definierst ein Composite-Device (<-Stichwort). Ein Interface stellt 
ein ganz normales Keyboard dar (Keyboard Descriptor [<-Stichwort]) das 
andere ein generic HID (<-Stichwort).

Das ist aber nix für Anfänger.

Gruß Peter

von Peter II (Gast)


Lesenswert?

Elektrotiger schrieb:
> Und warum nicht USB Device?

weil du Buchstaben wie eine Tastatur willst.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Elektrotiger schrieb:
> Und warum nicht USB Device?

Ein HID ist ein USB Device, was auch sonst?

Da du aber eine Tastatureingabe simulieren sollst, gibt es nun
wirklich keinen einzigen Grund, das nicht als HID vorzunehmen, denn
genau für derartige Dinge ist das human interface device ja gedacht.

von Elektrotiger (Gast)


Lesenswert?

Peter schrieb:
> Das ist aber nix für Anfänger.

Muss ich durch ;). Bachelorarbeit ist nicht geschenkt.

Jörg Wunsch schrieb:
> Ein HID ist ein USB Device, was auch sonst?

Der ATxmega256A3BU besitzt einen fertigen USB Device, daher die Frage ob 
dennoch HID.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Elektrotiger schrieb:
> Der ATxmega256A3BU besitzt einen fertigen USB Device, daher die Frage ob
> dennoch HID.

Du hast es immer noch nicht begriffen: das ist kein Widerspruch
in sich, kein entweder-oder.

Selbstverständlich kannst du mit dem USB-PHY deines ATxmega256A3BU ein
HID anfertigen, und genauso selbstverständlich kannst du auch ein
Mehrzweckgerät damit bauen, das neben dem HID noch ein mass storage
device beinhaltet.

Beispiele dafür sollten sich finden lassen, zum Beispiel bei LUFA.

von Elektrotiger (Gast)


Lesenswert?

1: Was würde gegen ein seperates USB Perpheral sprechen?


2: Und was würde für eine einfache USB Verbindung mittels 
Spannungsregler an zwei I/O Pins sprechen?

1: Mittels low USB 1.0
Dazu wird kein USB Chip benötigt, sondern nur ein Spannungsregler 
MCP1700 0,382€ und zwei normale Pins am Mikrocontroller (Geringere 
Hardware-Ressourcen)
Mehr Freiheit bei der Wahl der USB-Deskriptoren. V-USB unterstützt 
(kostenlose, fertige Programme)

2: Separates USB Perpheral
USB Chip von nöten: FT232RL 3€.

von Elektrotiger (Gast)


Lesenswert?

oder 3: USB Controller

von bluppdidupp (Gast)


Lesenswert?

Wenn schon ein ATxmega256A3BU benutzt wird, würde ich dessen 
USB-Schnittstelle verwenden und damit die USB "HID" Geräteklasse 
implementieren.
Atmel hat dafür scheinbar sogar schon passenden Beispielcode:
http://asf.atmel.com/docs/latest/common.services.usb.class.hid.device.keyboard.example.stk600_atxmega256a3bu/html/index.html

V-USB halte ich persönlich eher für Pfusch (wenn es auch irgendwie 
interessant ist)
Der ft232rl spricht kein HID, dann müsste erst eine Zusatzanwendung auf 
dem Rechner die Daten in Pseudo-Tastatureingaben umwandeln.

von Elektrotiger (Gast)


Lesenswert?

DANKE !!! :) Sehr hilfreich.

von Marcus W. (marcusaw)


Lesenswert?

bluppdidupp schrieb:
> Der ft232rl spricht kein HID, dann müsste erst eine Zusatzanwendung auf
> dem Rechner die Daten in Pseudo-Tastatureingaben umwandeln.

Deswegen ist es ja auch ein FT232RL (eine RS232 zu UART Bridge) und kein 
z.B. MAX3420E (USB Interface Controller)

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

bluppdidupp schrieb:
> V-USB halte ich persönlich eher für Pfusch

V-USB ist ganz gewiss kein Pfusch, sondern eine Variante, wie man
Controller, die sonst gar keine USB-Funktionalität haben, trotzdem
an den USB bekommen kann.

Aber wenn man schon einen ATxmega256A3BU benutzt, dann gibt es
natürlich absolut keinen Grund, warum man auf so einen Hack
zurückgreifen soll.

von Guido Körber (Gast)


Lesenswert?

Da gibt es eine ganz einfache Lösung:
http://www.codemercs.com/index.php?id=38&L=0

KeyWarrior24D kann man mit 8 Bit Hex-Code füttern und der sendet dann 
den Key als Tastatur über den USB. Modifier-Keys gehen auch.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Guido Körber schrieb:
> Da gibt es eine ganz einfache Lösung:

Aha.  Und daraus zimmert man dann eine Bachelor-Arbeit?

von Noch einer (Gast)


Lesenswert?

>Aha.  Und daraus zimmert man dann eine Bachelor-Arbeit?

Na klar, gute Leute schauen erst mal was es so an funktionierenden 
Lösungen gibt. Ich will nie wieder Projekte aufräumen, bei denen 
Anfänger alles selbst erfunden haben.

Weiter so!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Noch einer schrieb:
> Na klar, gute Leute schauen erst mal was es so an funktionierenden
> Lösungen gibt.

Dafür gibt es aber genügend andere Beispiele, auch für Kombi-Geräte
(auf das es ja am Ende hinauslaufen soll).  LUFA habe ich schon
genannt, ich glaube, es gibt auch Appnotes von Atmel zum Thema.

Das sollte genug Input sein, um das in einer derartigen Arbeit dann
verwerten zu können.

von stefanus (Gast)


Lesenswert?

V-USB würde ich nur einsetzen, wenn es billig-Schrott werden soll.

Google nur mal nach USBASP, dann bekommst Du einen Eindruck davon, wie 
unzufrieden deren Besitzer sind.

von Marc (Gast)


Lesenswert?

Das Problem mit VUSB ist, dass es einfach sich nicht an die USB Specs 
hält. Funktionieren tut es meistens aber es ist eben nicht das 
Zuverlässigste. Da spricht nix dagegen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

stefanus schrieb:
> V-USB würde ich nur einsetzen, wenn es billig-Schrott werden soll.

Kommt doch mal wieder runter, Jungs.  Keiner hat hier ernsthaft die
Absicht, eine Mauer, ähem, eine Software-USB-Lösung zu implementieren,
wenn von einem ATxmega256A3BU die Rede ist.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Elektrotiger schrieb:
> 2: Und was würde für eine einfache USB Verbindung mittels
> Spannungsregler an zwei I/O Pins sprechen?

Lies Dich doch erst einmal die USB-Spezifikation und die 
HID-Spezifikationen vollständig durch und verstehe die Inhalte. Dann 
wird Dir hoffentlich klar werden, welchen Unsinn Du hier geschrieben 
hast. Um USB zu verstehen genügt es definitiv nicht, jemanden zu kennen, 
der schon einmal erfolgreich eine USB-Maus an seinem PC eingestöpselt 
hat, sondern die wichtigsten Informationen findet man in den offiziellen 
Spezifikationen.

http://www.usb.org/developers/docs/usb20_docs/
http://www.usb.org/developers/hidpage/

von Rolf M. (rmagnus)


Lesenswert?

Noch einer schrieb:
>>Aha.  Und daraus zimmert man dann eine Bachelor-Arbeit?
>
> Na klar, gute Leute schauen erst mal was es so an funktionierenden
> Lösungen gibt.

Gute Leute haben bei ihrer Ausbildung was gelernt, und das durch selber 
machen und nicht durch zusammenstöpseln von Fertiglösungen.

von Seppel (Gast)


Lesenswert?

Rolf Magnus schrieb:
> Gute Leute haben bei ihrer Ausbildung was gelernt, und das durch selber
> machen und nicht durch zusammenstöpseln von Fertiglösungen.
In der Ausbildung mag das stimmen, aber die Kunst daran ist das gesunde 
Mittelmaß zu finden. Sonst erfindet man das Rad jedes mal neu.

von Rene M. (Firma: RWTH Aachen) (rene_m)


Lesenswert?

Rolf Magnus schrieb:
> Gute Leute haben bei ihrer Ausbildung was gelernt, und das durch selber
> machen und nicht durch zusammenstöpseln von Fertiglösungen.

Dir ist schon bewusst, dass die Bachelorarbeit nicht bei jedem Pups 
alles herleitet? Es sei denn Du schreibst gerade zu diesem Thema eine 
Arbeit, wer allerdings sämtliche Mikrocontroller für umfangreichere 
Zwecke nutzt, hat für so einen Mist kein Platz in der Bachelorarbeit!

Ganz im ernst, soll man die Maxwellschen Gleichungen wieder herleiten um 
die Ohmsche Gesetze nutzen zu dürfen? Soll man erklären wie ein 
Mikrocontroller aufgebaut ist nur weil man ihn zur Auswertung von z.B. 
Lichtwellensignalen nutzt und einen MRT Scanner Signal simuliert und so 
weiter ?...

: Bearbeitet durch User
von Pit (Gast)


Lesenswert?

Rene Müller schrieb:
> Dir ist schon bewusst, dass die Bachelorarbeit nicht bei jedem Pups
> alles herleitet?

Das is ja klar. Elektrotiger weiss das auch - er hat sich ja seit 4 
Tagen nicht mehr geäusert.
Der ist bestimmt schon fertig mit der Arbeit und macht jetzt Urlaub.

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.