USB superspeed peripherals Forum Discussions
Hello,
we're working with a multi-channel manual-out dma on the FX3, but we noticed that wrapping up a 32 Kb buffer takes very long time (CyU3PDmaMultiChannelSetWrapUp takes 160 us while a single CyU3PDmaMultiChannelCommitBuffer takes about 10 - 20 us).
Is there a way to speed up the wrap up? Why does it take so much?
Thank you very much.
Gianni
Show LessI have a design with a USB OUT sending data to a p-port consumer. Its in auto dma mode. I decided to add the PIB interrupt code from the Designing with the EZ-USB® FX3™ Slave FIFO Interface app note to check that there are no errors. When I ran the design I am getting CYU3P_PIB_ERR_THR0_RD_UNDERRUN errors. The thing is I am not using thread 0 as the consumer is on thread 3. Anyone know why this would occur?
Thanks
Jon
Show LessHi,
I'm working on a composite device that includes a HID interface, which requires an 8 byte MPS (max packet size) interrupt IN endpoint to send data. The problem is that, when the FX3 is running a super speed, it always sends out more data than the MPS. Specifically, the DMA buffer minimum size is 16 bytes, so it sends 16 bytes, which causes a bus error (and the host controller resets the device). The HID data payload is 16 bytes total, so one might think that just upping the MPS to 16 bytes would work, but the OS's generic HID driver is submitting two 8 byte URBs regardless of the MPS setting, which will then fail with a babble error. This problem doesn't exist when the FX3 is running at high or full speed (using same DMA/buffer firmware code, the device sends in two 8 byte packets). I also threw together a vendor specific (non-HID_ interrupt IN endpoint interface and replicated the problem at 8 bytes (16 bytes is OK since I have control and can submit a 16 byte URB). In any case, AFAICT at this point, this is a bug in the FX3. I haven't found any release notes listing this issue and I'm using the latest 1.2.3 SDK.
Is there any other way I can force an 8 byte packet at super speed or any other workaround for this problem?
Thanks,
Perry
Hi,
I followed the manual to make a new project. But I found that the project is empty. There is nothing at all. Should the Eclips generate a framework or I have to do it by myself? I'm using the latest SDK (v1.2.3). Thanks!
Regards,
Rover
Show LessIf I only want to to use the FX3 as a USB 3 device can I leave the USB 3 descriptors out? I tried doing this but I got an error code 68 when I tried running the code.
Thanks
Jon
Show LessI need to be able to send 4 bytes out of the FX3 when a request comes from the host. I am using an audio feedback application. I have exerprimented by using the firmware project USBBulkSourceSink. I changed the endpoint config as below
I am building an audio device and the host sends some class specific requests. I have added some code to CyFxUVCApplnUSBSetupCB () to handle these. The host sends two requests but only the first gets handled by the function (I have a print statement so I can see when it gets called). Do I have to do anything special apart from set isHandled = CyTrue.
Thanks
Jon
Show LessI am using trying to get the slave fifo design from the app note working. I am using my own verilog code in the FPGA. I have managed to get the read from the slave to work and I can transfer 512 bytes into the FPGA. With the write I have flag a as the DMA ready for thread 0. I write 512 bytes into the buffer but the flag never changes. I have also tried it as the current thread ready and the A1:0 pins set low, but still nothing. Anyone have any ideas what could be the problem.
Thanks
Jon
Show LessThere may be a possibility calling CyU3PDmaChannelGetStatus() and then comparing prodXferCount vs consXferCount.
However, I am wondering if there is a better solution, like some flag that is set once a DMA buffer overun occurs.
-Silvio
Show Less