2 Replies Latest reply on Sep 12, 2012 4:38 PM by gary.altenberg

    DMA buffer size

    jia.decun

      With usb 3.0 mode .   dmaSlFifoConfig.size = size * 16; it  doesn't work ,the size is 1024 .But if change to       dmaSlFifoConfig.size = size/2; it works but the speed only 8M around .how can i solve the problem ,I am hurry it .

         

      develop with sdk v1.2 . 

         

       /* Create a DMA MANUAL Channel between P-port producer socket and U-port consumer socket */

         

                  //dmaSlFifoConfig.size = size  * 16;

         

                  dmaSlFifoConfig.size = size;

         

                  dmaSlFifoConfig.count = CY_FX_SLFIFO_DMA_BUF_COUNT;

         

                  dmaSlFifoConfig.prodSckId = (CyU3PDmaSocketId_t)(CY_FX_EP_PRODUCER_PPORT_SOCKET);

         

                  dmaSlFifoConfig.consSckId = (CyU3PDmaSocketId_t)(CY_U3P_UIB_SOCKET_CONS_0 | CY_FX_EP_CONSUMER_USB_SOCKET);

         

                  dmaSlFifoConfig.dmaMode = CY_U3P_DMA_MODE_BYTE;

         

                  dmaSlFifoConfig.notification = 0;//CY_U3P_DMA_CB_PROD_EVENT;

         

      //            dmaSlFifoConfig.cb = CyFxSlFifoPtoUDmaCallback

         

                  dmaSlFifoConfig.cb = NULL;

         

                  dmaSlFifoConfig.prodHeader = 0;

         

                  dmaSlFifoConfig.prodFooter = 0;

         

                  dmaSlFifoConfig.consHeader = 0;

         

                  dmaSlFifoConfig.prodAvailCount = 0;

         

                  /* Create the channel */

         

                  apiRetStatus = CyU3PDmaChannelCreate (&glChHandleSlFifoPtoU,

         

                                                        CY_U3P_DMA_TYPE_AUTO,

         

                                                        &dmaSlFifoConfig);