USB superspeed peripherals Forum Discussions
CYUSB3014 is used, and its firmware is expected to be downloaded to the EEPROM through IIC, but the download failed. The EEPROM is 24LC1025-I/SN. The following is the schematic diagram.
smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/%E8%B6%85%E9%AB%98%E9%80%9FUSB%E5%A4%96%E8%AE%BE/CYUSB3014%E7%9A%84%E5%9B%BA%E4%BB%B6%E6%97%A0%E6%B3%95%E4%B8%8B%E8%BD%BD%E5%88%B0EEPROM/td-p/648558
Show LessHello,
I am starting work with FX3 chipset, and follow appnote AP75705 example USB Bulk Loop Auto.
I have compile the code; Program the board via "Control center", I am having problem when trying to perform BULK transfer,
once I hit button "Transfer data Out" I am getting error 997:
BULK OUT transfer
BULK OUT transfer failed with Error Code:997
I have search support forums and find two similar topics:
I have tried to update driver on PC, didnt help.
I wasnt clear about how to change "endpoint timeout" at control center application, suggested in one of the postings above.
Also, if there is anything else what can be done to get the application up running, please advise at your earliest convenience.
Regards,
Stalker
Show Less
Hello,
I am now using the USB mass storage device sample to check how cyusb3014 is enumerated as a device, when I do not insert any device in the Typec port, I call cyu3pgetspeed function returns full speed, I want to know why.
there is a second question, When I use this example to insert the computer, I can identify that the u disk needs to be formatted, but when I insert the mobile phone, I can not enumerate the U disk normally, why is this.
Thank you.
Show LessHi All,
am working on ar1820 sensor with CX3 controller .
here taking raw firmware in 10 bits of depth.
it's working fine on some boards exactly out of 10, 5 are working boards and 5 are not working for the boards.
Settings Details:
4 lane - 576Mbpl[MIPI Clock]
24line - 96Mhz[Parallel Clock]
resoution - 4912x3684@9fps.
debugging steps:
1. checked error register on Toshiba
MIPI-CSI Protocol and Physical Layer Errors in CX3... - Infineon Developer Community
it looks Multi-Data Lane Sync Byte Error Count and Unrecoverable Packet Header Error .
thing is Lane sync error happens in lanes 2 and 3 alone.
is there a Lane alignment register present in the Toshiba? or any related solutions?
Thanks for your effort in this matter.
I am working on a project where we would like to connect an ADC directly to the FX3 and send to the host only alternate samples (i.e. every other sample); for instance the GPIF II PCLK would be running at 100MHz, but the samples sent to the host would be at a rate of 50MHz.
Is this possible using the GPIF II state machine? If so, do you know of a similar project to see how they did it (without using an FPGA)?
Thanks in advance,
Franco
Show LessHello,
I have implement 2 virtual com port on the FX3 development board (CYUSB003-Kit), and they are running well.
It would be nice if I can identify the port between each other, e.g. COM33(Custom_Name_XX), COM34(Custom_Name_YY).
What could I do?
Thank you
Zhangshun
Show Less
The EEPROM of the CYUSB3014-BZXC cannot be burned into the firmware using IIC, every time the burn-in fails, the EEPROM used is 24LC1025-I/SN, and the attachment is our schematic.
The EEPROM of CYUSB3014-BZXC cannot use IIC to burn firmware, and every time the firmware fails, the EEPROM used is 24LC1025-I/SN. Attached is our schematic diagram
smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/%E8%B6%85%E9%AB%98%E9%80%9FUSB%E5%A4%96%E8%AE%BE/CYUSB3014-BZXC-%E7%9A%84EEPROM%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8IIC%E7%83%A7%E5%85%A5%E5%9B%BA%E4%BB%B6/td-p/648437
Show LessHi, @Ajeethkumar_P
I have encountered the same striping case discussed on this page, under the same MultiChannel DMA conditions.
Since I am unable to comment on the above thread, I am starting a new thread here.
Is it possible for you to tell us how to configure the FX3 side to solve this problem?
* Sorry, I can't give you our in-house information right away, so I would first like to know what information you have that you can write here, if any.
Hello,
I'm debuging the USB MSC on the CYUSB3014 board, I check the demo code(USBMassStorageDemo), it define the buffer on the ram, I want to write all data into spi flash, so I change the buffer to 32KB, and modify the CY_FX_MSC_CARD_CAPACITY to 4*1024*1024, and handle the write and read operations as below, spilt the data into many slice of 4096, but it doesn't work, I attach the code, can you give some suggestions, thanks a lot.
case CY_FX_MSC_SCSI_READ_10:
{
startAddr = (((uint32_t)glMscCbwBuffer[17] << 24) | ((uint32_t)glMscCbwBuffer[18] << 16) |
((uint32_t)glMscCbwBuffer[19] << 😎 | ((uint32_t)glMscCbwBuffer[20]));
numBlks = (((uint16_t)glMscCbwBuffer[22] << 😎 | ((uint16_t)glMscCbwBuffer[23]));
if (!CyFxMscApplnCheckCbwParams (lun, CyTrue, CyTrue, CyTrue, (numBlks * glLunBlkSize),
&dataLength))
break;
glMscState = CY_FX_MSC_STATE_DATA;
for(int i=0;i<numBlks;i++)
{
CyFxSpiTransfer ((startAddr) * glLunBlkSize,glLunBlkSize, glMscStorageDeviceMemory,1);
status = CyFxMscApplnSendDataToHost ((glMscStorageDeviceMemory),
(glLunBlkSize));
startAddr++;
CyU3PDmaChannelWaitForCompletion (&glChHandleMscIn, CYU3P_WAIT_FOREVER);
}
if (status != CY_U3P_SUCCESS)
{
glMscCmdStatus = 1;
glSensePtr = CY_FX_MSC_SENSE_CRC_ERROR;
CyU3PEventSet (&glMscAppEvent, CY_FX_MSC_SIBCB_EVENT_FLAG, CYU3P_EVENT_OR);
}
else
glMscResidue = 0;
}
case CY_FX_MSC_SCSI_WRITE_10:
{
startAddr = (((uint32_t)glMscCbwBuffer[17] << 24) | ((uint32_t)glMscCbwBuffer[18] << 16) |
((uint32_t)glMscCbwBuffer[19] << 😎 | ((uint32_t)glMscCbwBuffer[20]));
numBlks = (((uint16_t)glMscCbwBuffer[22] << 😎 | ((uint16_t)glMscCbwBuffer[23]));
if (!CyFxMscApplnCheckCbwParams (lun, CyTrue, CyFalse, CyTrue, (numBlks * glLunBlkSize),
&dataLength))
break;
glMscState = CY_FX_MSC_STATE_DATA;
for(int i=0;i<numBlks;i++)
{
status = CyFxMscApplnReceiveUsbData (glMscStorageDeviceMemory,(glLunBlkSize));
CyU3PDmaChannelWaitForCompletion (&glChHandleMscOut, CYU3P_WAIT_FOREVER);
W25QXX_SectorErase4KB(startAddr);
CyFxSpiTransfer ((startAddr) * glLunBlkSize,glLunBlkSize,glMscStorageDeviceMemory,0);
W25QXX_Wait_Busy();
startAddr++;
//CyU3PDebugPrint (4, "ReceiveUsbData num = %d\r\n", i);
}
CyU3PDebugPrint (4, "MSC_SCSI_WRITE startAddr %X\n", startAddr);
if (status != CY_U3P_SUCCESS)
{
glMscCmdStatus = 1;
glSensePtr = CY_FX_MSC_SENSE_CRC_ERROR;
CyU3PEventSet (&glMscAppEvent, CY_FX_MSC_SIBCB_EVENT_FLAG, CYU3P_EVENT_OR);
}
else
glMscResidue = 0;
}
glMscStorageDeviceMemory = (uint8_t *)CyU3PDmaBufferAlloc (32*1024);
#define CY_FX_MSC_CARD_CAPACITY (4*1024*1024)
CyFxMscAppInitVars (
void)
{
glLunState = CyTrue;
glLunBlkSize = 4096;
glLunNumBlks = ((CY_FX_MSC_CARD_CAPACITY / 4096) - 1);
glSensePtr = CY_FX_MSC_SENSE_DEVICE_RESET;
glLunStopped = CyFalse;
}