ccg3 usb works for alt mode (DP) and hid simultaneous

Announcements

Live Webinar: USB-C adoption. Simple & Cost-efficient solutions | April 18th @9am or 5pm CEST. Register now !

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
asch_974466
Level 2
Level 2

Hi, I want to use the CCG3 (3120) for the typeC to DP (or HDMI) alt mode, and i also needs an usb HID mouse like function. The ordinary way is use an USB hub. but i want to use CCG3 usb function, and use composite device to simulate a usb mouse, it's possiable or not?

Thanks.

0 Likes
1 Solution

Hi Olof,

Thanks for your answer.

I'll try and find out the result.

View solution in original post

0 Likes
9 Replies
ShifangZ_26
Moderator
Moderator
Moderator
10 likes given 250 sign-ins 1000 replies posted

Hi Astankvai,

If you need billboard (typeC to DP (or HDMI) alt mode) and also a USB HID mouse, so far, CCG3 cannot support it. Since billboard is mandatory for ALT mode and occupied USB interface. The Billboard is HID class. If you need to support HID mouse without any hardware changes (add a USB2.0 hub), the billboard cannot be supported.

Best Regards,

Lisa

0 Likes

Hi Lisz, I know the billboard device occpied the usb. I means use a usb composite device to emulate 2 interface. one is for billboard device, and another is for the hid mouse.

and i checked the code, the interface num is 0 in the device desciriptor? it's normal? or the SDK have bug? My sdk version is 3.1.

Thanks.

0 Likes

Hi user_6629094​,

I was mistake your requirements. I thought you are going to connect HID mouse directly. If you just want to add a interface on HID and parallel with billboard. You could add additional interface under HID description. We have example you could reference. The example code is CYPD3123 CTD firmware example which is include billboard and USB to I2C bridge.

Best Regards,

Lisa

0 Likes

Dear Lisz,

Thanks and I was checking now.

0 Likes

Hi Lisz,

thanks, we just made the board and will test it. thanks.

0 Likes
OlEr_1999891
Level 5
Level 5
50 replies posted 25 replies posted 25 sign-ins

Hi!

We have managed to hack the CCG3 DP dongle code-base from the SDK so that it supports additional endpoints in parallell to the built-in billboard device. When we connect a PC we get both the Billboard device and our custom HID device. There is already a HID device that is used by the bootloader and we change that a bit. Check in file usb_hid.h för the device descriptors. Then you have to modify usb_hid.c file to respond to your own USB HID status reports etc.

I'm not sure if the billboard device is still working (we are not using that in our case), but at least in windows it pops up the dialog and under Device Manager there is still a Billboard device.

Cheers

Olof

0 Likes

Hi Olof,

used the composite device via changing the interface number?

0 Likes

Hi!

Device descriptor below. Again, we are still in hack-phase so I can't guarantee this is the way to do it, but HID communication works (status reports) and I believe the Billboard device is still operational since it pops up on Windows.

I don't have a dump of how this looked like before we modified it, but I believe it looked the same (in the CYPD3120-40LQXI_dp_dongle project) and the HID device is used for the booloader to download new firmeware into a dongle over USB HID.

The device is a USB-C LED Driver by the way, world's first

/Olof

Information for device LED Driver (VID=0x04B4 PID=0x3120):

Connection Information:

------------------------------

Device current bus speed: FullSpeed

Device supports USB 1.1 specification

Device supports USB 2.0 specification

Device address: 0x0003

Current configuration value: 0x01

Number of open pipes: 1

Device Descriptor:

------------------------------

0x12 bLength

0x01 bDescriptorType

0x0201 bcdUSB

0x00 bDeviceClass  

0x00 bDeviceSubClass  

0x00 bDeviceProtocol  

0x08 bMaxPacketSize0   (8 bytes)

0x04B4 idVendor

0x3120 idProduct

0x0000 bcdDevice

0x01 iManufacturer   "Ochno"

0x02 iProduct   "LED Driver"

0x03 iSerialNumber   "11AD1D0438F24705101B0B00"

0x01 bNumConfigurations

Configuration Descriptor:

------------------------------

0x09 bLength

0x02 bDescriptorType

0x002B wTotalLength   (43 bytes)

0x02 bNumInterfaces

0x01 bConfigurationValue

0x04 iConfiguration   "Billboard Configuration"

0x80 bmAttributes   (Bus-powered Device)

0x32 bMaxPower      (100 mA)

Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x00 bInterfaceNumber

0x00 bAlternateSetting

0x00 bNumEndPoints

0x11 bInterfaceClass     

0x00 bInterfaceSubClass  

0x00 bInterfaceProtocol  

0x05 iInterface   "Billboard Interface"

Interface Descriptor:

------------------------------

0x09 bLength

0x04 bDescriptorType

0x01 bInterfaceNumber

0x00 bAlternateSetting

0x01 bNumEndPoints

0x03 bInterfaceClass      (Human Interface Device Class)

0x00 bInterfaceSubClass  

0x00 bInterfaceProtocol  

0x06 iInterface   "Control Interface"

HID Descriptor:

------------------------------

0x09 bLength

0x21 bDescriptorType

0x0111 bcdHID

0x00 bCountryCode

0x01 bNumDescriptors

0x22 bDescriptorType   (Report descriptor)

0x0062 bDescriptorLength

Endpoint Descriptor:

------------------------------

0x07 bLength

0x05 bDescriptorType

0x81 bEndpointAddress  (IN endpoint 1)

0x03 bmAttributes      (Transfer: Interrupt / Synch: None / Usage: Data)

0x0040 wMaxPacketSize    (1 x 64 bytes)

0xFF bInterval

Microsoft OS Descriptor is not available. Error code: 0x0000001F

String Descriptor Table

--------------------------------

Index  LANGID  String

0x00   0x0000  0x0409

0x01   0x0409  "Ochno"

0x02   0x0409  "LED Driver"

0x03   0x0409  "11AD1D0438F24705101B0B00"

0x04   0x0409  "Billboard Configuration"

0x05   0x0409  "Billboard Interface"

0x06   0x0409  "Control Interface"

0 Likes

Hi Olof,

Thanks for your answer.

I'll try and find out the result.

0 Likes