USB superspeed peripherals Forum Discussions
text.format{('custom.tabs.no.results')}
hi,
I have a question about EZ USB FX3 .Now I have a 10 Ms/s,12 Bit ADC,which has four channels,and the data is 13 bit,including 1 bit clock.Now I want to use the Fx3 to transfer the data to PC via the usb3.0 by time division multiple access. So,I want to know how to connect the FX3 board with my ADC? Or I can take a photo with my connection. I wonder if you can help me check with it. Thank you !
regards,
Alex
Show LessHi all,
We have noticed that FX3 PHY errors count is in strong correlation with activity on GPIF interface. Until data is handled inside FX3, typically errors count stays 0. But if FX3 itself or external FPGA starts to output data to GPIF bus, PHY errors appear.
The actual errors rate depends on host chipset type, USB cable length, GPIF interface voltage, etc. Definitely the host plays significant role here - I have a PC with Intel USB chipset on motherboard where the tests can run weeks without any PHY error (if I use short cable and plug the device into right port).
But most important - with appearing PHY errors most probably sooner or later the SuperSpeed communication fails.
According our experience, also FX3 clock signal quality has significant impact on errors count. You have to keep clock traces on PCB as short as possible (do not even think to clock two chips with same clock!). Otherwise the effect is similar - PHY errors and communication failure.
Next is an excerpt from Cypress tech support response:
>>>
These errors are not part-part dependent, but channel, activity or noise dependent. A noisy set up will produce more of these errors compared to a quiet or less-noisy set up. More activity in the chip may lead to more noise and more of such errors. However, the layers of the communication protocol (USB) are designed to recover from such dynamic errors. IO toggling results in substrate noise. If you see there are 1336 PHY errors with 3.3V IO supply, 42 PHY errors with 1.8V IO supply. Lowering the supply voltage reduces the substrate noise.
<<<
I definitely agree with tech support. Few PHY errors can be considered natural at SuperSpeed rates. And USB protocol should recover from such errors. But my concern is that in practise USB communication with FX3 fails. Even with perfect host, if you lengthen the cable a bit so that PHY errors start to appear, also the communication starts to fail. I.e. in practise it does not recover from (FX3) PHY errors.
dreitz posted in "SuperSpeed interoperability with USB 3.0 controllers" topic:
>>>
We are using a LeCroy AdvisorT3 to look at the USB 3.0. We are seeing what they call Interpacket Symbols - IPS, but we never see any bad CRCs or other data. It only shows Unknown Packets as a problem. It's like the FX3 starts spewing garbage.
When using our device and the data coming from the GPIF interface, it fails. When we use our device and the USBBulkLoopAuto sample application, we do not see the garbage.
<<<
Taking all above into account, I start to doubt that FX3 itself fails USB communication due to its internal noise issues.
I attached a test for exploring the issue with Cypress FX3 DVK Device board (CYUSB3KIT-001).
Test itself is quite simple - host sends 32-bit toggling (0x00000000/0xFFFFFFFF) data to FX3 and FX3 GPIF automata outputs this data to its pins, causing pins to toggle as well.
FX3 software is built by modifying Cypress Synchronous Slave FIFO (slfifosync) example. The original GPIF state machine is replaced with new one and a Device Vendor Request is implemented for querying FX3 error counters.
Designed GPIF state machine outputs all the host sent data to GPIF pins automatically, without any external control. Plus, it fills automatically IN pipe buffers for sending to host. As there is no external GPIF clock then the automata is modified to use FX3 internal clock. GPIF II project files are located in "FX3device\GPIF II" directory.
The most of FX3 source modifications are placed between EXPLORE_GPIF_NOISE defines. Source files are in FX3device subdirectory.
Three Windows command line utilities are supplied:
1) FX3USBwrite - sends toggling data to FX3 OUT bulk pipe 0x01.
2) FX3USBread - can be used for reading data from FX3 IN bulk pipe 0x81.
3) FX3USBerrors - reads FX3 PHY and LINK errors via Control Pipe 0.
Utilities source codes are in relevant directories.
Testing scenario:
1) On FX3 board, set VIO1..VIO5 to 3.3V (higher bank voltage causes more errors).
2) Load FX3GPIFNoise.img to FX3.
3) Run FX3USBerrors from command prompt with option "-clear".
FX3USBerrors -clear
This reads FX3 error counters and resets them to 0.
4) Read errors with FX3USBerrors several times without "-clear" option. Hopefully error counters stay 0.
5) Start sending data to FX3 by launching FX3USBwrite.
6) Read errors. Hopefully you will see errors appearing. Few errors per tens of minutes should guarantee USB failure. Leave FX3USBwrite running. After few minutes...days it will exit with error - USB communication has failed.
7) Optionally you can launch FX3USBread concurrently as well, this may increase the probability of USB failure.
If there are no errors, try to lengthen the cable or plug FX3 into another USB port. For example, if your PC has USB3.0 ports also at front, try these.
You can also test FX3 with quiet GPIF. For that send constant data 0 to FX3 with command
FX3USBwrite -data=0
I expect that error counters remain 0, or at least there are significantly less errors.
Note about Etron chipset/driver. Etron and FX3 just do not cooperate. USB Control Transfers fail randomly at heavy USB throughput and therefore FX3USBerrors may exit immediately with error code 31. Just retry (of course, if FX3USBwrite still runs).
Please, test your FX3 and host and give feedback. Especially if you have a set that works reliably with PHY errors. I have 4 different hosts and 2 Cypress FX3 DVK REV3 kits (+ several our own designed prototypes), but no one combination survives FX3 PHY errors.
Thanks,
kalev
Show LessHello,
I got two questions about the FX3 GPIOs.
What should I do with unused GPIO pins in my design ? Should I leave it floating ?
My second question is about the 22Ohms resistor. In the datasheet it is said that a 22Ohm should be connected to any pin driven by the GPIFII interface. I thought that any other pin should not be connected to that resistor but I saw in the Superspeed explorer kit schematics that a 22Ohm resistor is also connected to the UART and SPI pins. What should I do ?
Show LessHello,
I have a 16-Bit ADC that samples a signal with 100 MHz. It has a parallel output, CMOS 2,5 V. I want to store the data on my pc using the fx3 explorer kit. Are there any example projects, I can refer to ? I'm not a programmer, so I'm thankful for any help.
Regards
Show LessDoes anyone have the integrated jtag debugger on the SuperSpeed Explorer KIt (CYUSBKIT-003 FX3) working on version 1.3 of the Cypress EZ suite? I followed the directions in the User guide, but it's a little out of date (e.g. I noticed file paths had changed). Once, I figured out where things had been moved I got Eclipse confgiured; however, when I run the debugger I get the following error
"localhost:3333: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond."
Are there any changes that need to be made to to the debugging setup?
Show Less
Hi,
When I transfer the data by using XferData, this function does not work after abnormal situation what the data transfer not finish.
I've looking the solution to resolve this hang problem .
I used reset or reconnect functions of CYAPI, But they useless..
if (!(USBDevice->BulkInEndPt->XferData(_Orgin_Pixel_, len)))
{
USBDevice->ReConnect();
USBDevice->Reset();
}
Currently now I just turn off and on the FX3KIT.
How do I resolve this problem.??
and the below is what I just watch the information
- USBDevice->BulkInEndPt 0x00762fb0 {...} CCyBulkEndPoint *
- CCyUSBEndPoint {hDevice=0x000001bc DscLen=7 '\a' DscType=5 '\x5' ...} CCyUSBEndPoint
+ __vfptr 0x00ca8224 {isp1.exe!const CCyBulkEndPoint::`vftable'} {0x00c916ea {isp1.exe!CCyUSBEndPoint::BeginDirectXfer(unsigned char *,long,struct _OVERLAPPED *)}, ...} void * *
hDevice 0x000001bc void *
DscLen 7 '\a' unsigned char
DscType 5 '\x5' unsigned char
Address 129 '?' unsigned char
Attributes 2 '\x2' unsigned char
MaxPktSize 16384 unsigned short
PktsPerFrame 1 unsigned short
Interval 0 '\0' unsigned char
ssdscLen 6 '\x6' unsigned char
ssdscType 48 '0' unsigned char
ssmaxburst 15 '\xf' unsigned char
ssbmAttribute 0 '\0' unsigned char
ssbytesperinterval 0 unsigned short
TimeOut 10000 unsigned long
UsbdStatus 3221291008 unsigned long
NtStatus 3221225760 unsigned long
bytesWritten 0 unsigned long
LastError 997 unsigned long
bIn true bool
XferMode XMODE_DIRECT (1) XFER_MODE_TYPE
Hi,
Does the CYUSB3014-BZXC IC support USB3.1 Gen1 standard? We have tried the sample code, Cyfxisosrcsink, and works with USBbcd 3.0. However, we changed the USBbcd to 3.1, but it doesn't work(streamer can't receive data from device anymore), Do Cypress have any suggestion?
Thanks.
BRs
SparkChou
Show LessDear Sir,
I am using CX3 to develop a UVC camera with SONY sensor, I have sensor settings now, just wonder where I can find a sensor C file template, so I can add sensor settings to that C file to power on the camera?
Thanks,
Wang
Show Less