Regarding USB Enumaration

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

cross mob
Anonymous
Not applicable

Hi ,

      We are using cypress USB products  .when we will connect to PC via USB and checked in Device manager  these devices comes under Universal serial Bus controller category but we want  as imaging Device  because we interfaced with image sensor  i have attached the screenshot  PFA. So  we wanted to change from Universal serial Bus  controller category to imaging Device  .Can any one help me to change ?.

Thanks Regards ,Device_manager.png

Veerendra

0 Likes
1 Solution
SrinathS_16
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello Veerendra,

- Cypress FX2LP No EEPROM device denotes the FX2LP boot-loader and your custom application firmware.

- In case your application needs to be detected under the Imaging devices/Camera devices class,

1. The CYUSB3.INF file has to be modified as below. The class and the class GUID should be populated with these values.

Class=Camera

ClassGUID={ca3e7ab9-b4c3-4ae6-8251-579ef933890f}

Also, please note that this modification would erase the digital signature of the CYUSB3 driver and hence cannot be used on Windows 10 and above machines. Below Windows 10, this modified INF file and the driver can be bound forcefully. To use this driver in Windows 10 with the modification, the driver needs to be submitted to Microsoft for certification.

Also, kindly, note that CYUSB3 driver is a vendor-class based driver and is generally supposed to be displayed under the USB Controllers section.

2. The device should be configured as a USB video class device. The firmware needs to be modified to handle the UVC class requests and the descriptor file should be modified to suit the UVC class. In this case, the Windows host applications such as e-Cam View or VLC player can be used along with the Microsoft provided drivers. CYUSB3 driver is not needed in this case.

Best regards,

Srinath S

View solution in original post

0 Likes
31 Replies
SrinathS_16
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello Veerendra,

- Cypress FX2LP No EEPROM device denotes the FX2LP boot-loader and your custom application firmware.

- In case your application needs to be detected under the Imaging devices/Camera devices class,

1. The CYUSB3.INF file has to be modified as below. The class and the class GUID should be populated with these values.

Class=Camera

ClassGUID={ca3e7ab9-b4c3-4ae6-8251-579ef933890f}

Also, please note that this modification would erase the digital signature of the CYUSB3 driver and hence cannot be used on Windows 10 and above machines. Below Windows 10, this modified INF file and the driver can be bound forcefully. To use this driver in Windows 10 with the modification, the driver needs to be submitted to Microsoft for certification.

Also, kindly, note that CYUSB3 driver is a vendor-class based driver and is generally supposed to be displayed under the USB Controllers section.

2. The device should be configured as a USB video class device. The firmware needs to be modified to handle the UVC class requests and the descriptor file should be modified to suit the UVC class. In this case, the Windows host applications such as e-Cam View or VLC player can be used along with the Microsoft provided drivers. CYUSB3 driver is not needed in this case.

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

hi srnt,

           I modified as you Said ,

" The CYUSB3.INF file has to be modified as below. The class and the class GUID should be populated with these values.

Class=Camera

ClassGUID={ca3e7ab9-b4c3-4ae6-8251-579ef933890f}" but the Device is not enumerated as below

please help me to solve this Enumeration problem .and to Add UVC to firmware it will be very helpful.

23.jpg24.JPG

0 Likes

Hello Veerendra,

- Please let me know the procedure how you have bound the device to the driver.

- Share the version of the driver and the error message displayed.

- For FX2LP UVC implementation, refer to the below document.

USB2.0 Camera Interface Using FX2LP™ and Lattice CrossLink FPGA - KBA222479

This can be used as a reference to build your application.

Best regards,

Srinath S

Anonymous
Not applicable

hi srnt,

              I changed the Cysb3.Inf  By opening in Note pad  as you Said . Still UVC is not implemented and i am not getting how to implement please guide me to Implement. but At least it have to enumerate

             as Image Device after changing the Class and  ClassGUID.

  And  thanks for your reply i will refer that link Also  please help me to do this...

Thanks regards

    Veerendra

0 Likes

Hello Veerendra,

- Modify the INF file in the driver package as I had mentioned.

- Open device manager. Right click on the device and choose 'Update Driver'.

- Choose 'Browse my computer for driver software'.

- Then, choose 'Let me pick from a list of available drivers on my computer'.

- Choose 'Have Disk'.

- Navigate to the driver directory and choose the INF file that you have modified.

- Click on OK.

In case you face any errors, please post the screenshot.

Best regards,

Srinath S

Anonymous
Not applicable

hi srnt,

            i followed the same steps as mentioned in the below

    - Modify the INF file in the driver package as I had mentioned.

     - Open device manager. Right click on the device and choose 'Update Driver'.

    - Choose 'Browse my computer for driver software'.

    - Then, choose 'Let me pick from a list of available drivers on my computer'.

    - Choose 'Have Disk'.

   - Navigate to the driver directory and choose the INF file that you have modified.

      - Click on OK.

errors are same as i attached the pics in the above post after  updating drivers those warning are  showing as i attached in the above pic .

please do some thing to solve this  any way i attached the error image while updating the driver PFAcccZ.png.

thanks regards

veerendra

0 Likes

Hello Veerendra,

- I had mentioned you earlier that the suggested method does not work on Windows 10 because the driver loses the signature.

- On WinXP or Win7, the suggested procedure works fine by force binding the driver.

- On WinXP, modify the INF file with the below statements.

Class=Image

ClassGUID={6bdd1fc6-810f-11d0-bec7-08002be2092f}

After this modification, update the driver from the device manager.

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

hi srnt,

i tried in windows XP also OK i will check once again in xp and inform you.

