USB superspeed peripherals Forum Discussions
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.
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/648463
Show LessCYUSB3014 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
Hi 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 LessThe 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 LessHello,
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;
}
The image is part of my state machine, the data bus is 32 bits. When watermark is set to 1 4-bytes-word, the state machine works well. In this case, the GPIF can continuously transfer data to DMA with no data loss.