Cx3UvcOV5640 unable to receive a request from host application.

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

cross mob
RameshRajan
Level 2
Level 2
50 sign-ins First like received First solution authored

Hi,

I am implementing Fail Safe Firmware update which is referred here

I followed all instructions mentioned over there, but instead of using I2C I am using SPI flash. It is working fine with Fx3BootAppGcc  and USBBulkSourceSink . But this time I am using  Cx3UvcOV5640  instead of USBBulkSourceSink , I have included all the vendor commands part in Cx3UvcOV5640 . The Cx3UvcOV5640 task is being done properly but when I try to update the firmware using the FirmwareUpdate tool provided in the same link(above mentioned) it is not being done. I found that USB requests are not reaching Cx3UvcOV5640, so that vendor command part is not getting executed. 

So, I want to know two things here


1. Why Cx3UvcOV5640 is unable to get USB request from host application?

2. Does Cx3UvcOV5640  only capable of receiving USB request from an UVC supported host application?

 

Thanks,

Abdul.

0 Likes
1 Solution
JayakrishnaT_76
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hi Abdul,

Please let me know if you are using the default Cx3UvcOV5640  project. If yes, then please find my comments below:

1. The default Cx3UvcOV5640  project enumerates as a UVC device. The host application that you are using issues vendor commands only to a vendor device. So, you should be having a vendor interface in your device to accept the vendor commands issued by the host application.

Yes, you are correct. The default project has only UVC interface. So, it can accept commands from a UVC host application only.

Best Regards,
Jayakrishna

View solution in original post

4 Replies
JayakrishnaT_76
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hi Abdul,

Please let me know if you are using the default Cx3UvcOV5640  project. If yes, then please find my comments below:

1. The default Cx3UvcOV5640  project enumerates as a UVC device. The host application that you are using issues vendor commands only to a vendor device. So, you should be having a vendor interface in your device to accept the vendor commands issued by the host application.

Yes, you are correct. The default project has only UVC interface. So, it can accept commands from a UVC host application only.

Best Regards,
Jayakrishna
RameshRajan
Level 2
Level 2
50 sign-ins First like received First solution authored

Hi Jayakrishna,

Thank you for responding. Yes I am using default Cx3UvcOV5640  project. I tried to have a vendor-interface in my device with the help of this link but it haven't worked well. In this link they said to update length of the descriptor in CyFxUSBHSConfigDscr[] and CyFxUSBSSConfigDscr[] D9 to E2 and CD to D6 respectively but I didn't find length of descriptor as D9 or CD in both the arrays. So, I added 0x09 to the existing length--Is it right or wrong? 

If I am wrong, Please provide reference for adding vendor-interface to UVC device. 


All other steps were followed as they mentioned. Still my UVC device is not able to receive vendor commands.

Thank you,

Abdul.

0 Likes

Hello Abdul,

The KBA that you are referring to is for the firmware that comes along with AN75779 which makes use of a different set of descriptors. The field that the KBA mentions should be populated with the sum of all the descriptor sizes inside the configuration descriptor. And this sum should be populated in little endian format. Please refer to the USB specification to understand more on this.

Best Regards,
Jayakrishna
0 Likes
RameshRajan
Level 2
Level 2
50 sign-ins First like received First solution authored

Okay Thank you Jayakrishna.

0 Likes