I have a question about Slave FIFO DMA Producer/Comsumer socket ID, in the SlaveFIFOSync example, the UToP DMA channel use USB_PRODUCER_SOCKET as prodSckID, but in my hardware design, I have to use CPU_SOCKET_PROD instead of USB_SOCKET as proSckID, right now my hardware is not ready for testing yet, can someone tell me the CPU_SOCKET_PROD is available for FIFO DMA UToP producer socket, if not, what I need to pay attention to? Thank you!
I am familiar with FX2 which provides Autopointer that can access any contiguous block of internal EZ-USB RAM as a FIFO, but FX3 is a brand new device, I am not sure if FIFO in FX3 use the same architecture as FX2. Since now it is slave FIFO mode, this requires a slave FIFO mastert capable of reading/writing data, so the producer from UToP on FX3 side could be CPU_PROD_SOCK or USB_SOCKET, is it right?
Yes, CY_U3P_CPU_SOCKET_PROD is available.
But I don't think you need to change the USB_PRODUCER_SOCKET to CY_U3P_CPU_SOCKET_PROD as you don't have any hardware connected to GPIF of FX3.
Eventhough nothing is connected to GPIF you can send some data to USB_PRODUCER_SOCKET using Control Center in PC application.
I suppose you are trying to do performance testing on FX3, before your master device gets ready.
If this is the case then you better use examples:
USBBulkSourceSink and USBISOSourceSink.
Also these examples help you on how to use CPU sockets. (CY_U3P_CPU_SOCKET_CONS and CY_U3P_CPU_SOCKET_PROD)
Thanks sai krishna, your suggestion helps me a lot!
One question about PP register - PP_WR_MAILBOX and PP_RD_MAILBOX, FX3 reserve these 2 registers for communication between firmware and application processor, but in the FX3 programmer manual, there is not detail description about how to use them, could you please explain how to use these 2 registers to exchange message between FX3 and application processor, thank you!
If you are using FX3 for just data transfer then you don't need these PP registers.
But if you want pass some messages between Applications processor and FX3 then you need access to PP registers. Application processor can directly write to these registers.
The description and usage of these registers (PP_WR_MAILBOX and PP_RD_MAILBOX) is mentioned in the 10th chapter of the FX3 Programmers Manual.
The point to be noted is that you need 8-bit address bus to access/address these registers. Also the MSB should be 1 to access this PP register address space.