Forum: Mikrocontroller und Digitale Elektronik USB-Schnittstelle für Xmega A3BU


von Dominik (Gast)


Lesenswert?

Hallo zusammen,

ich möchte mithilfe eines XmegaA3BU Xplained Board eine Spannung am DAC 
einstellen, dann ausgeben, diese mithilfe des ADCs messen und die Daten 
über USB an einem Terminalprogramm ausgeben.

Ich habe dasselbe mithilfe eines FTDI-Chips (USB-RS232 Converter) schon 
umgesetzt. Nun würde ich mir aber gerne den Chip sparen und direkt über 
USB die Daten an den PC senden.

Da ich leider Anfänger bin, komme ich selber nicht darauf. Ich habe in 
diversen Foren gelesen, dass es nicht so leicht ist, eine 
USB-Schnittstelle selber zu programmieren. Die Beispielprojekte die 
Atmel Studio bietet sind sehr umfangreich und für mich leider nicht 
verständlich.

Gibt es eine einfache Lösung, eine USB-Schnittstelle selber zu 
implementieren oder sollte ich doch lieber nicht auf den FTDI-Chip 
verzichten?

Vielen Dank für die Hilfe,
Dominik

von Thomas Z. (usbman)


Lesenswert?

Was willst du jetzt genau hören? USB kann muss aber nicht komplex sein. 
In deinem Fall würde es reichen auf deinem Chip CDC zu implementieren. 
Ich bin sicher dass dafür auch für deinen Chip Beispiele existieren.
Ob du das als Anfänger hinbekommst kannst nur du beurteilen. Einen 
fertigen Wandler zu benutzen ist sicherlich einfacher.

Thomas

von Timmo H. (masterfx)


Lesenswert?

CDC Beispiel ist im ASF mit drin

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

In diesem Thread Beitrag "CDC für xmega" hat 
ein freundlicher Kollege seinen Code für ein CDC-Device auf einem 
ATxmega32A4U zur Verfügung gestellt.

Grüßle
Volker

von c-hater (Gast)


Lesenswert?

Dominik schrieb:

> Da ich leider Anfänger bin, komme ich selber nicht darauf. Ich habe in
> diversen Foren gelesen, dass es nicht so leicht ist, eine
> USB-Schnittstelle selber zu programmieren.

Das ist nunmal so. USB ist komplex. Sehr viel komplexer als eine doofe 
UART.

> Die Beispielprojekte die
> Atmel Studio bietet sind sehr umfangreich und für mich leider nicht
> verständlich.

Die sind eben deswegen so umfangreich, weil USB so komplex ist. Aber: 
der Hauptteil der Sache ist ja in den Beispielprojekten bereits fix und 
fertig. Du brauchst eigentlich nur noch an einer Stelle "andocken", um 
deine Daten über das vorhandene Konstrukt zu schieben.

> Gibt es eine einfache Lösung, eine USB-Schnittstelle selber zu
> implementieren

Nein.

> oder sollte ich doch lieber nicht auf den FTDI-Chip
> verzichten?

Wenn du ewig Anfänger bleiben willst, wäre das sicher der einfachste 
Weg.

Ansonsten musst du halt einfach nur eins tun: lernen. Am besten, indem 
du dir eine Vorstellung über die Konzepte von USB verschaffst. Hast du 
erst eine Vorstellung, wie das Protokoll funktioniert, findest du auch 
die Stellen im vorhandenen fertigen Code, an die du "andocken" musst...

von Frank K. (fchk)


Lesenswert?

Kommt es Dir nur auf das Ergebnis an, oder willst Du unbedingt dein 
XMega-Board verwenden?

Wenn es Dir nur auf die Funktionalität ankommt - egal wie, dann gibts 
viele andere Wege.

Du könntest z.B. einen USB-zu-I2C Chip nehmen. z.B. den hier:
https://www.microchip.com/wwwproducts/en/MCP2221A

Der gibt Dir eine I2C-Schnittstelle, die Du vom PC aus steuern kannst. 
Bibliotheken sind auf der Webseite vorhanden. Und da kannst Du dann 
jeden I2C-Baustein anschließen, den Du willst. Z.B. diesen ADC
https://www.microchip.com/wwwproducts/en/MCP3221

und diesen DAC:
https://www.microchip.com/wwwproducts/en/MCP4726

Problem gelöst, aber auf eine ganz andere Weise.

fchk

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.