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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren