USB-Schnittstelle für Xmega A3BU

Gast #6019496
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
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
Gast
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...
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.