USB CDC device <-> UART?

OP #3730938
Lesenswert?
• ▲
▼
Hallo,

Ich möchte hier ein einen AVR mit einem Gerät verheiraten, das per USB 
CDC kommuniziert. D.h. ich brauche irgendetwas, das sich dem Gerät 
gegenüber als USB-Host präsentiert und die Daten des CDC-Kanals per UART 
weiterreicht.

LUFA unterstützt zwar theoretisch genau diese Hostrolle, allerdings 
nicht mit dem ATMega32U4, den ich hier noch rumliegen habe.

Kennt jemand einen günstigen Chip, den ich dafür verwenden kann? Den es 
am besten als Board und nicht nur als SMD gibt? :-)
OP #3731062
Lesenswert?
• ▲
▼
Jim Meba schrieb:
> Du bis Dir auch 100%ig sicher, das es USB CDC und nicht ein FTDI, Silabs
> oder Prolific Chip ist? Die machen alle USB VCOM, aber keins ist CDC.

Ziemlich:
1
[ 3548.104076] usb 1-1.2: new high-speed USB device number 12 using ehci-pci
2
[ 3548.207139] usb 1-1.2: New USB device found, idVendor=2108, idProduct=780b
3
[ 3548.207146] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
4
[ 3548.207150] usb 1-1.2: Product: Neato Robotics USB v2
5
[ 3548.207153] usb 1-1.2: Manufacturer: Linux 2.6.33.7 with fsl-usb2-udc
6
[ 3548.212158] cdc_acm 1-1.2:2.0: This device cannot do calls on its own. It is not a modem.
7
[ 3548.212245] cdc_acm 1-1.2:2.0: ttyACM0: USB ACM device
OP #3731077
Lesenswert?
• ▲
▼
Uwe S. schrieb:
> Hallo,
> man kann mit diesem atMega32U2 [1] und per USB mit der LUFA Library [2]
> ein CDC bereitstellen.
Du hast die Frage nicht verstanden - ich will kein CDC-*Device* bauen, 
sondern einen Host, der mit einem vorhandenen CDC-Gerät kommuniziert.
Mit dem ATMega32U2 oder U4 geht das nicht, wie man im LUFA-Code 
(LUFA/Drivers/USB/Core/USBMode.h) sieht:
1
                        #if (defined(__AVR_AT90USB162__) || defined(__AVR_AT90USB82__)  || \
2
                             defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega8U2__))
3
                                #define USB_SERIES_2_AVR
4
                                #define USB_CAN_BE_DEVICE
5
                        #elif (defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega16U4__))
6
                                #define USB_SERIES_4_AVR
7
                                #define USB_CAN_BE_DEVICE
8
                        #elif (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__))
9
                                #define USB_SERIES_6_AVR
10
                                #define USB_CAN_BE_DEVICE
11
                        #elif (defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1287__))
12
                                #define USB_SERIES_7_AVR
13
                                #define USB_CAN_BE_DEVICE
14
                                #define USB_CAN_BE_HOST

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.