USB superspeed peripherals Forum Discussions
I'm working on a pcb layout which uses the USB3.0 Standard A Female Connector. Its pin definition is different from USB3.0 micro-B, How should I connect the USB3.0 differential pairs between the connector and CYUSB3014?
Please check out the attachment for more details.
Best Regards
Cycad Hsu
Show LessHello,
In my UVC firmware,the brightness,Hue,AWB controls are supported,but when I use AMCap or VirtulDub to have a control,the correct Hue and White Balance Temperature data can not be displayed. The debug printed info and Bus Bound show the returned data is right, but the data displayed in AMCap or VirtulDub is not correct,and the attached pictures show the error data, what problem would it be.
Best Regards.
Leon
Show LessHi,
I'm running into a strange problem with my installation of the FX3 SDK on my Linux system (CentOs7).
When trying to compile the examples, the assembler parts of the compilation can't recognize the target CPU.
To show an example output:
arm-none-eabi-gcc -g -DTX_ENABLE_EVENT_TRACE -DDEBUG -DCYU3P_FX3=1 -D__CYU3P_TX__=1 -I. -I../../../fw_lib/1_3_3/inc -O0 -Wall -mcpu=arm926ej-s -mthumb-interwork -ffunction-sections -fdata-sections -c -o cyfxbulksrcsink.o cyfxbulksrcsink.c
as: unrecognized option '-mcpu=arm926ej-s'
I verified that the correct compiler is used (arm-none-eabi-gcc --version yields arm-none-eabi-gcc (Sourcery CodeBench Lite 2013.11-24) 4.8.1) and checked if I followed all installation steps, but I couldn't find an error.
So I tried the SDK on a Windows machine where it works fine, but the compiler is essentially the same version.
Did anyone have the same problem or has an idea what could be the issue here?
Thanks
Matthias
Show Less大家好:
首先介绍下自己的问题。我使用FPGA通过CYUSB3014芯片slave fifo接口发送数据至PC。
PC端收到的每帧数据之间的间隔时间太长(即每个fifo的数据),于是我测量了下flagb的
信号见附件。可以看出,flagb信号的低电平持续时间为270ms,这个时间太长了,远远满
足不了项目需求。
我的问题是:
1. 何种原因造成flagb低电平持续这么久?(即fifo满标志持续时间)
2. 可疑问题定位有哪些?
3. 有什么解决方案吗?
祝好
Show LessI read the AN75779: "How to Implement an Image Sensor Interface Using EZ-USB® FX3™ in a USB
Video Class (UVC) Framework" pdf. The document mention there is a code attached (zip file) to this application note includes a file, GPIF II Designer/ImageSensorInterface.cydsn.
I not able to find the attached file(s) (nothing else just the pdf file).
I can't find the link on the Cypress web site.
Please, help me where can I find the zip file contains the attached code source files ??
Thanks in advance,
Best Regards,
Péter
Show LessHello,
I try to use interrupt endpoints IN to send data and debug messages to the host. After several tries I was able to receive some messages with Control Center. During my unsuccessful tests I discover several thing by using the following setup:
- FX3 application = USBDebug example from Cypress homepage
- Cypress Control Center as host software to poll interrupt endpoint
- as hardware I used the Cypress FX3 Development Board and my one FX3 design.
- to debug my software and I use Cypress SDK with a J-Link debugger
As result I made following observations:
- FX3 application will hang after a while when endpoint is not polled by host. It seems interrupt endpoint is not able to consume continuously data and flushing endpoint, when data are not polled by host. This behavior is mentioned in the API Guide!?
- Observation 1 can be speed up by decreasing ThreadSleep time and/or by increasing loop increments. And I tried to save time and modified both knobs immediately an run into problems.
- When application hangs I receive error "INTERRUPT IN transfer failed with Error Code:997" Control Center
- It seems FX3 executes tx_thread_schedule () and has no reason to work on my task. Maybe FX3 is waiting for a resource ...?
As mentioned before I like to transmit debug messages through an interrupt endpoint IN, so I can not guarantee there is a host application polling and my application hang when I started testing my new feature. After several hours in investigating return codes, DMA objects and other stuff I found following post "About DMA transfer in slave FIFO", which helped me.
Disabling FX3 automatic power management by calling CyU3PUsbLPMDisable () and removing CyU3PDebugLog () or CyU3PDebugPrint () function call. This means using CyU3PDebugLog () and CyU3PDebugPrint () in the same application result in problems.
With this modifications USBDebug application is running without problems. Polling data with Control Center is still failing after some reads.
So there are some questions left where I did not found an answer or have no idea how to go ahead:
- Can someone else confirm my observations?
- Has someone else similar problems with interrupt endpoints IN? I like to save time and not to run into each possible problem!
- Why is power management blocking my application or is the CyU3PUsbLPMDisable () function call only helping and not the root cause of my problem?
- What is the difference between CyU3PDebugLog () and CyU3PDebugPrint () both are sending messages through a consumer socket. Only CyU3PDebugLog () collects several messages till the buffer is full.
- Why is Control Center failing after some read when my application uses CyU3PDebugPrint () and failing after one read when I use CyU3PDebugLog ()?
- What means error code 997 in Control Center in detail?
Thanks for your help!
Frank
Show LessDue to chapter 9 of AN75779 (How to Implement an Image Sensor Interface Using EZ-USB® FX3™ in a USB.),
it seems that we can use fx3 to connect 2 image sensors and send out images in one picture.
Unfortunately, I could hardly find any other documents about this.
I'm using Aptina MT9M034 now, and wondering to use fx3 to make a real-time camera system with 2 image sensors.
Would please give some help or documents about this?
Thank you for your help.
Show LessI've been playing around with USB speed, burst packets etc. Perhaps someone can help me understand dma buffers better and see if I have the following understood well:
1) dma buffer should be a multiple of endpoint buffer size. So lets say you have a dma buffer that is 2x the endpoint size. 2 usb packets are committed and you get one dma buffer callback with the data.
- What would happen if the buffer wasn't a multiple? Problem?
- Do number of USB buffers further affect performance much? I haven't spend much time modifying that variable.
2) burst packets allow lots more usb packets to be committed on the host side before waiting. Easy to very with speed tests.
So now with those two ideas in place, I've noticed a lot of the firmware examples use both burst packets and a 2x size multiplier. Is this just taking the concept further and allowing 2 host bursts before having to consume cpu time to handle the data?
In my testing I haven't seen much difference when burst packets were used with or without the size multiplier. Further, I haven't seen much difference with or without the size multiplier when not using burst packets. It seems to me only burst packets have made a large difference in performance.
So... am I missing something with the size multiplier?
When I use a size multiplier and I send just one usb packet that is the size of the usb buffer, I have to then send a ZLP or the dma buffer doesn't get committed. Seems I don't need that quirk in the driver without the size multiplier. Any other issues either way?
Show LessWould it be possible to use the FX3 to implement a HOST to acquire images from a USB3 vision camera? The FX3 would forward the data to an FPGA. I've seen there are multiple limitations to the HOST functionality.
Thanks,
David
Show LessI followed CyUSB3.pdf to add my own VID/PID pair to CyUSB3.inf file. But it never get work. The windows7 (64bits) always shows "Data of this type is not supported".
I did the following, none of them work. No changes to CyUSB3.sys and CyUSB3.cat
1. Add my VID/PID to the .inf and change the strings. Keep the file name as CyUSB3.inf. OR
2. Only add my VID/PID, without changing strings.
3. No changing strings nor adding my VID/PID. Just change this line
VID_04B4&PID_00F3.DeviceDesc="Cypress FX3 USB BootLoader Device"
to
VID_04B4&PID_00F3.DeviceDesc="Cypress FX3 USB BootLoader CAN THIS WORK Device"
Even for the 3rd changing, the result is still "Data of this type is not supported".
What else should I do to add my VID/PID?
Thank you.
Show Less