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 :).
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.
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.
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
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.
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.
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.
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€.
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.
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)
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.
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.
>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!
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.
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.
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.
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.
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/
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.
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.
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 ?...
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.