USB superspeed peripherals Forum Discussions
Hello,
I'm using the Denebola kit, and I want to implement a failsafe firmware update, so for that, I need to modify a code to get vendor request from the Firmware update app, which provided in https://community.infineon.com/t5/Resource-Library/FX3-Fail-Safe-Firmware-Update/ta-p/246074
Actually I added event to get vendor request, but even adding evnet using
ret = CyU3PEventCreate (&glBulkLpEvent);
and tried get event with this
stat = CyU3PEventGet (&glBulkLpEvent, eventMask, CYU3P_EVENT_OR_CLEAR, &eventStat, 10);
but I'm unable to get event.
what is the way get vendor commands?
Show LessIs it possible to change DMA configuration while running and restart DMA?
Below is a source that runs in 2-socket GPIF mode and runs fine.
and I want to stop GPIF and run it in loopback mode .
but it stop running.
The red source seems to be wrong.
Please give me guide line. Thank you.
dmaCfg.size = (usbSpeed == CY_U3P_SUPER_SPEED) ?(size * CY_FX_EP_BURST_LENGTH ) : (size);
dmaCfg.count = 4;
dmaCfg.validSckCount = 2;
dmaCfg.dmaMode = CY_U3P_DMA_MODE_BYTE;
dmaCfg.cb = NULL;
dmaCfg.notification = 0;
dmaCfg.prodSckId[0] = CY_U3P_PIB_SOCKET_0;
dmaCfg.prodSckId[1] = CY_U3P_PIB_SOCKET_1;
dmaCfg.consSckId[0] = CY_FX_EP_CONSUMER_SOCKET;
apiRetStatus = CyU3PDmaMultiChannelCreate (&glChHandleBulkSrc, CY_U3P_DMA_TYPE_AUTO_MANY_TO_ONE, &dmaCfg);
apiRetStatus = CyU3PDmaChannelSetXfer (&glChHandleBulkSrc, CY_FX_BULKSRCSINK_DMA_TX_SIZE);
( Runnig Well)
(change to loop back mode)
dmaCfg.prodSckId[0] = CY_U3P_CPU_SOCKET_PROD;
dmaCfg.prodSckId[1] = CY_U3P_CPU_SOCKET_PROD;// duplicate ?
dmaCfg.consSckId[0] = CY_FX_EP_CONSUMER_SOCKET;
dmaCfg.cb = CyFxBulkSrcSinkDmaCallback;
dmaCfg.notification = CY_U3P_DMA_CB_CONS_EVENT;
CyU3PGpifDisable(CyTrue);
CyU3PDmaMultiChannelAbort(&glChHandleBulkSrc);
apiRetStatus = CyU3PDmaMultiChannelCreate (&glChHandleBulkSrc, CY_U3P_DMA_TYPE_AUTO_MANY_TO_ONE, &dmaCfg);
apiRetStatus = CyU3PDmaChannelSetXfer (&glChHandleBulkSrc, CY_FX_BULKSRCSINK_DMA_TX_SIZE);
( running is stop)
I want to rewrite the FW of FX3 without using the Control Center.
Currently, FX3 FW rewriting starts the board in "USB BOOT mode", recognizes it as a Bootloader Device on the PC side, and writes to SPI FLASH from the USB Control Center of the Windows application.
Is there any material or sample source code about the specific writing method to SPI FLASH performed by this USB Control Center?
If it can use this tool by calling it from a script, I would use it.
Thanks
Tetsuo
Hi FX3 team,
From the example code in slavefifo_example\slfifosync, the UART in CyFxSlFifoApplnDebugInit (void) in the example code is pointing to CY_U3P_LPP_SOCKET_UART_CONS. meaning the UART message will be send to the physical UART port in cypress FX3 IC.
Can i reuse back the same code with minor change on :
- From the example : CyU3PDebugInit (CY_U3P_LPP_SOCKET_UART_CONS, 😎
- My changes : CyU3PDebugInit (CY_FX_EP_CONSUMER_CDC_SOCKET, 8), this is assuming that the USB serial com port is already make available in windows device manager.
and direct the UART message via USB to the host-PC and read it with teraterm terminal?
the example code i am refering to with the minor change is as in the picture attached.
Show Less
Hello,
For the last few days, I'm trying failsafe firmware update as explained here , I'm using the same code and followed the same steps as mentioned, first I merged 2nd stage boot loader and UsbBulkSrcSink and then flashed to my Denebola Kit, and It successfully shows itself as a device in the control center, but later when I try to update new firmware(USBBulkloopAutoEnum from examples) with given Firmware Updater, I flashed new firmware with given Firmware updater, but It didn't execute in Denebola Kit. Even in the control center, I didn't get anything to see.
Show LessHello,
I want to send vendor-specific commands from the Control center to the Denebola kit, How to do that?
and In the control center, I found the load script icon, for what it is used? is that one to send vendor commands?
Show LessHello, I'm using the Denebola kit, I'm trying to write data to SPI flash, I don't get any error while writing data, but when trying to read back I get a value as 0, one more thing to notice is, at some locations values is same as what I have I written.
Let me explain the whole thing clearly, present I'm using a failsafe firmware update, this is the source:https://community.infineon.com/t5/Resource-Library/FX3-Fail-Safe-Firmware-Update/ta-p/246074
but as explained there I'm not using I2C, instead, I'm using SPI, and I'm using the merger provided in the source to combine Images, so my partition is the same as explained in the source.
i.e, bootLoader Partition starts at 0x0000
Primary Firmware starts at 0x6000
Secondary Firmware starts at 0x23000
I'm able to boot to primary Firmware and Secondary Firmware,
I'm using the USBBulkSrcSink example provided in the source, in there I tried to write data to the 0x6000 location and read the data,
the values which are written is stored perfectly, but using the same process I tried to access 0x3FFFF values are not reflecting while reading, even I don't get any error while writing.
screen shot is shared :
Red bix shows code and green box shows output
Show Less
I'm trying to run FX3 for compliance testing. But It can't enter test mode. Are there any conditions to enter test mode?
Also, is there a way to tell if FX3 has entered test mode?
Thanks,
Tetsuo
Hi All,
I am using a custom board where Fx3 USB controller is connected to Xilinx FPGA.
I am trying to create an board level Vhdl/Verilog test bench where Fpga is instantiated as DUT component and
FX3 as a test peripheral component.
Is there any VHDL/Verilog simulation model available for Fx3 USB Controller?
Thanks in advance,
Panneer Raja Vajravelu.
Show Less