1 Reply Latest reply on Jul 19, 2020 11:54 PM by RashiV_61

    FX3 many producer and many consumers

    dach_3214351

      Hi all,

         

      I want to setup many producer to many consumers as below:

      1. CY_U3P_UIB_SOCKET_PROD_2 and CY_U3P_CPU_SOCKET_CONS. DMA channel create mode is CY_U3P_DMA_TYPE_MANUAL_IN. this is for receive endpont 0x02 data for fx3 do command passer.

      2. CY_U3P_CPU_SOCKET_PROD and CY_U3P_PIB_SOCKET_1. DMA channel create mode is CY_U3P_DMA_TYPE_MANUAL_OUT. this is fx3 passer command to write data to extern FPGA with P-port( use GPIF II master desgin )

      3. CY_U3P_PIB_SOCKET_0 and CY_U3P_UIB_SOCKET_CONS_6. DMA channel create mode is CY_U3P_DMA_TYPE_AUTO. this is fx3 passer command to read data from extern FPGA with P-port. 

      4. CY_U3P_CPU_SOCKET_PROD and CY_U3P_UIB_SOCKET_CONS_6. DMA channel create mode isCY_U3P_DMA_TYPE_MANUAL_OUT  CY_U3P_DMA_TYPE_MANUAL_OUT. this is fx3 passer command to send data from cpu to endpoint 0x86.

       

      In my case, i use CyU3PDmaChannelDestroy function to transform dam mode but destroy dma need to spend too much time

        

      How do I choice which use multi channel DMA mode to design for my need?

           all

         

      Thank you!!

        • 1. Re: FX3 many producer and many consumers
          RashiV_61

          Hello,

           

          From the description, I see that two MANUAL OUT Channels are required.

          1 ) CPU to PIB

          2) CPU to USB

           

          Other than the above channels, all the other channels can be created simultaneously.

           

          MANUAL IN/OUT channels can not be multichannel as there is only one PROD socket  (CPU) and one CONS socket (CPU).  In the above case, two channels are needed which means two PROD CPU sockets are needed which is not possible. Only one of the above channels can be used at the time (when one can is created another one needs to be destroyed).

           

          CY_U3P_CPU_SOCKET_PROD and CY_U3P_PIB_SOCKET_1. DMA channel creates mode is CY_U3P_DMA_TYPE_MANUAL_OUT.

          this is fx3 passer command to write data to extern FPGA with P-port( use GPIF II master design )

          >> Please let me know why is this channel used.  Please let me know if CY_U3P_PIB_SOCKET_0 can be used to send this data. Is the same GPIF master connected to both the PIB sockets? If yes why are two different sockets used to send the data to GPIF master (PIB)

           

           

          CY_U3P_CPU_SOCKET_PROD and CY_U3P_UIB_SOCKET_CONS_6. DMA channel create mode isCY_U3P_DMA_TYPE_MANUAL_OUT  CY_U3P_DMA_TYPE_MANUAL_OUT. this is fx3 passer command to send data from cpu to endpoint 0x86

          >> as the endpoint /sockets for channel 3 (PIB to UIB) is the same. User-defined data can be sent to the consumer using DMA override mode. Channel 3 (PIB to UIB) can be used in DMA override mode instead of using MANUAL OUT Channel

          Please refer to this KBA DMA Channel in Override Mode in FX3/CX3 - KBA229098  for more understanding about DMA override mode.

           

          Regards,

          Rashi