thanks regards

veerendra

0 Likes
Anonymous
Not applicable

hi srnt,

             i modified and installed in the windows Xp but it is detecting as imaging device but when we will run VLC player. There it have to detect as captured device but it is not detecting why Can you explain.

and also you are saying that above Xp (windows 7,8,10 and above )it will not work  because they will loose the signature . now can you guide if we want to do it for Xp And above what we have to Do ?

thanks regards

veerendra

0 Likes

Hello Veerendra,

VLC player cannot access the device since it is bound to Cypress provided driver. Modifying the INF file as mentioned will only make the device come under Imaging Devices section but the host applications like e-Cam View or VLC player cannot access the device.

In order to use these host applications, the device must be configured as a UVC class device and not as a vendor class device. The device then gets bound to the Usbvideo.sys driver.

For use of unsigned drivers in Windows 10 and above, the driver needs to be tested using WHQL and logs must be submitted to Microsoft for certification. Please refer to the below document.

Driver Signing | Microsoft Docs

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

hi srnt,

             i will check once with uvc class and inform you .if any body  did this already   can you attach the sample source .

best regards

veerendra

0 Likes

Hello Veerendra,

I have already posted the link for the UVC class based implementation of FX2LP and I post it again here. Kindly, refer to the same.

USB2.0 Camera Interface Using FX2LP™ and Lattice CrossLink FPGA - KBA222479

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

hi srnt,

            I have changed the DSCR.A51 as mentioned in the document which you are suggested

when changed the dscr and programed via ram the end points are not enumerating  . image of control center after programing is attached 122.jpg

Thanks regards

veerendra

0 Likes

Hello Veerendra,

When you are using UVC class, Cypress USB Control Center cannot access the device. Control Center can only access devices bound to the CYUSB3 driver. You can use any Windows applications such e-Cam View to view the device.

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

hello srnt,

                  Its fine what you said but the device is looking  as i attached below if it is like that mean the device not detected properly i think  can you check once.

0 Likes

Hello Veerendra,

I don't find any attachment. Can you please recheck?

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

hello srnt,

you can find the attachment  now . can you check once.

                vv.JPG

best regards

veerendra

0 Likes

Hello Veerendra,

I believe you have modified only the dscr file and not the firmware. It should be noted that the firmware must handle the UVC class requests in order to use the device. Also, please note that, in order to use the UVC class, each packet must be added with a UVC class header. In the document that I have mentioned, this header is added in the FPGA. I don't think you have an FPGA in your design. So, the UVC class header must be added in the FX2LP. This will reduce the throughput of the video stream.

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

hello srnt,

                yup just i changed the diskcryptor but how to add headers and packets and where to add i am not getting .can guide me to change it??

0 Likes

Hello Veerendra,

Please look into the document that I mentioned. It implements the FX2LP in UVC class with the request handling. In the firmware project associated with the document, look for the HandleVideoStreamRqts() function. This handles the UVC class specific requests.

Also, I recommend you using the vendor class implementation, since you have the host application and the firmware already built. Also, using UVC implementation on FX2LP without FPGA would reduce the fps drastically since AUTO mode slave FIFO cannot be used.

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

hello srnt,

                 

thanks for your suggestion i will go through documents .  and  what about that warning mark in device manager  we have to install some drivers for that ? or after installing E cam it will get Update ?? .

thanks regards

   veerendra

0 Likes

Hello Veerendra,

The warning is because of the error in the firmware as it failed to handle the UVC class requests. Modify the firmware to implement the same and check.

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

hello srnt,

                There is no error in the Firmware . Are  you telling about UVC Class Implementation in the Firmware?

 

best regards ,

veerendra

0 Likes

Hello Veerendra,

Please check if you have handled the UVC class requests in the firmware.

Also, please capture the USB traces if possible using a protocol analyzer such as USBLyzer.

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

hello srnt,

                 I checked with usb Lyzer but  its showing like as attached the image123.JPG

thanks regards

veerendra

0 Likes

Hello Veerendra,

Please click on 'Capture' before connecting the device. There should be some enumeration requests from the host and response from the device. Kindly, capture those.

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

hello srnt,

                 we have stopped  UVC with FX2LP Because of of reduced through put.

At the same time Started the work on fx3 using Usb video class basic example . when i loaded the program via ram programing is succeeded and the device is enumerated as the Usb . and captured in VLC in Vlc some dummy images came . but in control center we there is any endpoints . is it same  as you told early in the Fx2LP control center?. please refer  attachments of Device manager , control center And VLC player.

let me know if did correct or not?.vlc.JPGdevice_manager.bmpcontrol_center.JPG

0 Likes

Hello Veerendra,

Yes, as I had mentioned earlier. UVC class devices will not be seen on the Control Center.

Best regards,

Srinath S

Anonymous
Not applicable

Hello srnt,

                   but we want to communicate with FX3 by sending some commands by using out end point as option was there in the  basic control center using slavefifo firmware/bulkloopauto etc. can you guide/ help me to do this. if you can it will be very helpful.

and also can you please conform the data format coming out from UVC class is it raw or YUV2 or Raw

if YUV2 , what is best way to receive raw data.

thanks regards

veerendra

0 Likes
Anonymous
Not applicable

hello srinath S,

                         if we want to add endpoints in control center like bulkIN bulk out  along with uvc . what i have  to do can you explain.

thanks regards

veerendra

0 Likes

Hello Veerendra,

I hope your query on this has been answered in how to generate bulkin and bulk out endpoints in control center along with the UVC class added in ...

Best regards,

Srinath S

0 Likes