USB superspeed peripherals Forum Discussions
I have a few quick questions about the Slave FIFO Sync example distributed with the SDK, v1.0.
- How are the flags configured in the example? What threads are they tied to?
- As soon as I program the cyfxslfifosync firmware onto the FX3, both flags go high. Is this expected?
- Is the GPIF II Designer file used to create the GPIF files for this example available?
Thanks!
Show LessIs it possible to increase the size of the EP0 buffer for FS and HS devices?
I see where it is set to 64 bytes in the USB descriptor C code. Can we up it to something much larger, like 512 bytes? We would like to be able to transfer larger chunks of data per vendor request.
Show LessI already have an existing installation (which i want to keep), therefore i think i cannot install eclipse package offered for FX3.
Can someone tell me which additional plug-ins / tools i need for building firmware files in eclipse?
What i found so far:
- genmakebuilder
- ScannerConfigBuilder
But where do i get them?
The second problem: How to compile a firmware file in eclipse? I often have seen a note that this is described
in chapter 11 or so, but where do i find this chapter 11?
What i have done so far: File->Import, General->Existing Projects into workspace->Next and select path of .project as root directory. Then Project->BuildProject. But nothing happens...Are my steps correct?
Where do i configure the path of the ARM compiler? Or must it be at a fixed location?
Show LessIn the Synchronous Slave FIFO example distributed with the SDK, is the FX3 driving PCLK, or is the external processor driving PCLK?
I can't find any information on this in the documentation for this example.
Show LessHow can I tell how large my program is? I'm afraid that my EEPROM may be too small.
since response transfer is additionally needed from the existing firmware example
when Control OUT (CY_FX_RQT_I2C_EEPROM_WRITE) transfer using write() function of "CCyControlEndpoint"
among CyAPI library interface classes at PC application software occurs,
following code as shown below have been added.
glEp0Buffer[0] = status;
status = CyU3PUsbSendEP0Data(1, glEp0Buffer);
However, timeout error (65) occured in CyU3PUsbSendEP0Data.
I would like to know if there is some way to get this problem solved.
/* Callback to handle the USB setup requests. */
CyBool_t
CyFxUSBSetupCB (
uint32_t setupdat0,
uint32_t setupdat1
)
{
uint8_t attr, rqt, i2cAddr = 0;
uint16_t value, index, length;
CyBool_t isHandled = CyTrue;
CyU3PReturnStatus_t status = CY_U3P_SUCCESS;
/* Parse the control request parameters. */
attr = (uint8_t) (setupdat0 & 0x000000FF);
rqt = (uint8_t)((setupdat0 & 0x0000FF00) >> 8);
value = (uint16_t) (setupdat0 >> 16);
index = (uint16_t) (setupdat1 & 0x0000FFFF);
length = (uint16_t) (setupdat1 >> 16);
/* Fast enumeration is used. Only vendor is handled here. */
if ((attr & CY_U3P_USB_TYPE_MASK) != CY_U3P_USB_VENDOR_RQT)
{
return CyFalse;
}
switch (rqt)
{
case CY_FX_RQT_I2C_EEPROM_WRITE:
i2cAddr = 0xA0 | ((value & 0x0007) << 1);
status = CyU3PUsbGetEP0Data(length, glEp0Buffer, NULL);
if (status == CY_U3P_SUCCESS)
{
CyFxFlashProgI2cTransfer (index, i2cAddr, length,
glEp0Buffer, CyFalse);
}
glEp0Buffer[0] = status;
status = CyU3PUsbSendEP0Data(1, glEp0Buffer);
break;
default:
/* This is unknown request. */
isHandled = CyFalse;
break;
}
/* If there was any error, return not handled so that the library will
* stall the request. Alternatively EP0 can be stalled here and return
* CyTrue. */
if (status != CY_U3P_SUCCESS)
{
isHandled = CyFalse;
}
return isHandled;
}
Hi!
As you know, in control centre if you want recieve data from USB3.0 port, you must click the button. now I change the Function DataXferBtn_Click to a thread including a loop so that I can recieve data persistently. but after I recieve 18 times(1024byte a time) it occurs recv timeout and error code is 997. If the thread sleep sometime (eg 50ms) it can work normally.
but the project can work if the USB port is 2.0 version and the thread does not need sleep.
And my hardware colleague confirm that there are always data in USB3.0 bord. So my problem is that why the thread need sleep sometime so that it can work?
The datarate of hardware is 1.89Gbps and the purpose of the project is to confirm that whether the data rate of USB 3.0 can reach 1.89Gbps. So the sleep of the thread above is not permited.
thank you!
Show Less