2 Replies Latest reply on Feb 12, 2015 11:51 PM by jade.lee

    fail to Bulk-Out XferData Function.

    jade.lee

      Hi Everybody.

         

      I lost my post, so i repost this question.

         

       

         

      I'm using FX3 and GPIO Slave FIFO Interface with FPGA.

         

      BulkOut Endpoint somtimes fail to XferData.

         

      I used medify SlaveFIFO Application firmware.

         

      ( When I use USBBulkSourceSink firmware, XferData working good. )

         

       

         

      XferData return value is false.

         

      UsbdStatus=0xc0000011, UsbdStatus=0xc000009d

         

       

         

      If an error occurs, the USB is look list reenumuration.

         

       

         

      ========================This is UART Log Message========================

         

      About to connect to USB host

         

      CY_U3P_USB_EVENT_CONNECT detected (1)

         

      appUSBInit complete

         

      CY_U3P_USB_EVENT_SETCONF (1)

         

      appStart

         

       

         

      fail to XferData ....

         

       

         

       CY_U3P_USB_EVENT_RESET or CY_U3P_USB_EVENT_DISCONNECT (1)

         

      appStop

         

      No Error :18(12)  <= Displayed this message from appGpifErrorCallback Function

         

       CY_U3P_USB_EVENT_SETCONF (1)

         

      appStart

         

       

         

      ========================GPIO Error Callback Function========================

         

      void appGpifErrorCallback(CyU3PPibIntrType cbType, uint16_t cbArg)

         

      {

         

       

         

      if (cbType == CYU3P_PIB_INTR_ERROR)

         

      {

         

      switch (CYU3P_GET_PIB_ERROR_TYPE(cbArg))

         

      {

         

      case CYU3P_PIB_ERR_THR0_WR_OVERRUN:

         

      zDebugPrintf(4, "CYU3P_PIB_ERR_THR0_WR_OVERRUN\r\n ");

         

      break;

         

      case CYU3P_PIB_ERR_THR1_WR_OVERRUN:

         

      zDebugPrintf(4, "CYU3P_PIB_ERR_THR1_WR_OVERRUN\r\n");

         

      break;

         

      case CYU3P_PIB_ERR_THR2_WR_OVERRUN:

         

      zDebugPrintf(4, "CYU3P_PIB_ERR_THR2_WR_OVERRUN\r\n");

         

      break;

         

      case CYU3P_PIB_ERR_THR3_WR_OVERRUN:

         

      zDebugPrintf(4, "CYU3P_PIB_ERR_THR3_WR_OVERRUN\r\n");

         

      break;

         

       

         

      case CYU3P_PIB_ERR_THR0_RD_UNDERRUN:

         

      zDebugPrintf(4, "CYU3P_PIB_ERR_THR0_RD_UNDERRUN\r\n");

         

      break;

         

      case CYU3P_PIB_ERR_THR1_RD_UNDERRUN:

         

      zDebugPrintf(4, "CYU3P_PIB_ERR_THR1_RD_UNDERRUN\r\n");

         

      break;

         

      case CYU3P_PIB_ERR_THR2_RD_UNDERRUN:

         

      zDebugPrintf(4, "CYU3P_PIB_ERR_THR2_RD_UNDERRUN\r\n");

         

      break;

         

      case CYU3P_PIB_ERR_THR3_RD_UNDERRUN:

         

      zDebugPrintf(4, "CYU3P_PIB_ERR_THR3_RD_UNDERRUN\r\n");

         

      break;

         

       

         

      default:

         

      zDebugPrintf(4, "No Error :%d(%x)\r\n ", CYU3P_GET_PIB_ERROR_TYPE(cbArg), CYU3P_GET_PIB_ERROR_TYPE(cbArg));

         

      break;

         

      }

         

      }

         

      }

         

       

         

      Please Let's me know how to debug this problem?

         

       

         

      Best Regards.

         

      Thanks all.