Add CDC device to UVC

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

cross mob
VlKh_2251656
Level 5
Level 5
10 likes given 5 likes given First like received

Hello.

I have an example of a video camera (UVC) built on a chip CX3. Tell me, how to fix the descriptors, in order to create in addition to UVC class another device CDC (virtual com-port)?

1 Solution
lock attach
Attachments are accessible only for community members.
Keerthy_V
Moderator
Moderator
Moderator
First like given 250 sign-ins 50 solutions authored

Please find the attached CX3 example project having UVC+CDC interface.

Download this example project onto Denebola RDK. When the kit enumerates, UVC interface automatically binds to UVC driver and will come up as CX3-UVC under 'Imaging devices' section of Device Manager. Whereas, the CDC interface will come up as CX3-UVC under 'Other devices' section of Device Manager.

You need to force bind this interface to CDC driver as follows:

1. Download and install CypressDriverInstaller_1.exe from the following link: http://www.cypress.com/documentation/software-and-drivers/usb-serial-software-development-kit

After default installation, 'Cypress USB-Serial Driver' folder will be created in the following path: C:\Program Files (x86)\Cypress

2. Right click on CX3-UVC under 'Other devices' section of Device Manager and choose 'Update Driver Software'.

3. In the pop-up window, choose 'Browse my computer for driver software'.

4. Choose 'Let me pick from a list of device drivers on my computer'.

5. Choose 'Show All Devices' and click Next.

6. Click on 'Have Disk...'

7. In the pop-up window, choose 'Browse...' and go to the following location:

C:\Program Files (x86)\Cypress\Cypress USB-Serial Driver\DriverBinary\CDC_Driver\bin\win7\x64

8. Choose 'CypressSerial.inf' file and click Open.

9. Choose 'OK' and in the next window, select 'USB to UART Adapter' and click Next.

10. In the 'Update Driver Warning' pop-up window, choose Yes. Now, one of the CDC interface will come up as USB to UART Adapter in Device Manager.

11. Now, you will have another device 'Virtual Serial Port' under Other devices section of Device Manager.

12. Right click on this and choose 'Update Driver Software'.

13. Follow steps 3 to 8.

14. This time select 'USB Serial Port' and click Next. After you choose 'Yes' in the

'Update Driver Warning' pop-up window, you will get a USB Serial Port(COM x) under Ports (COM&LPT) section of Device Manager. ['x' can be any number]

Now, open any of UVC Host Applications (e-CamView) and you can observe the video being streamed. Simultaneously, open a UART Terminal application (TeraTerm) and you can verify the working of CDC interface.

You need to do the above mentioned steps for binding to CDC driver only once. The next time, you connect the device to PC, CDC interface will automatically come up as a USB Serial Port.

View solution in original post

0 Likes
10 Replies
lock attach
Attachments are accessible only for community members.
Keerthy_V
Moderator
Moderator
Moderator
First like given 250 sign-ins 50 solutions authored

Please find the attached CX3 example project having UVC+CDC interface.

Download this example project onto Denebola RDK. When the kit enumerates, UVC interface automatically binds to UVC driver and will come up as CX3-UVC under 'Imaging devices' section of Device Manager. Whereas, the CDC interface will come up as CX3-UVC under 'Other devices' section of Device Manager.

You need to force bind this interface to CDC driver as follows:

1. Download and install CypressDriverInstaller_1.exe from the following link: http://www.cypress.com/documentation/software-and-drivers/usb-serial-software-development-kit

After default installation, 'Cypress USB-Serial Driver' folder will be created in the following path: C:\Program Files (x86)\Cypress

2. Right click on CX3-UVC under 'Other devices' section of Device Manager and choose 'Update Driver Software'.

3. In the pop-up window, choose 'Browse my computer for driver software'.

4. Choose 'Let me pick from a list of device drivers on my computer'.

5. Choose 'Show All Devices' and click Next.

6. Click on 'Have Disk...'

7. In the pop-up window, choose 'Browse...' and go to the following location:

C:\Program Files (x86)\Cypress\Cypress USB-Serial Driver\DriverBinary\CDC_Driver\bin\win7\x64

8. Choose 'CypressSerial.inf' file and click Open.

9. Choose 'OK' and in the next window, select 'USB to UART Adapter' and click Next.

10. In the 'Update Driver Warning' pop-up window, choose Yes. Now, one of the CDC interface will come up as USB to UART Adapter in Device Manager.

11. Now, you will have another device 'Virtual Serial Port' under Other devices section of Device Manager.

12. Right click on this and choose 'Update Driver Software'.

13. Follow steps 3 to 8.

14. This time select 'USB Serial Port' and click Next. After you choose 'Yes' in the

'Update Driver Warning' pop-up window, you will get a USB Serial Port(COM x) under Ports (COM&LPT) section of Device Manager. ['x' can be any number]

Now, open any of UVC Host Applications (e-CamView) and you can observe the video being streamed. Simultaneously, open a UART Terminal application (TeraTerm) and you can verify the working of CDC interface.

You need to do the above mentioned steps for binding to CDC driver only once. The next time, you connect the device to PC, CDC interface will automatically come up as a USB Serial Port.

0 Likes

Dear keaj. Many thanks for the response.

Yes, I saw an example for a UVC. But there, as I know, the serial port is made on the second cable.

I wanted the CDC device displayed on the same cable as the video signal.

Tell me please, can this be done?

0 Likes

Dear Keaj.

And additionally. I not find UVC project in attachment files.

I got standart UVC project. It is right?

0 Likes

The project has support for both UVC and CDC interface. Please follow the steps mentioned in the previous response and let us know test results.

Dear Keaj

Many stanks.

Yes, thanks. I downloaded drivers, compiled example, and installed it to "Denebola".

And "denebola" as a video camera is a device is seen in PC.

But In different versions of Windows everything works differently.

On Windows10 the driver was defined even without installation of cypress drivers. The serial port is detected.

But no any data from Denebola to PC is transmitted. Is it right?

On Windows 7 could not find the appropriate driver in the directory you specified.

I have a development (Cypress EZ USB Suite) for Windows 7.

For development in the Windows10 it is necessary to install a framework 3.5, which is not yet possible.

Tell me why I did not decide on Windows 7 (64 bit) ?

How to choose a serial port in denebola to send and receive message from denebola to PC and vice versa?

How configure this CDC-serial port in denebola?

Use CyU3PDebugPrint()?

0 Likes

Now I'm looking the source code

I see that there is a function

void CyCx3AppDebugInit (void)

for com-port

but I do not see the setting and initialization function for CDC-interface

tell me how to do initialize and setup it for 115200 8N1 virtual com-port ?

And how to send message from denebola to PC and receive messages from PC to denebola?

0 Likes

yes, there is one more interesting thing

In the camera view mode, the control  filters are inaccessible (or inactive)

0 Likes

Dear Keaj,

I'm still not very good at writing USB devices

It seems to me that the next steps should be taken.

1. Create two endpoints to the input and output for handling CDC requests

2. Declare them according to the CDC interface settings

3. Configure them (create buffers)

4. State that we support a new additional CDC interface

5. Make the request handlers from the host for this interface

Tell me, is this correct?

what other steps should be taken?

as I already said

Yes, I seen standart example "cyfxusbuart"

But it, I thing, not working...

0 Likes

But I not understand how catch the read/write uart events (for both uarts)

Please, tell me...

0 Likes

Me need handle the my button press events and send message to cdc port.

0 Likes