- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I have a custom board with CYUSB3064 + OV5640 on it. Windows 10 by default recognizes it as CX3-UVC and installs usb driver. This driver and the board are working well - I've tested the camera capturing using VLC streaming.
Now I want to download my FW to CX3 and for this purpose I had to install cyusb3 driver from the EZ USB suite. After modifying the cyusb3.inf as described in cyusb3.pdf, deleting catalog file with hash, forcing unsigned driver, I succeed to install the driver, but I get the following error:
This device cannot start. (Code 10)
An invalid parameter was passed to a service or function.
And of course the Control Center doesn't recognize any device connecte.
What might be the problem?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Michael,
From the screenshot, I presume that your device enumerates as USB 2.0 device instead of USB3.0. That's why you don't have any other resolution option.
The reasons my be summarized below.
- The defect of hardware design(USB 3.0 differential pairs).
- You use a USB2.0 cable or a bad "USB3.0" cable.
- You connect your device to a USB 2.0 port instead of a USB3.0 port.
- You modify the defalut statement
status = CyU3PConnectState(CyTrue, CyTrue);
as
status = CyU3PConnectState(CyTrue, CyFalse);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Micheal,
Which kindl of firmware are you trying to download?Could you upload it for me to cross check?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
It's just a Cx3UvcOV5640 example project from the EZ USB SDK tutorial.
But I'm far from downloading process. The Control Center is not recognizing my device and this is most probably because the standard windows driver is not suitable for this mission. So I've just trying to bind Cypress USB driver from the EZ USB suite. And this step fails. Device Manager of Windows 10 shows that there is a problem with the driver and the reason is as mentioned below.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Micheal,
As you may know that CX3 is deliveryed out with bootloader inside. When the customer connect it to PC in the first time(USB boot), it will enumerate as FX3 USB bootloader device. It is an USB vendor device so it works with driver from Cypress(cyusb3.sys)
After you writting your UVC firmware and download it into FLASH. Set PMODE as SPI boot, CX3 will read the firmware from FLASH and tell the PC 'Hey, I am a UVC device'. The UVC device is a kind of standard USB class device. The driver is not provided by Cypress but the OS.
I am not very clear about why you modify the cyusb3.inf. I hope I can get more information from you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello and thank you for your support. Following is more detailed info.
I have a custom third-party board with no JTAG connection on it. My goal is to download new firmware to this board using USB. According to the SDK user guide, I can download new firmware using Control Center of the EZ USB SDK suite. When connecting the board to the PC for the first time, it was recognized by Windows as CX3-UVC
Now, when I run Control Center, it doesn't recognize any FX3/FX2. I assumed this happens because the driver that Control Center is using should be CyUSB3.sys:
Please, advise for the next steps.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi ,
I assumed this happens because the driver that Control Center is using should be CyUSB3.sys:
Please, advise for the next steps.
Yes, you are right. Control center works with Cyusb3.sys not usbvideo.sys.
As per your description, your device boot from FLASH or EEPROM. Please set PMODE to usb boot. Then the control center will find it.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you very much. I've succeeded to overcome all drivers issues. I'm also successfully used the Cx3UvcOV5640 example.
I have a question: the example allows different resolutions including HD depending the USB speed. My laptop's USB is USB3.0, so theoretically I can run all these configurations. But I fails to configure the resolution. I've found this function call in the CyCx3AppInit():
status = CyU3PMipicsiSetIntfParams(&cfgUvcVgaNoMclk, CyFalse);
and replaced it with
status = CyU3PMipicsiSetIntfParams(&cfgUvc1080p30NoMclk, CyFalse);
But this didn't have any effect. How/where should I configure the code to get 1080 resolution?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You don't have to replace
status = CyU3PMipicsiSetIntfParams(&cfgUvcVgaNoMclk, CyFalse);
with
status = CyU3PMipicsiSetIntfParams(&cfgUvc1080p30NoMclk, CyFalse);
We provide the example project, you could just download the firmware into CX3 RAM/FLASH/EEPROM. Open the host application, choose the resolution from list, then you could view the 1080p vide stream.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This is exactly what I do. I'm using VLC to stream from capture device. Unfortunately, it seems that VLC doesn't allow to choose stream resolution. Is there any other players that you can suggest to test the example?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Have you tried Windows' own amcap.exe? It doesn't come packaged with Windows 10 anymore, but will be there in C:\Windows folder in Windows 7...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Michael,
From the screenshot, I presume that your device enumerates as USB 2.0 device instead of USB3.0. That's why you don't have any other resolution option.
The reasons my be summarized below.
- The defect of hardware design(USB 3.0 differential pairs).
- You use a USB2.0 cable or a bad "USB3.0" cable.
- You connect your device to a USB 2.0 port instead of a USB3.0 port.
- You modify the defalut statement
status = CyU3PConnectState(CyTrue, CyTrue);
as
status = CyU3PConnectState(CyTrue, CyFalse);