Issuing a custom command from Host to a CX3 UVC-CDC device

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

cross mob
ajmc_3522501
Level 3
Level 3
5 likes given First like given

Hi,

I'm using a CX UVC-CDC device that streams data from a custom sensor.

My requirement is to restart the CX3 from the Host PC.

I also don't know how to write a host side application that can send such a request. So would some help regarding that also.

How can i implement such a requirement.

Regards

Ajay

0 Likes
1 Solution

>>When binding drivers, you have to explicitly select the device. What is to be selected ?  eg: bootloader device, bulkloop , etc

Bind it to BulkLoop. If the device correctly binds, it can be seen in Control Center application.

Yes, you can use UVC extension unit as well.

Regards,

Sridhar

View solution in original post

0 Likes
6 Replies
KandlaguntaR_36
Moderator
Moderator
Moderator
25 solutions authored 10 solutions authored 5 solutions authored

You need to add a Vendor Interface along with UVC and CDC interface: You need to modify the descriptors. Parse the setupup commands of vendor interface in the firmware. Use CyU3PDeviceReset API to reset the device.

You can test it using the Control Center application.

Please refer the USB Bulk Source sink application to handle the Vendor requests.

Sridhar

0 Likes

I've referred to the Bulk src sink application and see how vendor commands are processed. Also i understand that i need to add an Consumer and producer endpoint for processing vendor commands.

I followed the below instructions and integrated those changes into my Cx3UvcOV5640_UVC_CDC project Vendor Interface in UVC - KBA218335

Now i get one more interface inside the "Other devices" category in Device manager but it has a warning sign beside it.

I tried to update it's driver but couldn't find the correct driver.

Could you suggest what driver should be used to bind this interface ?

I understand that if driver is successful, the control center would show this in the device list tree and from there i can send data to the bulk endpoint.

Is my approach correct ?

0 Likes

In your case, you have UVC + CDC + Vendor interface (2+2+1), you should have total 5 interfaces. Please cross check.

The Vendor interface supposed to bind to CyUSB3.sys driver which is provided in the SDK: C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\driver

What is the warning message that is showed in the device manager?

0 Likes

Yes, There are five interfaces.

When binding drivers, you have to explicitly select the device. What is to be selected ?  eg: bootloader device, bulkloop , etc ..

The interface is shown under other devices and the error reported is failed to start.

As a workaround, i implemented extension unit in this project. So via that i can now send commands into CX3.

Regards

Ajay

0 Likes

>>When binding drivers, you have to explicitly select the device. What is to be selected ?  eg: bootloader device, bulkloop , etc

Bind it to BulkLoop. If the device correctly binds, it can be seen in Control Center application.

Yes, you can use UVC extension unit as well.

Regards,

Sridhar

0 Likes

Ok, Thanks for the Help.

Regards

Ajay

0 Likes