4 Replies Latest reply on May 22, 2019 8:13 PM by Peya_4162826

    FX3 hang up after cold reboot.

    Peya_4162826

      Hi,

      Our company develop one USB2.0/3.0 testing equipment base on FX3, it simulate as a USB disk, and base on "Cypress\EZ-USB FX3 SDK\1.3\firmware\msc_examples\cyfxmscdemo"  to develop, the testing step as following:

      1. FX3 create one timer

      2. FX3 boot at USB2.0 mode

      3. FX3 switch to USB3.0 or 2.0  when received a specified message, and record the current time.

      4.  FX3 do NOT execute "CY_U3P_USB_EVENT_SETCONF" with the timer expire(The timer expiration value is 10 second), FX3 execute "CyU3PDeviceReset(CyFalse);"

       

      the application loop to switch FX3 to USB 3.0 and 2.0, about run several hours, some times happen the timer expire, FX3 cold reboot, but FX3 hang up soon from the COM port log analysis. and OS can not get the FX3's token's package(refer to following picture, “要求装置描述元失败” in device manager).

       

      Following is the relevant code:

      ....................................

         /* Create the required DMA channels. */

          CyFxMscApplnDmaInit ();

       

       

          CyU3PDebugPrint (4, "Calling USB Connect\r\n");

       

       

          /* Enable USB connection to host. SuperSpeed is not supported. */

          apiRetStatus = CyU3PConnectState (CyTrue, CyFalse);

          if (apiRetStatus != CY_U3P_SUCCESS)

          {

              CyU3PDebugPrint (4, "USB Connect failed, Error Code = %d\n",apiRetStatus);

              CyFxAppErrorHandler(apiRetStatus);

          }

      DEBUG((4,"USB SPEED1=%d,%x\r\n",CyU3PUsbGetSpeed (),systemtimer));

      CyU3PBusyWait (1000);

      DEBUG((4,"USB SPEED1=%d,%x\r\n",CyU3PUsbGetSpeed (),systemtimer));

       

       

      FX3StartConnecttime=systemtimer;

      .......................................

      .............................................FX3_hang_up.png

      2019_05_21_08_27_58_Greenshot.png

       

      Following is normal boot log information:

      MSC DEMO - Debug Init Done

      Calling USB Connect

      USB SPEED1=1,0

      USB SPEED1=1,0

      USB event 0 received

      USB event 4 received

      EnterSuspendMode returned 0, wakeup reason=8

      USB Set Config completed=1

      USB SPEED3=2

      WaitForRecv 0