Forum: Mikrocontroller und Digitale Elektronik ATXmega USB - wie funktioniert das im Detail, welcher Treiber im PC, etc.


von Georg (Gast)


Lesenswert?

Hallo allerseits

Mittlerweile gibt es ja ATXMega mit USB-Unterstützung, bei denen 
anscheinend die meisten Bugs der XMegas beseitigt sein sollen, z.B. den 
ATXMega 128 A3U.

Wie funktioniert jetzt die Datenübertragung auf USB zwischen XMega und 
(Windows-)PC im Detail?

Wie meldet sich der XMega beim Einstöpseln in den USB-Port? Als HID, als 
virtuelle serielle Schnittstelle?

Welche (Windows-)Treiber sind da notwendig, wie kann ich mit 
selbstgeschriebenen Windows-Programmen (Delphi) Daten zum XMega schicken 
bzw. von diesem empfangen?

Fragen über Fragen, hoffentlich hat jemand auch Antworten dazu, danke 
sehr.

von Oliver J. (skriptkiddy)


Lesenswert?

Georg schrieb:
> Wie funktioniert jetzt die Datenübertragung auf USB zwischen XMega und
> (Windows-)PC im Detail?
Das ist abhängig von der Firmware, die du für den Mikrocontroller 
schreibst.


> Wie meldet sich der XMega beim Einstöpseln in den USB-Port? Als HID, als
> virtuelle serielle Schnittstelle?
""


> Welche (Windows-)Treiber sind da notwendig, wie kann ich mit
> selbstgeschriebenen Windows-Programmen (Delphi) Daten zum XMega schicken
> bzw. von diesem empfangen?
""

Am einfachsten ist es ein USB-CDC Serial Port auf dem Microcontroller zu 
implementieren. Der lässt sich dann auf der PC-Seite wie ein UART 
handeln.

http://www.elektor.de/elektronik-news/neue-xmega-generation-mit-full-speed-usb.1896970.lynkx

Gruß Oliver

von Stefan F. (sfrings)


Lesenswert?

Mit anderen Worten: Der Mikrocontroller selbst benötigt eine Firmware 
für die USB Schnittstelle und du brauchst für den PC einen Treiber. Da 
das für Hobby-Elektroniker nicht einfach ist, sind fast alle 
Entwicklungs-Kits mit einem USB-UART Chip ausgestattet, der je nach 
Betriebssystem mit einem Standard-Treiber oder ganz ohne Treiberdownload 
bereits vom System unterstützt wird.

von Schroeder (Gast)


Lesenswert?

Ich würde sagen es kommt auf deine Verwendung an. Für nen paar Bytes 
nimm einfach HID. Dafür gibts viele Libarys sowohl auf dem MCU als auch 
auf dem PC. Schau mal bei LUFA oder bei den Atmel Appnotes.

von Georg (Gast)


Lesenswert?

Danke für eure Antworten.

Nach dem Studium der diversen Atmel AppNotes und Beispielprojekte bin 
ich zur Überzeugung gelangt, dass der herkömmliche Weg z.B. über 
FTDI-Chips und normale UART-Kommunikation bei weitem am einfachsten ist. 
Das wurde von mir bereits praktiziert und funktioniert problemlos.

Eine eigene echte USB-Lösung würde wahrscheinlich viele Tage/Wochen 
Arbeit für die Einarbeitung ins Thema bedeuten, das ist mir für eine 
private nicht kommerzielle Lösung zuviel Aufwand.

von Stefan++ (Gast)


Lesenswert?

Georg schrieb:
> Nach dem Studium der diversen Atmel AppNotes und Beispielprojekte bin
> ich zur Überzeugung gelangt, dass der herkömmliche Weg z.B. über
> FTDI-Chips und normale UART-Kommunikation bei weitem am einfachsten ist.

Jaein ...

Schau dir mal das kleine Ding namens "Teensy" und die zugehörigen 
Code-Beispiele auf in der "Code-Library" von
http://www.pjrc.com/teensy/
an.

Diese Dinge bringt man mit bisschen Erfahrung an einem Tag zum laufen 
und nach 3, 4, 5 ... Tagen hat man seine eigene USB-Anwendung !!!

von Peter (Gast)


Lesenswert?

>>Diese Dinge bringt man mit bisschen Erfahrung an einem Tag zum laufen
>>und nach 3, 4, 5 ... Tagen hat man seine eigene USB-Anwendung !!!
Das wage ich mal zu bezweifeln.

Wenn Du von den vorgegebenen Deskriptoren weg gehst, musst Du wissen was 
du tust. D.h. es wird eine Einarbeitung in USB notwendig, was nicht 
unter ein paar Wochen zu machen ist (oder hast Du das mit 'bisschen 
Erfahrung' gemeint?).

Gruss Peter

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.