CX3 use isochronous mode issue

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

cross mob
lock attach
Attachments are accessible only for community members.
soqi_4187516
Level 2
Level 2
250 sign-ins 100 sign-ins 50 sign-ins

I used isochronous mode with CX3, But the test app Amcap always black screen.  I am not sure the whether the config parameters are right, i have upload my code.   It would be greatly appreciated If you can help on this issue.

we use 1280 x 800@15 fps, win10 platform. I use this macro "VS_ISOCHRONOUS_MODE" to switch bulk and isoc.

1.It shows that PC can get some data in the wireshark, like below.

pastedImage_0.jpg

2. When I open the camera, the uart log is as below:

MipiErrorThread Init.

AppInit:GpifSMStart passed

AppInit:fw version:1.11.27

                          d = 0 Cons = 0  Prtl_Sz = 0 Frm_Cnt = 0 Frm_Sz = 0 B

Prod = 0 Cons = 0  Prtl_Sz = 0 Frm_Cnt = 0 Frm_Sz = 0 B

status_t0 = 0, status_t1 = 0

Prod = 0 Cons = 0  Prtl_Sz = 0 Frm_Cnt = 0 Frm_Sz = 0 BCyCx3AppGetProbeControlData 1

CX3_APP_VS_PROBE_CONTROL ,1

CY_U3P_SUPER_SPEED = 1CyCx3AppGetProbeControlData 1

CX3_APP_VS_PROBE_CONTROL ,1

CY_U3P_SUPER_SPEED = 1CyCx3AppGetProbeControlData 1

CX3_APP_VS_COMMIT_CONTROL ,1

AplnStrt:CyCx3AppStart CyCx3AppStart

AplnStrt:SMState = 0x2

CB failure

UsbCB:Call AppStop CyCx3AppThread_Entry

AplnStop:SMState = 0x5

AplnStrt:CyCx3AppStart CyCx3AppStart

AplnStrt:SMState = 0x1

AplnStrt:CyCx3AppStart CyCx3AppStart

AplnStrt:SMState = 0x2

Prod = 29 Cons = 29  Prtl_Sz = 23120 Frm_Cnt = 1 Frm_Sz = 1090784 B

CB failure

UsbCB:Call AppStop CyCx3AppThread_Entry

AplnStop:SMState = 0x5

AplnStrt:CyCx3AppStart CyCx3AppStart

AplnStrt:SMState = 0x1

Prod = 55 Cons = 55  Prtl_Sz = 23120 Frm_Cnt = 2 Frm_Sz = 2048000 B

status_t0 = 0, status_t1 = 69

status_t0 = 0, status_t1 = 69

status_t0 = 0, status_t1 = 69

status_t0 = 0, status_t1 = 69

status_t0 = 0, status_t1 = 69

0 Likes
1 Solution

Hello,

- Change the define of CY_FX_EP_ISO_VIDEO_SS_MULT 1.

- Make the 'Bytes per interval' field of Super speed companion descriptor as

0x00, 0x04 * (CY_FX_EP_ISO_VIDEO_SS_MULT) * (CY_FX_EP_ISO_VIDEO_SS_BURST)  //This is 3KB in your case

- UVC Probe control settings should be updated with the maximum payload size calculated using BURST length and MULT settings. The maximum payload size should be (CY_FX_EP_ISO_VIDEO_SS_BURST) * (CY_FX_EP_ISO_VIDEO_SS_MULT) * (Max Endpoint size).

- According the firmware that you have shared, UVC headers are not being added by CX3. So, they must be added by an FPGA? - Please confirm. If yes, then there is no need to call CyCx3UvcAppAddHeader()

- Please remove DebugPrints in DmaCallback.

A similar issue is addressed in this thread: CX3 Isochronous mode . Please have a look.

Regards,

Sridhar

View solution in original post

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

Hello,

In general, the standard UVC host applications cannot stream the RAW format video.

Please refer this KBA: Streaming RAW10 Format Input Data to 16/24-bit Output Format in CX3 MIPI CSI-2 - KBA224387 for more details on this.

As per the UART Logs, there are commit buffer failures. This happens when the host is streaming the data at slower rate than that of image sensor.

Please test the application in Bulk Mode and confirm whether the data is streaming fine.

Since the standard Amcap cannot stream the RAW 10 format, you may not see the video in both bulk and isoc modes.

Hence, you can confirm the correct frame size by probing the PCLK, HSYNC and VSYNC test pins and capturing the WireShark trace.

Regards,

Sridhar

0 Likes

Hi,

   Thanks for your reply.

   The sensor output data is raw10, but it transfer as YUYV, 16bit in Cypress. And it is normal when use bulk mode with Amcap, so I think it maybe something wrong when i change to isochronous mode.

0 Likes

Hello,

- Change the define of CY_FX_EP_ISO_VIDEO_SS_MULT 1.

- Make the 'Bytes per interval' field of Super speed companion descriptor as

0x00, 0x04 * (CY_FX_EP_ISO_VIDEO_SS_MULT) * (CY_FX_EP_ISO_VIDEO_SS_BURST)  //This is 3KB in your case

- UVC Probe control settings should be updated with the maximum payload size calculated using BURST length and MULT settings. The maximum payload size should be (CY_FX_EP_ISO_VIDEO_SS_BURST) * (CY_FX_EP_ISO_VIDEO_SS_MULT) * (Max Endpoint size).

- According the firmware that you have shared, UVC headers are not being added by CX3. So, they must be added by an FPGA? - Please confirm. If yes, then there is no need to call CyCx3UvcAppAddHeader()

- Please remove DebugPrints in DmaCallback.

A similar issue is addressed in this thread: CX3 Isochronous mode . Please have a look.

Regards,

Sridhar

0 Likes