4 Replies Latest reply on Aug 13, 2018 2:03 AM by srdr

    FX3 suspeded during control transfer

    hyeonjeong.lee_3480311

      Dear Cypress Experts.

      Hello!

       

      backgrounds :

      Sometimes I lost fx3 control, during control transfer from host( Win7 ) to device( fx3 ) on USB3.0 port ( USB 2.0 port works well always )

      No devices captured in control center, so I have to unplug&plug USB cable again.

      I got referenced by your USBBulkSourceSink example.

      (before) (after)

       

      details :

      I want to send about 600KB data by Control transfer from PC Application to my device.

      After open file from PC, data size sliced to 64KB and then transfered sequentially.

       

      Next, in FX3, my thread get that packets by callback function ( registered by CyU3PUsbRegisterSetupCallback() ).

      After then, just get data ( by CyU3PUsbGetEP0Data() ), send those to device by I2C ( CyU3PI2cTransmitBytes() )

       

      1. Every returned values from functions are CY_U3P_SUCCESS, But sometimes FX3 doesn't answer me. ( like below, a few logs from device )

          Where am I have to debug from?


      2. In addition, I have no idea which part makes problems, so I'd like to see the status of FX3 firmware by pausing in Cypress IDE, but pause button is unable.

          Is there another way to know the firmware status with your IDE?

        • 1. Re: FX3 suspeded during control transfer
          srdr

          Please share the firmware and log file for the debugging?

           

          In your case, have you successfully sent 600 KB at least once?

          • 2. Re: FX3 suspeded during control transfer
            hyeonjeong.lee_3480311

            I made while loop for XferData() with 600KB data.

            This sends 64KB every single time for my device's I2C data throughput limit.

             

            Sometimes freeze in while loop, sometimes abnormally exited by xferdata func timeout( I guess firmware suspended ).

             

            Which mail address do I have to send firmware and log file?

            Because of company secret policy, I can't share files on the forum.

            • 3. Re: FX3 suspeded during control transfer
              srdr

              I can see that you have enabled many Debug Prints in the call back section. This may affect the performance when the device is operating at USB 3.0 mostly.

               

              1. I recommend you to remove the unnecessary debug prints in the call back section and check the behavior. Also increase the UART Baud Rate so that UART functions at higher speeds.

               

              2. Have you collected the logs for USB 2.0?

              If yes, what are your observations when you compare both the logs? How much amount of data that the device received successfully before it disappears from the control center (in USB 3.0 mode).

               

              3. We have an example firmware which does similar job as yours but write and read to/from I2C EEPROM in the SDK: C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\serialif_examples

                 I hope that you have referred these example FWs. 

              4. When the device is operating in USB 3.0, the ep0_buffer size is 64 bytes. Why do not you increase it to 512 bytes to speed up the operation?

               

              5. You can check the device status after every write and read transfers using CyU3PI2cWaitForAck API. I can see that you have commented this API in your firmware.

               

              6. Have you tried to operate in DMA Mode instead of Register mode to increase the data transfer rate?

              • 4. Re: FX3 suspeded during control transfer
                srdr

                This issue is solved by returning CyTrue for the setup requests handled in the USB SetUp Callback.

                 

                Refer III in section 2.3 of Cypress EZ-USB FX3 SDK Troubleshooting Guide provided with the SDK: C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\doc\firmware

                 

                Attached with this interaction for quick reference.