cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

GiSa_4520796
New Contributor II

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.

0 Likes
1 Solution
Rashi_Vatsa
Moderator
Moderator

Hello Srujana,

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

Regards,

Rashi

Regards,
Rashi

View solution in original post

0 Likes
3 Replies
Rashi_Vatsa
Moderator
Moderator

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

Regards,
Rashi
0 Likes
GiSa_4520796
New Contributor II

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.

0 Likes
Rashi_Vatsa
Moderator
Moderator

Hello Srujana,

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

Regards,

Rashi

Regards,
Rashi

View solution in original post

0 Likes