Cypress GPIF: Bulk read error

Guys,

I am working with a Cypress EZ-USB FX2 prototyping board connected to an Omnivision camera chip that spits out data far faster than the GPIF's Endpoint buffers are programmed to handle. The Keil uVision compiler is used for the firmware and libusb 0.1.12.0 for enumerating the USB devices at the PC end.

I am using Control Requests, (or Vendor Requests in GPIF parlance) to communicate with the development board and the Camera chip. These work find for turning LEDs on and off and sending the Camera chip to sleep etc. However, when I attempt the bulk read transer below, I get the following error message:

Bulk Read Vendor Request failed (-22). usb_submit_async: submitting request failed, win error: The parameter is incorrect.

I have checked the parameters of the usb_bulk_read() call and I don't find any obvious discrepancies, so I assume that there is a problem with my firmware.

Could someone please offer me a code snippet for buffering Camera output on the GPIF chip, (if that is what the problem is).

Thank you for your time, Gavin Brewer.

Reply to
Gavin Brewer
Loading thread data ...

I found a similar problem trying to talk to an fx2 using libusb-win32.

I found that it was necessary to call usb_set_configuration() before calling usb_claim_interface(), otherwise I would get one of these paramater is incorrect errors.

You can find which configuration you want from the libusb test program. I think maybe it was configuration 1... don't remember exactly.

I suspect that this call may not be necessary in some versions of libusb (or maybe under linux) as I had started with allegedly working code... but it didn't work for me until I added that - I could use vendor commands to program the chip, but then couldn't talk to it via the bulk transfers.

Reply to
cs_posting

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.