USB superspeed peripherals Forum Discussions
Hello Guys,
I am presently using cypress sdk 1.2.3.
I am trying to program a slave fifo sync firmware with a FPGA.
I am observing my flags on my oscilloscope.
1st Problem: with cypress control center, when I try to transfer a file out using cypress control center.
I can see that bulk out transfer successful but no flag changes.
2nd problem. when I send data using Tranfer data out in control center we normally generate only zeroes. and I can see the zeroes recieved correctly in my FPGA. But when I send some hexadecimal (Data to send(Hex)). I recieve in FPGA only 0xFFFFFFFF all the time..(FLAGS WORK PROPERLY IN THIS CASE WHEN DATA TRANSFER OUT IS USED)
What might be the problem.
Any suggestions.
Regards
Pruthvi Raj
Show LessI am getting this error while using ISOCH transfer at 3 transactions per micro frame.
I read through this link provided at cypress forum which offers a possible solution to this problem
http://www.cypress.com/?id=4&rID=47052
Here a possible solution is given that when AADJ bit is set then this issue will be solved, can anyone pls tell how to set this bit to avoid PID related errors
Thanks
Rags
Show LessHello,
I upgraded to SDK 1.2.3 today. However, the USB Video Class Example doesn't work. There are 2 problems that I've encountered:
1) Eclipse gave an error when building the project, sth about ELF2IMG is not correct. I have to use cmd to run it manually. Here is the commands that I used
cd C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.2\util\elf2img
elf2img.exe -i C:\Users\pnp29\workspace\USBVideoClass\Debug\USBVideoClass.elf -o C:\Users\pnp29\workspace\USBVideoClass\Debug\USBVideoClass.img
2) After converting the elf to img, I loaded it onto FX3 using USB Control Center. However, when I use the Image Acquisition Toolbox in MATLAB to view the images, MATLAB doesn't recognize the FX3. In the past (before 1.2.3), MATLAB recognizes FX3 and play the images (the Cypress Cup) just fine using the USB Video Class img file.
I'll be very grateful if anyone can give me some suggestions on how to fix this issue.
Regards,
Phuc
Show LessAfter upgrading the SDK from 1.2.1 to 1.2.3, it looks like the BulkStream example firmware (1.2\firmware\basic_examples\cyfxbulkstreams) isn't responding to any In/Out transactions with NRDY/ERDY (as observed comparing the newer vs older hardware trace). The firmware's AppThread is producing debug messages 1/second, but it's like the streams I/O is messed up. With the same example build using the 1.2.1 SDK, it works beautifully. In my app/driver, with the new firmware, the HCI is reporting an XACT error, which seems to be the correct thing to do if NRDY/ERDY is missing (1.2.1 firmware is OK). I've attached screenshots of the HW analyzer trace of the working 1.2.1 firmware and the broken 1.2.3 firmware. I scanned the source of the two files side by side, but couldn't see any obvious difference that would have a functional impact.
Is there anyone running the BulkStream example firmware with the latest 1.2.3 SDK?
Thanks,
Perry
Show LessHi,
As I described in another thread, I can change the GPIF width at running time, but the setting does not take effect immediately. It becomes effective with the second packet after the change. I don't know why this happens.
Another issue is that I failed to change PIB clock at running time. I destroyed the DMA channels and called CyU3PPibDeInit and then call CyU3PPibInit to set new frequency and create DMA channels again. I found that the PIB clock is changed, but the GPIF has no output when there is out packet from USB endpoint.
Anyone has any idea on above issues?
Thanks,
Rover
Show LessI have modified the AN75779 example to use Isochronoushttps://www.google.dk/search?hl=da&newwindow=1&safe=off&client=firefox-a&hs=ua&rls=org.mozilla:da:official&spell=1&q=isochronous&sa=X&ei=-bZ-UNeBHdHPsgad0IGwDQ&ved=0CB8QvwUoAA.
It runs fine as long as isoPkts is 1.
In order to utilize the full UVC bandwith I tried to increase the isoPkts to 3.
My USB analyzer shows that the ISO USB packages are correct (PID = DATA2) while sending the frame data, but in the blanking period zero length ISO packages are sent with wrong PID = DATA2, this should have been DATA0.
I know the issue with FX3/FX2 bad PID behaviour when isoPkts is above 1 and sending too small packages, this is explained very good by Cypress in AN4053.
I got the advice from Cypress to reconfigure the endpoint dynamically but when doing this while streaming the USB layer just breaks down.
I reconfigured the endpoint by caling the CyU3PSetEpConfig.
Does anybody had any luck modifying the AN75779 example using variable isoPkt ?
Thanks
Tomasz Valdman
Show LessHello,
I have a system where a user mode application sends data through a driver to the FX3, which then sends data to an FPGA via the GPIF2 bus. The FPGA can buffer data but it consumes exactly 100MB/s. The FPGA is capable of pulling data out of the FX3 when it needs it, however I'm uncertain how/when I should send data to the FX3.
In case the driver sends too much data, the FPGA buffers will get filled up, then so will the FX3's buffers. What happens at that point if the driver attempts to send any more BULK OUTs? Is there anything that can be done to make BULK OUTs not be transmitted if there is no room left in the FX3's buffers?
Show LessHi! I'm trying to test the FX3 DVK using USBBulkLoopAuto as suggested in AN75705,
but cannot find any Eclipse workspace directory neither USBBulkLoopAuto.IMG.
All I have is:
...\EZ-USB FX3 SDK\1.2\firmware\basic_examples
with:
cyfxbulklpauto_cpp and cyfxbulklpautoenum
folders wich contain file with extensions different from .img
Where can I find USBBulkLoopAuto.IMG?
thank you!
Show LessHi,
In my application I have a FPGA connected to the GPIF port of the FX3 device. I want to have an uninterrupted data flow between the FPGA and FX3 (data to send to the host) and I understood that I need to use two GPIF sockets to switch between buffers without latency.
I want :
- use the FIFO write configuration to have the possibility to switch sockets with the A0-A1 address lines,
- use the DMA AUTO mode to maximize throughput ,
- only one IN end point.
So, my questions are :
- first of all, is that the right way ?
- and, can I use only one channel of the DMA mechanism (and this is it that changes automatically between socket) or I have to use the DMA multi-channel mechanism to transfer data from the two GPIF sockets to my IN end point ?
Thanks,
Vianney
Show Less