Hi Cypress Experts:
This ticket is the extend of CX3 prototype went unstable .
When I test more module , i found update the SDK to 1.3.4 can't totally fix my issue.
I still have some module has this kind CB failure and lost frame issue after couple seconds.
My procedure as below:
1. I can program to flash and enumerated in device manager.
2. When I open the camera use Amcap, it can show image from 1s to 30+seconds..
3. When the Amcap lost frame, there is "CB Failure" in Uart log...
4. Re-open the Amcap, it can start streaming, but lost frame soon...
1. Not 100% module has this issue, all module tested with same cable,same PC USB port,same CX3 binary.
2. Same PC, different USB port has different result, One USB3.0 port is stable than another one USB3.0 port(can steam longer).
3. My PC has a dock, when I plug the USB3.0 cable to Dock's USB3.0 port, it becomes much better( but still have CB failure and lost frame after couple mins)
4. I have tried to increse the DMA buffer size by set
#define CY_U3P_SYS_MEM_TOP (0x40080000)
5. I also have tried to implement the codes referring Invalid Sequence Error in Multi-Channel Commit Buffer - KBA218830
But the issue still not fixed,
Do you have any other suggestion to do?
If possible, could you please send me your email address? I'd like whether you can kindly help me to check the project's code?
Thanks and looking for your feedback.
Please let me know the following details:
1. What is the size of the DMA buffers used currently after referring to the KBA218830?
2. What is the failure rate? Did the change from SDK 1.3.3 to 1.3.4 have any impact on the failure rate? Or is it like it just increased the time for which the video streaming was proper?
3. Do you have a resolution that can be streamed over USB 2.0? If yes, then please enumerate the camera as a USB 2.0 device and test if the issue is happening in USB 2.0 mode also or not. This can be used to understand if the problem is with USB 3.0 or not.
4. Please test the failing modules with different hosts and check if the result is same or not?
5. Please share the wireshark trace for a failure case.
6. Also, share the UART debug logs for the failing case.
Thanks for your reply;
For your questions:
1. From below setting, the DMA buffer size is 35KB, please correct me if I am wrong.
#define CX3_UVC_PROD_HEADER (12) /* UVC DMA Buffer Header Size */
#define CX3_UVC_PROD_FOOTER (4) /* UVC DMA Buffer Footer Size */
/* UVC Buffer size - Will map to bulk Transaction size */
#define CX3_UVC_STREAM_BUF_SIZE (CX3_UVC_DATA_BUF_SIZE + CX3_UVC_PROD_HEADER + CX3_UVC_PROD_FOOTER)
2.The failure rate is around 30%. Change SDK to 1.3.4 not impact the failure rate, and it just increase the time.
3.There is smaller resolution can used for USB2.0 at this moment.
4.Have tested on different laptop and desktop, have same result.
5.Please refer the wireshark log as CX3_Error_wireshark_log.rar attached.
6.Please check the CX3_Error_uart_log.txt attached
Looking for your feedback!
Please let me know how these logs were taken. Are these logs obtained by following the procedure given below:
1. Connect the board to the host.
2. Program the device with the .img.
3. Start the streaming.
Please do not restart the streaming (do not reopen AMCap) after this. Please let me know if the shared logs were obtained by following the procedure given above. If not, then please share the logs by following the procedure mentioned above.
Also, can you connect the CX3 device alone to the host and remove all other devices connected to the host? Then check if you see any improvements in streaming.
I did not understand your comment on my question to check a resolution that can be streamed using USB2.0. Can you please clarify it?
Please share the following:
1. On a failing board, load the SDK example USBBulkSrcSink. This can be found in the following location:
C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\basic_examples\cyfxbulksrcsink
After this, open teraterm and streamer application. Using streamer, read the data from the IN endpoint continuously and share the UART debug logs.
2. Please share a USB trace using Lecroy which can help to debug the issue further.
3. Please let me know the resolution that you are trying to stream.
1. I can download the img of cyfxbulksrcsink, but the UART no any log when I start read data from stramer. Please correct me of the operation if I am wrong.
2. Could you please educate me more about what's your mean about "USB trace using Lecroy "
3.I am trying to stream 1920x1080 @ 30fps.The MIPI configuration as below：
Thanks for your reply and looking for your feedback.
Please find my comments below:
1. Use the firmware attached in this response and read data using streamer. Then share the UART logs. Before programming the device, open teraterm.
2. Lecroy is a protocol analyzer which can be used for capturing USB traces. Please refer to the following link to understand more about lecroy logic analyzer:
3. The MIPI configuration seems alright.
1. Please check the log as attached:cyfxbulksrcsink_Log_NG_Module.txt. I also attached log from a ok CX3 board: cyfxbulksrcsink_Log -ok module.txt
2. I will try to find the Lecroy in office tomorrow.
3. ok, thanks for the confirm.
Base on the informations posted, do you have any direction to doubet?
Does the DMA size set correct?
Appreciate for your support.
Please let me know when you tested the good and failing board with bulk source sink and streamer, did the streamer report any failures for the failing board? Did the streaming stop all of a sudden for the failing board? Please confirm that the test was done for a longer duration than the time at which the commit buffer failures occurred usually with the failing board.
Please let me know if there is any difference in the working and failing board? Also, does the working board work with any host and host applications and does the failing board fail irrespective of any host and host applications?
In addition to all these, can you please share a wireshark trace and UART logs of the working board using the procedure that I mentioned in my response 3?
I have sent my email-id as a personal message. Please share the firmware with me so that I can have a look at it. Also, please share the Lecroy trace if it is possible.
1.The streamer will report failure very soon from the begaining.I have tested the OK board much longer than the fail board, there is no any failure reported by streamer.
Please refer below snip.
2.There is no difference between OK and fail board, they are from same batch build, same batch CX3 chips.
3.The ok board working at Amcap, windows camera app in three host PC, the NG board fails all.
4.Unfortunately, I don't have a Lecory , I will try to source one if possible.
It seems like there is a hardware issue on the NG board as is confirmed by the streamer tool with the USBBulkSrcSink firmware. Please share the schematics of the board so that we can have a look at it and understand the possible causes.