USB superspeed peripherals Forum Discussions
Is there any chance to get cyusbserial.dll compiled with .NET compatibility (so that it can be used in .NET project)? Or any other solution (e.g. .NET wrapper)?
Show LessHi,
I add a new HID interface into UVC sample code,
(refer the "http://www.cypress.com/?rID=72422")
In USB2.0, it's OK. (windows device manager has detect a new HID device),
But in USB3.0, it's not work. windows device manager can't detect.
I only add the descriptor in spuer speed and high speed as below,
Do I need add another descriptor in super speed? Thanks.
--
/* Super Speed Configuration Descriptor */
#define HID
/* Configuration Descriptor Type */
0x09, /* Descriptor Size */
CY_U3P_USB_CONFIG_DESCR, /* Configuration Descriptor Type */
#ifdef HID
0xF2,0x00,
0x03,
#else
0xD9,0x00, /* Length of this descriptor and all sub descriptors */
0x02, /* Number of interfaces */
#endif
0x01, /* Configuration number */
0x00, /* Configuration string index */
0x80, /* Config characteristics - Bus powered */
//0xFA, /* Max power consumption of device (in 2mA unit) : 500mA */
0x32,
...
...
#ifdef HID
/* New Interface descriptor */
0x09,
0x04,
0x02,
0x00,
0x01,
0x03,
0x00,
0x00,
0x01,
/* HID descriptor */
0x09,
0x21,
0x01,0x01,
0x00,
0x01,
0x22,
0x22,0x00,
/* endpoint descriptor */
0x07,
0x05,
0x85,
0x03,
0x40,0x00,
0x0A
#endif
Hi Genius people,
I am new to UVC. I have little bit experience with USB devices. I am using EZ-USB FX3 board (dev kit with a MIPI sensor).
What i am trying is to create 2 separate devices with a YUV 1080p stream from each. I am trying to prototype this and followed the "USBVideoClassBulk.zip" sample code.
(This sample produces the MJPEG stream).
I modified the descriptors to have 4 interfaces with 1 control and 1 streaming interface for each stream. But my device enumeration fails and I get "reset" request from the Windows PC. Can any one help me with some tips and sample descriptors.
I really appreciate all the help and support.
Regards,
Ragini
Show LessHi,
I want to make CX3 receive MIPI sent from my ISP chip directly and stream video through USB3.0 using e-CAM tool.
Which means, I don't need the CX3 send I2C to initialize the sensor.
I've configured the sensor and bypassed the "cyu3imagesensor.c" and "cyu3imagesensor.h" by commenting them.
But the video stream didn't come out, and also the UART didn't print any frame count there.
I've done some hardware debugging (oscilloscope) and confirm that the MIPI signal is successfully received by CX3.
And also do UART debug print to check
the result I get from debug print :
(power on the CX3)
bRType = 0x81, bRequest = 0x0, wValue = 0x0, wIndex = 0x0, wLength= 0x2
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x100, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x0, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0xA1, bRequest = 0x87, wValue = 0x1400, wIndex = 0x100, wLength= 0xA
bRType = 0xA1, bRequest = 0x81, wValue = 0x200, wIndex = 0x0, wLength= 0x1
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x100, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x0, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0xA1, bRequest = 0x87, wValue = 0x1400, wIndex = 0x100, wLength= 0xA
bRType = 0xA1, bRequest = 0x81, wValue = 0x200, wIndex = 0x0, wLength= 0x1
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x100, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x0, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0xA1, bRequest = 0x87, wValue = 0x1400, wIndex = 0x100, wLength= 0xA
bRType = 0xA1, bRequest = 0x81, wValue = 0x200, wIndex = 0x0, wLength= 0x1
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x100, wLength= 0x0
StpCB:In SET_FTR 0::1
AppInit:GpifSMStart passed
(Open e-CAM after powering up CX3)
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x0, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0xA1, bRequest = 0x87, wValue = 0x1400, wIndex = 0x100, wLength= 0xA
bRType = 0xA1, bRequest = 0x81, wValue = 0x200, wIndex = 0x0, wLength= 0x1
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x100, wLength= 0x0
StpCB:In SET_FTR 0::1
EnterSuspendMode Status = 0x0, Wakeup reason = 0x8
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x0, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0xA1, bRequest = 0x81, wValue = 0x100, wIndex = 0x1, wLength= 0x22
bRType = 0x21, bRequest = 0x1, wValue = 0x100, wIndex = 0x1, wLength= 0x22
bRType = 0xA1, bRequest = 0x81, wValue = 0x100, wIndex = 0x1, wLength= 0x22
bRType = 0xA1, bRequest = 0x83, wValue = 0x100, wIndex = 0x1, wLength= 0x22
bRType = 0xA1, bRequest = 0x82, wValue = 0x100, wIndex = 0x1, wLength= 0x22
bRType = 0x21, bRequest = 0x1, wValue = 0x300, wIndex = 0x1, wLength= 0xB
Set cur Still probe index = 1
bRType = 0xA1, bRequest = 0x81, wValue = 0x300, wIndex = 0x1, wLength= 0xB
Get cur Still probe index = 1
bRType = 0xA1, bRequest = 0x82, wValue = 0x300, wIndex = 0x1, wLength= 0xB
Get cur Still probe index = 1
bRType = 0xA1, bRequest = 0x83, wValue = 0x300, wIndex = 0x1, wLength= 0xB
Get cur Still probe index = 1
bRType = 0x21, bRequest = 0x1, wValue = 0x300, wIndex = 0x1, wLength= 0xB
Set cur Still probe index = 1
bRType = 0xA1, bRequest = 0x81, wValue = 0x300, wIndex = 0x1, wLength= 0xB
Get cur Still probe index = 1
bRType = 0xA1, bRequest = 0x82, wValue = 0x300, wIndex = 0x1, wLength= 0xB
Get cur Still probe index = 1
bRType = 0xA1, bRequest = 0x83, wValue = 0x300, wIndex = 0x1, wLength= 0xB
Get cur Still probe index = 1
bRType = 0x21, bRequest = 0x1, wValue = 0x300, wIndex = 0x1, wLength= 0xB
Set cur Still probe index = 1
bRType = 0xA1, bRequest = 0x81, wValue = 0x300, wIndex = 0x1, wLength= 0xB
Get cur Still probe index = 1
bRType = 0xA1, bRequest = 0x82, wValue = 0x300, wIndex = 0x1, wLength= 0xB
Get cur Still probe index = 1
bRType = 0xA1, bRequest = 0x83, wValue = 0x300, wIndex = 0x1, wLength= 0xB
Get cur Still probe index = 1
bRType = 0x21, bRequest = 0x1, wValue = 0x200, wIndex = 0x1, wLength= 0x22
AplnStrt:SMState = 0x2
And it stucks here without any video stream.
Usually if it start streaming it'll print out :
"Prod = %d Cons = %d Prtl_Sz = %d Frm_Cnt = %d Frm_Sz = %d " etc.
I couldn't spot any suspicious activity from these print outs,
Any suggestions ?
Is it because I done something wrong on the bypassing part?
Something like the stream request is waiting an ACK which will never been sent because I commented some essential part?
Attachment is the project I'm currently working on, please have a look.
Thank you,
Paddy
Show LessHi,
We have a project to transfer the BT.656 signals to the NVIDIA Jetson TX2 via USB. And we are considering using FX3 in this project. Did anyone try connecting bt.656 to FX3. thanks
Show LessI have used CYUSB3014-BZX in my project, the device enumerated as "Cypress FX3 USB BootLoader Device" when the first time power on.
Then I download img file to RAM.The control center shows programming successed.
Usually, it should be reenumerated as a new device imidiated immediatly after that.
But nothing happened in my application,the window stoped like this.
Does any one have met this situation? And what should I do to solve this problem?
Show LessHi All,
However I'm using FX3 controller for USB3.0 functionality at connected FPGA using 32-bit sync-slave fifo implementation, I need to read/write 1-wire EEPROM chip which is connected with one of GPIO pin of FX3. Idea is like user can read or write some info from/into 1-wire EEPROM using vendor commands.
I've implemented 1-wire communication protocol on GPIO to read/write EEPROM, but it is not consistent result, out of 10 times wire 16 bytes data into EEPROM and read back same data, 5 times it gets failed. I have used following APIs for making GPIO input/out and for timing purpose:
[1] CyU3PGpioSetSimpleConfig() for pin direction, input or output.
[2] CyU3PGpioSetValue() to transmit 0 or 1 when pin is in output
[3] CyU3PGpioGetValue() to read pin state when it is used in input to read data & ack from EEPROM.
[4] CyU3PBusyWait() to emulate timing need as per protocol.
However, I have doubt that there might be due to timing criteria related issue, sometime EEPROM doesn't respond properly. And these issue might be because of I'm using these library calls which itself can give some overhead.
So my question is that is there any way to resolve/implemente this protocol using very low level programming along with my original firmware for slave-fifo ? Can I mix threadex RTOS based slave-sync fifo implementation and any low level GPIO toggle and timing need ?
I hope that any help will make me move ahead.
Thanks,
Premji
Show LessDear all,
I spent some time to learn about FX3/FX3S. My application is to acquire data from ADC through GPIF II, then send them to USB 3.0 and an SD card. The throughout is 1.675 MBytes/s (13.4 Mbits/s). Before starting the real things, I would like to ask you some questions:
- Is it possible to store real files (such as .CSV) in the SD card or only raw data? Is the FX3S powerful enough to give data a real file format?
- An acquisition cycle will be 256 clock cycles, but I will acquire data only during 104 cycles (4 chan x 24 bits + 8 other bits). Not every ADC channel will be enable all the time so some data must be removed. So I have 2 choices:
- Processing data while in the DMA buffer (removing data from disable channels)
- Tell the state machine how many clock cycles it has to get data by reading a firmware variable. If I understand correctly, this is NOT possible to implement in GPIF II state machine.
So, does removing disabled channel data take lots of CPU ressources? Would the FX3(S) be powerful enough?
- My last question, I tried to measure the PCLK of a Master Sync GPIF II project (AutoMaster from AN87216) but the pin stay at high level. I use only one USB3.0 kit, I don't have any slave. Is it normal? I expected to measure a 100 MHz clock...
Best,
Christian
Show LessHi,
I have been working with a camera. I have used the UART in the CX3 for communicating with another board (in Reg mode). The UART communication takes place in a separate thread with a timeout of 1 sec(set using the CyU3PUartSetTimeout() API). During successful UART communication no problem is observed. But whenever there is a failure in the UART comm (i.e API returns TIMEOUT error) the streaming gets paused (or reduced to 1 r 2 fps in some cases) for 1- 2 secs and then continues normal operation. UART comm and UVC transfer are done in separate threads. Is there any way to prevent the UART communication from affecting the UVC thread??
Thanks in Advance,
Regards,
Ashlin Surey. A
Show Less