USB superspeed peripherals Forum Discussions
Hello there
I designed an 8bit master state machine with GPIF design tool. I want to control the state machine to send data to the outside. This data may be a fixed data or a changing data. Now I have some problems.
1 How should I set the DMA channel? P2U? P2S? or others, I have seen some examples, but none of them seem to meet my needs
2 How can I generate data and send it out? Are there related API functions?
Here is a screenshot of the state machine I designed
Can you give me some suggestions, I look forward to your reply
Show LessWas working on some download code and hit a linker error:
somefile.cpp:829: undefined reference to `cyusb_download_fx3(libusb_device_handle*, char*)'
collect2: error: ld returned 1 exit status
after some debug found in the libcyusb.cpp the function has this prototype:
int
cyusb_download_fx3 (
cyusb_handle *h,
const char *filename)
but in the cyusb.h file in the include directory the prototype is:
extern int cyusb_download_fx3(cyusb_handle *h, char *filename);
if I change the libcyusb.cpp from "const char *filename)" to "char *filename)" and rebuild everything my code now links as expected.
Show LessI'm using a GPIF-II interface to communicate with another chip, and I have FLAGA set up to be connected to Current_Thread_DMA_ready, initially low and with active high. I'm only using 4 endpoints, so if I understand correctly, each thread corresponds to only one GPIF address and one USB endpoint, so that should hopefully keep things simple.
My chip sets the address pins to 3, and then checks the pin connected to FLAGA. Then I wait a bit to make sure the flags have time to get updated, and FLAGA is 0. This is the first time I've written anything to the endpoint, so I doubt it's full. I'm not sure what else could be making it not ready, but waiting for it more doesn't seem to help at all.
Next, as a test, I negated the check, so it only tries to send the message when the Current_Thread_DMA_ready flag is false, ostensibly meaning that the thread associated with the endpoint is not ready. That said, when I configured it that way I was able to send data to the host without any trouble. What gives?
It's possible that I'm a bit unclear about what exactly the DMA_ready flag in the GPIF-II interface means. I see a couple places in a couple manuals that say things along the lines of "This is true when the DMA is ready to send or receive data." What exactly is the criteria for "ready" though? Does that just mean the buffer has enough space to queue up a message? Does the state machine also need to be in one of the states with the DATA_IN action? Is there some other constraint?
Show LessI am working on porting some windows software over to ARM Linux and running into issues updating firmware on the FX3.
Went back to the sample programs included in cyusb_linux_1.0.5/src/ and tried to use download_fx3 to load a working image to ram.
When I run the program I get:
$ ./download_fx3 -t RAM -i ./SlaveFifoSync.img
Error: Vendor write to FX3 RAM failed
Error: Failed to download data to FX3 RAM
Error: FX3 firmware programming failed
Dumping out the return code from the first error message I get back -9 (LIBUSB_ERROR_PIPE)
If I send other control messages down to the existing firmware on the FX3 I get back the expected messages with no issues. So the hardware and overall library build looks good. Is there something I need to do first to prep the device to receive a new image from the above program?
Show LessHi
I've configured the sensor with the CX3, but now the sensor doesn't display an image. I want to find out what's wrong. First of all, I need to make sure that the correct data is written into the register of the sensor, so I want to know how to read the data written into the register of the sensor. Is there any way? I need your help. Thank you very much
Show LessAny example for reference? Thanks.
Hi,
I am trying to port a CX3 based project from SDK version 1.3.3 to 1.3.1. In SDK version 1.3.3 I am using a separate GPIF header file (cycx3gpifwaveform.h) and loading the GPIF configuration using CyU3PGpifLoad(&CyFxGpifConfig) for my project, which works fine. But if I try to do the same in SDK version 1.3.1 CyU3PGpifLoad(&CyFxGpifConfig) API call fails with CY_U3P_ERROR_NOT_SUPPORTED error. Please guide us to solve this issue.
Thanks in advance,
Vignesh Kumar R.
Show LessHi,
The goal is to test the data transfer between PC and FPGA, FX3 is used as an interface in between.
I have used the code that is provided by AN65974 with no changes.
In the loop back case if constant data is sent there comes no error, but while incremental data is sent there comes flips.
I have attached the snapshot for the reference.
Is the data capturing too fast before the next data occurs ?
Is there any way to clear this ?
Regards,
Haarika M
Show Less