3 Replies Latest reply on Dec 23, 2019 4:23 AM by RashiV_61

    MultiCasting

    GiSa_4520796

      Hi,

       

      I am using Multicasting example firmware which came with SDK.I want to transfer the same data from P-Port to U-Port and S0-Port.

       

          dmaCfg.prodSckId[0] = CY_FX_EP_PRODUCER_SOCKET;

          dmaCfg.consSckId[0] = CY_FX_EP_CONSUMER_1_SOCKET;

          dmaCfg.consSckId[1] = CY_FX_EP_CONSUMER_2_SOCKET;

       

      I declared above prod and cons sockets as

       

      #define CY_FX_EP_PRODUCER_SOCKET            CY_U3P_PIB_SOCKET_0/* Socket 1 is EP1 OUT */

      #define CY_FX_EP_CONSUMER_1_SOCKET        CY_U3P_UIB_SOCKET_CONS_1  /* Socket 1 is EP1 IN  */

      #define CY_FX_EP_CONSUMER_2_SOCKET        CY_U3P_SIB_SOCKET_0/* Socket 2 is EP2 IN  */

       

      After the above changes,the device is not enumerating in Control center.Why?

       

      Regards,

      Srujana.

        • 1. Re: MultiCasting
          RashiV_61

          Hello Srujana,

           

          Please let me  know that is the CyU3PDmaMultiChannelCreate API passing successfully or is it returning error?

           

           

              apiRetStatus = CyU3PDmaMultiChannelCreate (&glChHandleBulkLp,

                      CY_U3P_DMA_TYPE_MULTICAST, &dmaCfg);

              if (apiRetStatus != CY_U3P_SUCCESS)

              {

                  CyU3PDebugPrint (4, "CyU3PDmaMultiChannelCreate failed, Error code = %d\n", apiRetStatus);

                  CyFxAppErrorHandler(apiRetStatus);

              }

           

          Please get the debug prints

           

          Regards,

          Rashi

          • 2. Re: MultiCasting
            GiSa_4520796

            Hi Rashi,

             

            Please let me  know that is the CyU3PDmaMultiChannelCreate API passing successfully or is it returning error?

                 Just now i checked this and came to know that it is returning error 64.

             

            Below is my DMA Channel Configuration

             

                dmaCfg.size  = size;

                dmaCfg.count = CY_FX_BULKLP_DMA_BUF_COUNT;

                dmaCfg.validSckCount = 2;

                dmaCfg.prodSckId[0] = CY_FX_EP_PRODUCER_SOCKET;

                dmaCfg.consSckId[0] = CY_FX_EP_CONSUMER_1_SOCKET;

                dmaCfg.consSckId[1] = CY_FX_EP_CONSUMER_2_SOCKET;

                dmaCfg.dmaMode = CY_U3P_DMA_MODE_BYTE;

                dmaCfg.notification = CY_U3P_DMA_CB_PROD_EVENT | CY_U3P_DMA_CB_XFER_CPLT;

                dmaCfg.cb = CyFxBulkLpDmaCallback;

                dmaCfg.prodHeader = 0;

                dmaCfg.prodFooter = 0;

                dmaCfg.consHeader = 0;

                dmaCfg.prodAvailCount = 0;

             

             

                apiRetStatus = CyU3PDmaMultiChannelCreate (&glChHandleBulkLp,

                        CY_U3P_DMA_TYPE_MULTICAST, &dmaCfg);

                if (apiRetStatus != CY_U3P_SUCCESS)

                {

                    CyU3PDebugPrint (4, "CyU3PDmaMultiChannelCreate failed, Error code = %d\n", apiRetStatus);

                    CyFxAppErrorHandler(apiRetStatus);

                }

             

            Regards,

            Srujana.

            • 3. Re: MultiCasting
              RashiV_61

              Hello Srujana,

               

              Please confirm that did you start and initialize the sib block before creating the DMA channel

               

              Regards,

              Rashi