This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: csi_laneBandSpeed

Part Number: TDA4VM

Hi Brijesh,

My software version is:
  PDK-RTOS :processor-sdk-rtos-j721e-evm-08_06_00_12
  PDK-LINUX:processor-sdk-linux-08_06_00

data_flow:

1920x1536 YUV422_8 * 2  ---> max96792A - - ->   CSI1 

1.

We now have 2 60fps cameras connected,The data_land of 60FPS is 864Mbps/lane.

max96792A deserializer rate set to: 1800 MHz

2.

When the image is set to
CSIRX_LANE_BAND_SPEED_1350_TO_1500_MBPS, the graph is working, but the camera is working at 30FPS.

When CSIRX_LANE_BAND_SPEED_1750_TO_2000_MBPS,

./run_app_multi_cam.sh gets stuck after running:

app_run_graph_for_one_pipeline: frame 1 beginning, pipeline:-2,line:1264

app_run_graph_for_one_pipeline: frame 2 beginning, pipeline:-1,line:1264

In order for two 60FPS cameras to work properly, what should our CSI rate be set to?

Looking forward to the expert's reply, thank you.

Regards,

Barry

  • Hi Brijesh,

    This is when configuring CSIRX_LANE_BAND_SPEED_1350_TO_1500_MBPS, the camera only works at 30FPS, and the performance prints:
    At this time, 2 cameras are connected, each with a frame rate of 60FPS.
    app_run_graph_for_one_pipeline: frame 1624 beginning
      
    app_run_graph_for_one_pipeline: frame 1625 beginning
      
    app_run_graph_for_one_pipeline: frame 1626 beginning
      
    app_run_graph_for_one_pipeline: frame 1627 beginning
      
    app_run_graph_for_one_pipeline: frame 1628 beginning
    p  
    app_run_graph_for_one_pipeline: frame 1629 beginning
      
    app_run_graph_for_one_pipeline: frame 1630 beginning
      
    app_run_graph_for_one_pipeline: frame 1631 beginning
      
    app_run_graph_for_one_pipeline: frame 1632 beginning
      
    app_run_graph_for_one_pipeline: frame 1633 beginning
      
    app_run_graph_for_one_pipeline: frame 1634 beginning
    
    
    
    Summary of CPU load,
    ====================
    
    CPU: mpu1_0: TOTAL LOAD =   0.30 % ( HWI =   0.11 %, SWI =   0. 0 % )
    CPU: mcu2_0: TOTAL LOAD =   7. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU: mcu2_1: TOTAL LOAD =   1. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c6x_1: TOTAL LOAD =   0. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c6x_2: TOTAL LOAD =   0. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c7x_1: TOTAL LOAD =   1. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    
    
    HWA performance statistics,
    ===========================
    
    
    
    DDR performance statistics,
    ===========================
    
    DDR: READ  BW: AVG =    717 MB/s, PEAK =   2563 MB/s
    DDR: WRITE BW: AVG =    881 MB/s, PEAK =   1975 MB/s
    DDR: TOTAL BW: AVG =   1598 MB/s, PEAK =   4538 MB/s
    
    
    Detailed CPU performance/memory statistics,
    ===========================================
    
    DDR_SHARED_MEM: Alloc's: 19 alloc's of 94372116 bytes 
    DDR_SHARED_MEM: Free's : 0 free's  of 0 bytes 
    DDR_SHARED_MEM: Open's : 19 allocs  of 94372116 bytes 
    DDR_SHARED_MEM: Total size: 536870912 bytes 
    
    CPU: mcu2_0: TASK:           IPC_RX:   0.14 %
    CPU: mcu2_0: TASK:       REMOTE_SRV:   0. 0 %
    CPU: mcu2_0: TASK:        LOAD_TEST:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CPU_0:   0. 0 %
    CPU: mcu2_0: TASK:        TIVX_V1NF:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_V1LDC1:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_V1SC1:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_V1MSC2:   0. 0 %
    CPU: mcu2_0: TASK:       TIVXVVISS1:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT1:   1.57 %
    CPU: mcu2_0: TASK:       TIVX_CAPT2:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_DISP1:   1.40 %
    CPU: mcu2_0: TASK:       TIVX_DISP2:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CSITX:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT3:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT4:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT5:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT6:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT7:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT8:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DPM2M1:   2.93 %
    CPU: mcu2_0: TASK:      TIVX_DPM2M2:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DPM2M3:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DPM2M4:   0. 0 %
    
    CPU: mcu2_0: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16688896 B ( 99 % unused)
    CPU: mcu2_0: HEAP:           L3_MEM: size =     262144 B, free =     261888 B ( 99 % unused)
    
    CPU: mcu2_1: TASK:           IPC_RX:   0. 0 %
    CPU: mcu2_1: TASK:       REMOTE_SRV:   0. 0 %
    CPU: mcu2_1: TASK:        LOAD_TEST:   0. 0 %
    CPU: mcu2_1: TASK:       TIVX_CPU_1:   0. 0 %
    CPU: mcu2_1: TASK:         TIVX_SDE:   0. 0 %
    CPU: mcu2_1: TASK:         TIVX_DOF:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_RX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU: mcu2_1: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16773376 B ( 99 % unused)
    CPU: mcu2_1: HEAP:           L3_MEM: size =     262144 B, free =     262144 B (100 % unused)
    
    CPU:  c6x_1: TASK:           IPC_RX:   0. 0 %
    CPU:  c6x_1: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c6x_1: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c6x_1: TASK:         TIVX_CPU:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU:  c6x_1: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16773376 B ( 99 % unused)
    CPU:  c6x_1: HEAP:           L2_MEM: size =     229376 B, free =     229376 B (100 % unused)
    CPU:  c6x_1: HEAP:  DDR_SCRATCH_MEM: size =   50331648 B, free =   50331648 B (100 % unused)
    
    CPU:  c6x_2: TASK:           IPC_RX:   0. 0 %
    CPU:  c6x_2: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c6x_2: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c6x_2: TASK:         TIVX_CPU:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    
      
    app_run_graph_for_one_pipeline: frame 1635 beginning
      
    app_run_graph_for_one_pipeline: frame 1636 beginning
      
    app_run_graph_for_one_pipeline: frame 1637 beginning
    CPU:  c6x_2: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16773376 B ( 99 % unused)
    CPU:  c6x_2: HEAP:           L2_MEM: size =     229376 B, free =     229376 B (100 % unused)
    CPU:  c6x_2: HEAP:  DDR_SCRATCH_MEM: size =   50331648 B, free =   50331648 B (100 % unused)
    
    CPU:  c7x_1: TASK:           IPC_RX:   0. 0 %
    CPU:  c7x_1: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c7x_1: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P1:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P2:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P3:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P4:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P5:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P6:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P7:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P8:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU:  c7x_1: HEAP:    DDR_LOCAL_MEM: size =  268435456 B, free =  268435200 B ( 99 % unused)
    CPU:  c7x_1: HEAP:           L3_MEM: size =    8159232 B, free =    8159232 B (100 % unused)
    CPU:  c7x_1: HEAP:           L2_MEM: size =     458752 B, free =     458752 B (100 % unused)
    CPU:  c7x_1: HEAP:           L1_MEM: size =      16384 B, free =      16384 B (100 % unused)
    CPU:  c7x_1: HEAP:  DDR_SCRATCH_MEM: size =  385875968 B, free =  385875968 B (100 % unused)
    
    
    GRAPH: app_multi_cam_graph (#nodes =   3, #executions =   1635)
     NODE:       CAPTURE1:             capture_node: avg =  32851 usecs, min/max =     73 /  86440 usecs, #exec5
     NODE:       DSS_M2M1:              FmtConvNode: avg =  10291 usecs, min/max =  10272 /  11795 usecs, #exec5
     NODE:       DISPLAY1:              DisplayNode: avg =  13137 usecs, min/max =    111 /  16575 usecs, #exec5
    
     PERF:           FILEIO: avg =      0 usecs, min/max = 4294967295 /      0 usecs, #executions =          0
     PERF:            TOTAL: avg =  32983 usecs, min/max =     12 /  61019 usecs, #executions =        532
    
     PERF:            TOTAL:   30.31 FPS
    
    
    
     =========================
     Demo : Camera Demo
     =========================
    
     s: Save CSIx, VISS and LDC outputs
    
     p: Print performance statistics
    
     x: Exit
    
     Enter Choice: 
    
    
     =========================
     Demo : Camera Demo
     =========================
    
     s: Save CSIx, VISS and LDC outputs
    
     p: Print performance statistics
    
     x: Exit
    
     Enter Choice: [MCU2_0]    180.910470 s: ==========================================================
    [MCU2_0]    180.910572 s:  Capture Status: Instance|0
    [MCU2_0]    180.910606 s: ==========================================================
    [MCU2_0]    180.910653 s:  overflowCount: 0
    [MCU2_0]    180.910688 s:  spuriousUdmaIntrCount: 0
    [MCU2_0]    180.910723 s:  frontFIFOOvflCount: 0
    [MCU2_0]    180.910754 s:  crcCount: 0
    [MCU2_0]    180.910784 s:  eccCount: 0
    [MCU2_0]    180.910814 s:  correctedEccCount: 0
    [MCU2_0]    180.910847 s:  dataIdErrorCount: 0
    [MCU2_0]    180.910880 s:  invalidAccessCount: 0
    [MCU2_0]    180.910913 s:  invalidSpCount: 0
    [MCU2_0]    180.910950 s:  strmFIFOOvflCount[0]: 0
    [MCU2_0]    180.911004 s:  strmFIFOOvflCount[1]: 0
      
    app_run_graph_for_one_pipeline: frame 1638 beginning
    [MCU2_0]    180.911036 s:  Channel Num | Frame Queue Count | Frame De-queue Count | Frame Drop Count | Erro|
      
    app_run_graph_for_one_pipeline: frame 1639 beginning
    [MCU2_0]    180.911095 s: ==========================================================
    [MCU2_0]    180.911146 s:  Capture Status: Instance|1
      
    app_run_graph_for_one_pipeline: frame 1640 beginning
    [MCU2_0]    180.911175 s: ==========================================================
    [MCU2_0]    180.911218 s:  overflowCount: 0
    [MCU2_0]    180.911252 s:  spuriousUdmaIntrCount: 0
    [MCU2_0]    180.911286 s:  frontFIFOOvflCount: 0
    [MCU2_0]    180.911318 s:  crcCount: 0
    [MCU2_0]    180.911348 s:  eccCount: 0
    [MCU2_0]    180.911379 s:  correctedEccCount: 0
    [MCU2_0]    180.911453 s:  dataIdErrorCount: 0
    [MCU2_0]    180.911489 s:  invalidAccessCount: 0
    [MCU2_0]    180.911522 s:  invalidSpCount: 0
    [MCU2_0]    180.911560 s:  strmFIFOOvflCount[0]: 0
    [MCU2_0]    180.911600 s:  strmFIFOOvflCount[1]: 0
    [MCU2_0]    180.911628 s:  Channel Num | Frame Queue Count | Frame De-queue Count | Frame Drop Count | Erro|
    [MCU2_0]    180.911707 s:            0 |              1639 |                 1637 |             1992 |     |
    [MCU2_0]    180.911841 s:            1 |              1639 |                 1637 |              179 |     |
      
    app_run_graph_for_one_pipeline: frame 1641 beginning
      
    app_run_graph_for_one_pipeline: frame 1642 beginning
      
    app_run_graph_for_one_pipeline: frame 1643 beginning
      
    app_run_graph_for_one_pipeline: frame 1644 beginning
      
    app_run_graph_for_one_pipeline: frame 1645 beginning
      
    app_run_graph_for_one_pipeline: frame 1646 beginning
      
    app_run_graph_for_one_pipeline: frame 1647 beginning
      
    app_run_graph_for_one_pipeline: frame 1648 beginning
    Looking forward to your updates.

    Regards,

    Barry


  • Hi Berry,

    But in this case, there are a lot of frame drops, Maybe, this is why graph is not running at correct speed. 

    [MCU2_0] 180.911628 s: Channel Num | Frame Queue Count | Frame De-queue Count | Frame Drop Count | Erro|
    [MCU2_0] 180.911707 s: 0 | 1639 | 1637 | 1992 | |
    [MCU2_0] 180.911841 s: 1 | 1639 | 1637 | 179 | |

    There is no other error reported by the capture, so most likely, CSIRX is able to receive data at 60fps.

    [MCU2_0] 180.910572 s: Capture Status: Instance|0
    [MCU2_0] 180.910606 s: ==========================================================
    [MCU2_0] 180.910653 s: overflowCount: 0
    [MCU2_0] 180.910688 s: spuriousUdmaIntrCount: 0
    [MCU2_0] 180.910723 s: frontFIFOOvflCount: 0
    [MCU2_0] 180.910754 s: crcCount: 0
    [MCU2_0] 180.910784 s: eccCount: 0
    [MCU2_0] 180.910814 s: correctedEccCount: 0
    [MCU2_0] 180.910847 s: dataIdErrorCount: 0
    [MCU2_0] 180.910880 s: invalidAccessCount: 0
    [MCU2_0] 180.910913 s: invalidSpCount: 0
    [MCU2_0] 180.910950 s: strmFIFOOvflCount[0]: 0
    [MCU2_0] 180.911004 s: strmFIFOOvflCount[1]: 0

    But in the graph performance, capture is only one running slower.

     NODE:       CAPTURE1:             capture_node: avg =  32851 usecs, min/max =     73 /  86440 usecs, #exec5

    Are you using enough number of buffers in the capture node? This could be one reason why capture is dropping a lot of frames and so running slower. 

    Regards,

    Brijesh

  • Hi Brijesh,

    thank you for your reply.

    1). We found that only more than 30 FPS after running is related to enable 2 displays to send superframe code in the multicam demo.

    So we rolled back the code and only enabled 2camera in the multi demo. After running, the frame rate could reach 60, but the Frame Drop Count kept increasing. I tried increasing the value of CAPTURE_BUFFER_Q_DEPTH. The Frame Drop Count improved but still increased.

    The following is 'P' when the buffer has not been changed:

    #define CAPTURE_BUFFER_Q_DEPTH (4) #define APP_BUFFER_Q_DEPTH (4) #define APP_PIPELINE_DEPTH (7)

    
     frame_id:6706 
     frame_id:6707 
     frame_id:6708 
     frame_id:6709 
     frame_id:6710 
     frame_id:6711 
     frame_id:6712 
     frame_id:6713 
     frame_id:6714 
     frame_id:6715 
     frame_id:6716 
     frame_id:6717 
     frame_id:6718 
     frame_id:6719 
     frame_id:6720 
     frame_id:6721 
     frame_id:6722 
     frame_id:6723 
     frame_id:6724 
     frame_id:6725 
     frame_id:6726 
     frame_id:6727 
     frame_id:6728 
    p frame_id:6729 
     frame_id:6730 
     frame_id:6731 
     frame_id:6732 
     frame_id:6733 
     frame_id:6734 
     frame_id:6735 
     frame_id:6736 
     frame_id:6737 
     frame_id:6738 
     frame_id:6739 
     frame_id:6740 
     frame_id:6741 
     frame_id:6742 
     frame_id:6743 
     frame_id:6744 
     frame_id:6745 
    
    
    
    Summary of CPU load,
    ====================
    
    CPU: mpu1_0: TOTAL LOAD =   0.46 % ( HWI =   0.11 %, SWI =   0. 0 % )
    CPU: mcu2_0: TOTAL LOAD =   6. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU: mcu2_1: TOTAL LOAD =   1. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c6x_1: TOTAL LOAD =   0. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c6x_2: TOTAL LOAD =   1. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c7x_1: TOTAL LOAD =   0. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    
    
    HWA performance statistics,
    ===========================
    
    
    
    DDR performance statistics,
    ===========================
    
    DDR: READ  BW: AVG =    366 MB/s, PEAK =   1538 MB/s
    DDR: WRITE BW: AVG =    709 MB/s, PEAK =   2346 MB/s
    DDR: TOTAL BW: AVG =   1075 MB/s, PEAK =   3884 MB/s
    
    
    Detailed CPU performance/memory statistics,
    ===========================================
    
    DDR_SHARED_MEM: Alloc's: 10 alloc's of 47186180 bytes 
    DDR_SHARED_MEM: Free's : 0 free's  of 0 bytes 
    DDR_SHARED_MEM: Open's : 10 allocs  of 47186180 bytes 
    DDR_SHARED_MEM: Total size: 536870912 bytes 
    
    CPU: mcu2_0: TASK:           IPC_RX:   0.37 %
    CPU: mcu2_0: TASK:       REMOTE_SRV:   0. 3 %
    CPU: mcu2_0: TASK:        LOAD_TEST:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CPU_0:   0. 0 %
    CPU: mcu2_0: TASK:        TIVX_V1NF:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_V1LDC1:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_V1SC1:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_V1MSC2:   0. 0 %
    CPU: mcu2_0: TASK:       TIVXVVISS1:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT1:   2.63 %
    CPU: mcu2_0: TASK:       TIVX_CAPT2:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_DISP1:   2. 2 %
    CPU: mcu2_0: TASK:       TIVX_DISP2:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CSITX:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT3:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT4:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT5:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT6:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT7:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT8:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DPM2M1:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DPM2M2:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DPM2M3:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DPM2M4:   0. 0 %
    
    CPU: mcu2_0: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16688896 B ( 99 % unused)
    CPU: mcu2_0: HEAP:           L3_MEM: size =     262144 B, free =     261888 B ( 99 % unused)
    
    CPU: mcu2_1: TASK:           IPC_RX:   0. 0 %
    CPU: mcu2_1: TASK:       REMOTE_SRV:   0. 2 %
    CPU: mcu2_1: TASK:        LOAD_TEST:   0. 0 %
    CPU: mcu2_1: TASK:       TIVX_CPU_1:   0. 0 %
    CPU: mcu2_1: TASK:         TIVX_SDE:   0. 0 %
    CPU: mcu2_1: TASK:         TIVX_DOF:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_RX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU: mcu2_1: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16773376 B ( 99 % unused)
    CPU: mcu2_1: HEAP:           L3_MEM: size =     262144 B, free =     262144 B (100 % unused)
    
    CPU:  c6x_1: TASK:           IPC_RX:   0. 0 %
    CPU:  c6x_1: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c6x_1: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c6x_1: TASK:         TIVX_CPU:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU:  c6x_1: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16773376 B ( 99 % unused)
    CPU:  c6x_1: HEAP:           L2_MEM: size =     229376 B, free =     229376 B (100 % unused)
    CPU:  c6x_1: HEAP:  DDR_SCRATCH_MEM: size =   50331648 B, free =   50331648 B (100 % unused)
    
    CPU:  c6x_2: TASK:           IPC_RX:   0. 0 %
    CPU:  c6x_2: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c6x_2: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c6x_2: TASK:         TIVX_CPU:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    
     frame_id:6746 
     frame_id:6747 
    CPU:  c6x_2: HEAP:    DDR_LOCAL_MEM: size =   16777216 B, free =   16773376 B ( 99 % unused)
    CPU:  c6x_2: HEAP:           L2_MEM: size =     229376 B, free =     229376 B (100 % unused)
    CPU:  c6x_2: HEAP:  DDR_SCRATCH_MEM: size =   50331648 B, free =   50331648 B (100 % unused)
    
    CPU:  c7x_1: TASK:           IPC_RX:   0. 0 %
    CPU:  c7x_1: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c7x_1: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P1:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P2:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P3:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P4:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P5:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P6:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P7:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_C71_P8:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU:  c7x_1: HEAP:    DDR_LOCAL_MEM: size =  268435456 B, free =  268435200 B ( 99 % unused)
    CPU:  c7x_1: HEAP:           L3_MEM: size =    8159232 B, free =    8159232 B (100 % unused)
    CPU:  c7x_1: HEAP:           L2_MEM: size =     458752 B, free =     458752 B (100 % unused)
    CPU:  c7x_1: HEAP:           L1_MEM: size =      16384 B, free =      16384 B (100 % unused)
    CPU:  c7x_1: HEAP:  DDR_SCRATCH_MEM: size =  385875968 B, free =  385875968 B (100 % unused)
    
    
    GRAPH: app_multi_cam_graph (#nodes =   2, #executions =   6747)
     NODE:       CAPTURE1:             capture_node: avg =  10781 usecs, min/max =     89 /  26736 usecs, #executions =   7
     NODE:       DISPLAY1:              DisplayNode: avg =   5634 usecs, min/max =     66 /  21096 usecs, #executions =   7
    
     PERF:           FILEIO: avg =      0 usecs, min/max = 4294967295 /      0 usecs, #executions =          0
     PERF:            TOTAL: avg =  16506 usecs, min/max =     34 /  33311 usecs, #executions =        224
    
     PERF:            TOTAL:   60.58 FPS
    
    
    
     =========================
     Demo : Camera Demo
     =========================
    
     s: Save CSIx, VISS and LDC outputs
    
     p: Print performance statistics
    
     x: Exit
    
     Enter Choice: 
    
    
     =========================
     Demo : Camera Demo
     =========================
    
     s: Save CSIx, VISS and LDC outputs
    
     p: Print performance statistics
    
     x: Exit
    
     Enter Choice: [MCU2_0]    199.241707 s: ==========================================================
    [MCU2_0]    199.241803 s:  Capture Status: Instance|0
    [MCU2_0]    199.241852 s: ==========================================================
    [MCU2_0]    199.241906 s:  overflowCount: 0
    [MCU2_0]    199.241941 s:  spuriousUdmaIntrCount: 0
    [MCU2_0]    199.241977 s:  frontFIFOOvflCount: 0
    [MCU2_0]    199.242009 s:  crcCount: 0
    [MCU2_0]    199.242039 s:  eccCount: 0
    [MCU2_0]    199.242072 s:  correctedEccCount: 0
    [MCU2_0]    199.242107 s:  dataIdErrorCount: 0
    [MCU2_0]    199.242140 s:  invalidAccessCount: 0
    [MCU2_0]    199.242174 s:  invalidSpCount: 0
    [MCU2_0]    199.242213 s:  strmFIFOOvflCount[0]: 0
    [MCU2_0]    199.242252 s:  strmFIFOOvflCount[1]: 0
    [MCU2_0]    199.242282 s:  Channel Num | Frame Queue Count | Frame De-queue Count | Frame Drop Count | Error Frame Cou|
    [MCU2_0]    199.242342 s: ==========================================================
    [MCU2_0]    199.242389 s:  Capture Status: Instance|1
    [MCU2_0]    199.242418 s: ==========================================================
    [MCU2_0]    199.242460 s:  overflowCount: 0
     frame_id:6748 
    [MCU2_0]    199.242494 s:  spuriousUdmaIntrCount: 0
    [MCU2_0]    199.242529 s:  frontFIFOOvflCount: 0
     frame_id:6749 
    [MCU2_0]    199.242562 s:  crcCount: 0
    [MCU2_0]    199.242591 s:  eccCount: 0
    [MCU2_0]    199.242622 s:  correctedEccCount: 0
    [MCU2_0]    199.242656 s:  dataIdErrorCount: 0
    [MCU2_0]    199.242689 s:  invalidAccessCount: 0
    [MCU2_0]    199.242723 s:  invalidSpCount: 0
    [MCU2_0]    199.242760 s:  strmFIFOOvflCount[0]: 0
    [MCU2_0]    199.242800 s:  strmFIFOOvflCount[1]: 0
    [MCU2_0]    199.242837 s:  Channel Num | Frame Queue Count | Frame De-queue Count | Frame Drop Count | Error Frame Cou|
    [MCU2_0]    199.242915 s:            0 |              6750 |                 6749 |              203 |                |
    [MCU2_0]    199.242992 s:            1 |              6750 |                 6749 |              203 |                |
     frame_id:6750 
     frame_id:6751 
     frame_id:6752 
     frame_id:6753 
     frame_id:6754 
     frame_id:6755 
     frame_id:6756 
     frame_id:6757 
     frame_id:6758 
     frame_id:6759 
     frame_id:6760 
     frame_id:6761 
     frame_id:6762 
     frame_id:6763 
     frame_id:6764 
     frame_id:6765 
     frame_id:6766 
     frame_id:6767 
     frame_id:6768 
     frame_id:6769 
     frame_id:6770 
     frame_id:6771 
    

    2).

    According to the camera bandwidth requirements, the deserializer rate is set to 1800 MHz. When trying to set the CSI to any value greater than CSIRX_LANE_BAND_SPEED_1350_TO_1500_MBPS, it will get stuck after running: (CSIRX cannot get the data)

    log:

    app_run_graph_for_one_pipeline: frame 1 beginning, pipeline:-2,line:1264

    app_run_graph_for_one_pipeline: frame 2 beginning, pipeline:-1,line:1264

    When set to CSIRX_LANE_BAND_SPEED_1350_TO_1500_MBPS, the graph runs, and the frame rate is 60 accompanied by Frame Drop.

    We would like to ask the experts:

    1.What should be set to csi_laneBandSpeed?

    2. What is the cause of the Frame Drop problem? What needs to be done?

    Looking forward to your reply.

    Regards,

    Barry

  • 1). We found that only more than 30 FPS after running is related to enable 2 displays to send superframe code in the multicam demo.

    Sorry, did not get this statement. Do you mean two displays are causing the issue? What are these two displays? 

    Yes, if there are two independent displays/outputs, running asynchronously, there could be issue, but increasing the number of buffers should have helped in this case, because it gives enough margin in case of the error. Are you seeing any other node running slower? Like any other node taking more than 16ms? then graph will eventually slow down and capture will start dropping frames.

    According to the camera bandwidth requirements, the deserializer rate is set to 1800 MHz. When trying to set the CSI to any value greater than CSIRX_LANE_BAND_SPEED_1350_TO_1500_MBPS, it will get stuck after running: (CSIRX cannot get the data)

    Are you enabling deskew calibration sequence in the deserializer output? It is required for the lane band speed higher than 1.5Gbps.

    Regards,

    Brijesh

  • Hi Brijesh,

    thank you for your reply.

    The DESKE description of each TX in the deserializer is: DESKEW_INIT[7:0] and DESKEW_PER[7:0]

    Whether we enable one of them or both, capture can only run when CSIRX_LANE_BAND_SPEED_1350_TO_1500_MBPS.

    1. Should we enable one of DESKEW_INIT and DESKEW_PER or both?

    2.What should be the value of csi_laneBandSpeed in image?

    Looking forward to experts’ help, thank you

    Regards,

    Barry

  • Hi Barry,

    Sorry i am not familiar with this deserializer, so can't help much in the deserializer configuration. 

    From the CSIRX perspective, CSIRX does not support periodic de-skew calibration, so it needs to be available at init time and it is mandatory for the lane speed more than 1.5Gbps. 

    Regards,

    Brijesh