FX3 suspeded during control transfer

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

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)pastedImage_1.png (after)pastedImage_0.png

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?

pastedImage_2.png


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?

pastedImage_5.png

0 Likes
1 Solution
lock attach
Attachments are accessible only for community members.

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.

View solution in original post

0 Likes
4 Replies
KandlaguntaR_36
Moderator
Moderator
Moderator
25 solutions authored 10 solutions authored 5 solutions authored

Please share the firmware and log file for the debugging?

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

0 Likes
Anonymous
Not applicable

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.

0 Likes

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?

0 Likes
lock attach
Attachments are accessible only for community members.

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.

0 Likes