USB superspeed peripherals Forum Discussions
text.format{('custom.tabs.no.results')}
Hi all,
Is there any solution to send data from device to host continuosly?
I want to send ITP data back to host, and i need every ITP will be read at host side.
Best regards
Chong Han
Show LessHi
reading datasheets sometomes i find the word burst but i cannot figure out the difference between burst and packet. I've found a definition for burst reading the API guide:
The burst size is the minimum
number of words of data that will be sourced/sinked across the GPIF interface without further
updates of the GPIF DMA flags. The device connected to FX3 is expected to complete a burst
that it has started regardless of any flag changes in between. Please note that this has to be
set to a non-zero value (burst size is greater than one), when the GPIF is being configured
with a 32-bit data bus and functioning at 100 MHz.
but what about a packet ?
Can anyboby help me ?
Regards
Pit
Show LessI am trying to use the CyU3PDmaChannelGetBuffer and CyU3PDmaChannelCommitBuffer API to sent the data from CPU to GPIF bus manually and found it is not fast enough.
I have also used a scope to trace the output data. I found that it takes 70-80 μs to complete.
Is there a way to further reduce the running time to less than 30μs of this application like using low level DMA API?
Thanks
status=CyU3PDmaChannelGetBuffer(&AppDmaFpgaRegAccessManualOutHandle,&FpgaHostManualOutBuf_p, CYU3P_NO_WAIT);
if (status != CY_U3P_SUCCESS)
{
return status;
}
//popular the Buffer of Register Read Address
FpgaHostManualOutBuf_p.buffer[0]=(FpgaHostRegAddress&0x000000FF)>>0; /*Reg Read Address*/
FpgaHostManualOutBuf_p.buffer[1]=(FpgaHostRegAddress&0x0000FF00)>>8; /*Reg Read Address*/
FpgaHostManualOutBuf_p.buffer[2]=(FpgaHostRegAddress&0x00FF0000)>>16; /*Reg Read Address*/
FpgaHostManualOutBuf_p.buffer[3]=(FpgaHostRegAddress&0xFF000000)>>24; /*Reg Read Address*/
FpgaHostManualOutBuf_p.count=4; /**< Byte count of valid data in buffer. */
FpgaHostManualOutBuf_p.size=32; /**< Actual size of the buffer in bytes. Should be a multiple of 16. */
FpgaHostManualOutBuf_p.status=0;
status = CyU3PDmaChannelCommitBuffer (&AppDmaFpgaRegAccessManualOutHandle,FpgaHostManualOutBuf_p.count,0);
if (status != CY_U3P_SUCCESS)
{
return status;
}
//get fpga register value;
status = CyU3PGpifReadDataWords (1, CyFalse, 1, RegRrData_p, 0xF0000000);
if (status != CY_U3P_SUCCESS)
{
return status;
}
Show LessI'm working with AN75779. I'd like to see the output from the various CyU3PDebugPrint() calls. I'm not seeing much at the uart pins. Is there some initialization I need to do? What baud, parity, databits, stopbits, etc... am I looking for?
--Adam
Show LessI've installed cyusb3.sys onto Win 8.1 system.
Driver version is 1.2.3.3.
When I plug in the FX3 device, I get this message:
"The software for this device has been blocked from starting because it is known to have problems with Windows.
Contact the hardware vendor for a nex driver. (Code 48)"
So, what's the next step?
Screen captures are attached.
Show LessHi,
I am considering FX3 for my new design. It is a nice piece of hardware. I like to ask:
- I will implement a custom USB driver that takes data from my FPGA and sends to PC. The data needs to be send with high bandwidth and low latency. I would use DMA for this operation. However the datasheet says something very peciluar.
"■ As a USB peripheral, FX3 supports UAS, USB Video Class (UVC), Mass Storage Class (MSC), and Media Transfer Protocol (MTP) USB peripheral classes. As a USB peripheral,all other device classes are supported only in pass-through mode when handled entirely by a host processor external tothe device."
It appears, I have to have a second processor to handle my custom USB driver. This doesn't make sense at all.
- What type of throughput I could achieve using this IC assuming I use DMAs efficiently.
Show Less