Ticket Name: TDA4VMXEVM: app_single_cam issue: only 1st raw capture is working Query Text: Part Number: TDA4VMXEVM Hi, I'm evaluating On Semi AR0323 sensor in TDA4EVM + custom AR0323 sensor board with PSDKRA v0.91. The camera app is app_single_cam, and iss_sensor_ar0233.c is modified for AR0323 (configuration and serdes) power_on, reset, i2c, streaming on are ok, sensor mipi signal is ok. But only 1st raw capture is ok by save_debug_images() in app_single_cam. There're no further operations and display output. Please refer to the following log. tivx_set_debug_zone(VX_ZONE_API/ VX_ZONE_INFO) was added to get tiovx log Regards, Kim HJ root@j7-evm:~/nfs/opt/vision_apps# ./vx_app_single_cam.out APP: Init ... !!! APP_LOG: Mapping 0xb8000000 ... APP_LOG: Mapped 0xb8000000 -> 0xffff9d780000 of size 262144 bytes MEM: Init ... !!! MEM: Init ... Done !!! IPC: Init ... !!! APP_LOG: Mapping 0xb8040000 ... APP_LOG: Mapped 0xb8040000 -> 0xffff777c0000 of size 33292288 bytes APP_LOG: Mapping 0x30e00000 ... APP_LOG: Mapped 0x30e00000 -> 0xffff9dc90000 of size 3072 bytes IPC: Init ... Done !!! REMOTE_SERVICE: Init ... !!! REMOTE_SERVICE: Init ... Done !!! APP: Init ... Done !!! 0.000144 s: VX_ZONE_INIT:Enabled 0.000153 s: VX_ZONE_ERROR:Enabled 0.000157 s: VX_ZONE_WARNING:Enabled 0.000161 s: VX_ZONE_API:Enabled 0.000165 s: VX_ZONE_INFO:Enabled 0.000206 s: VX_ZONE_INFO:### kimhj source_platform_psdk_j7_common_tivx_init.c 0.000485 s: VX_ZONE_INIT:[tivxInit:71] Initialization Done !!! 0.000669 s: VX_ZONE_INIT:[tivxHostInit:35] Initialization Done for HOST !!! 0.001239 s: ISS: Enumerating sensors ... !!! 0.004304 s: ISS: Enumerating sensors ... found 0 : IMX390-UB953_D3 0.004327 s: ISS: Enumerating sensors ... found 1 : AR0233-UB953_MARS 0.004332 s: ISS: Enumerating sensors ... found 2 : AR0820-UB953_LI [MCU2_1] 1331.204468 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_CREATE [MCU2_1] 1331.204549 s: Sensor at index 0 = IMX390-UB953_D3 [MCU2_1] 1331.204584 s: Sensor at index 1 = AR0233-UB953_MARS [MCU2_1] 1331.204611 s: Sensor at index 2 = AR0820-UB953_LI 3 sensor(s) found Supported sensor list: a : IMX390-UB953_D3 b : AR0233-UB953_MARS c : AR0820-UB953_LI Select a sensor b Sensor selected : AR0233-UB953_MARS LDC Selection Yes(1)/No(0) LDC Selection Yes(1)/No(0) 0 Querying AR0233-UB953_MARS 28.155107 s: ISS: Querying sensor [AR0233-UB953_MARS] ... !!! 28.155393 s: ISS: Querying sensor [AR0233-UB953_MARS] ... Done !!! 28.155399 s: ISS: Initializing sensor [AR0233-UB953_MARS], doing IM_SENSOR_CMD_PWRON ... !!! [MCU2_1] 1359.357684 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_QUERY [MCU2_1] 1359.357737 s: Received Query for AR0233-UB953_MARS [MCU2_1] 1359.357790 s: Sensor name is IMX390-UB953_D3 [MCU2_1] 1359.357836 s: Sensor name is AR0233-UB953_MARS [MCU2_1] 1359.357951 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_PWRON 28.170422 s: ISS: Initializing sensor [AR0233-UB953_MARS], doing IM_SENSOR_CMD_CONFIG ... !!! [MCU2_1] 1359.372979 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_CONFIG [MCU2_1] 1359.373033 s: Application requested features = 0x158 [MCU2_1] [MCU2_1] 1359.373069 s: UB960 config start [MCU2_1] 1359.612927 s: End of UB960 config [MCU2_1] 1359.612969 s: Configuring camera # 0 [MCU2_1] 1359.712922 s: Configuring AR0233 imager .. Please wait till it finishes [MCU2_1] 1360.780909 s: AR0233 config done [MCU2_1] 1360.781294 s: AR0323_Probe SUCCESS : Read expected value 0xd56 at chip ID register 0x3000 [MCU2_1] 1360.781338 s: IM_SENSOR_CMD_CONFIG returning status = 0 29.578991 s: ISS: Initializing sensor [AR0233-UB953_MARS] ... Done !!! Enabling LDC 32.595305 s: VX_ZONE_INFO:[ownGraphNodeKernelInit:547] kernel init for node 0, kernel com.ti.capture ... 32.836263 s: VX_ZONE_INFO:[ownGraphNodeKernelInit:559] kernel init for node 0, kernel com.ti.capture ... done !!! 32.836270 s: VX_ZONE_INFO:[ownGraphNodeKernelInit:547] kernel init for node 1, kernel com.ti.hwa.vpac_viss ... 33.065911 s: VX_ZONE_INFO:[ownGraphNodeKernelInit:559] kernel init for node 1, kernel com.ti.hwa.vpac_viss ... done !!! 33.065918 s: VX_ZONE_INFO:[ownGraphNodeKernelInit:547] kernel init for node 2, kernel com.ti.imaging.aewb ... 33.067915 s: VX_ZONE_INFO:[ownGraphNodeKernelInit:559] kernel init for node 2, kernel com.ti.imaging.aewb ... done !!! 33.067921 s: VX_ZONE_INFO:[ownGraphNodeKernelInit:547] kernel init for node 3, kernel com.ti.hwa.vpac_ldc ... [MCU2_1] 1364.268670 s: VX_ZONE_INFO:[tivxAewbCreate:594] tivxAewbCreate : DCC ID = 233 [MCU2_1] 1364.268726 s: VX_ZONE_INFO:[tivxAewbCreate:595] tivxAewbCreate : Image Format = 0 [MCU2_1] 1364.268765 s: VX_ZONE_INFO:[tivxAewbCreate:596] tivxAewbCreate : Phase = 3 [MCU2_1] 1364.268800 s: VX_ZONE_INFO:[tivxAewbCreate:597] tivxAewbCreate : awb_mode = 0 [MCU2_1] 1364.268834 s: VX_ZONE_INFO:[tivxAewbCreate:598] tivxAewbCreate : awb_mode = 0 [MCU2_1] 1364.268870 s: VX_ZONE_INFO:[tivxAewbCreate:599] tivxAewbCreate : awb_num_skip_frames = 0 [MCU2_1] 1364.268938 s: VX_ZONE_INFO:[tivxAewbCreate:600] tivxAewbCreate : ae_num_skip_frames = 0 [MCU2_1] 1364.268981 s: VX_ZONE_INFO:[tivxAewbCreate:607] tivxAewbCreate : DCC Numbytes = 26307 [MCU2_1] 1364.269043 s: VX_ZONE_INFO:[tivxAewbCreate:618] Before dcc_update : awb_calb_data.radius = 0xf8f8fcf8 [MCU2_1] 1364.269369 s: VX_ZONE_INFO:[tivxAewbCreate:623] After dcc_update : awb_calb_data.radius = 0x32 33.169627 s: VX_ZONE_INFO:[ownGraphNodeKernelInit:559] kernel init for node 3, kernel com.ti.hwa.vpac_ldc ... done !!! 33.169634 s: VX_ZONE_INFO:[ownGraphNodeKernelInit:547] kernel init for node 4, kernel com.ti.hwa.display ... 33.170265 s: VX_ZONE_INFO:[ownGraphNodeKernelInit:559] kernel init for node 4, kernel com.ti.hwa.display ... done !!! 33.238250 s: VX_ZONE_INFO:[tivxDataRefQueueEnqueueReadyRef:88] Q (queue=67, ref=2) 33.238263 s: VX_ZONE_INFO:[tivxDataRefQueueEnqueueReadyRef:88] Q (queue=75, ref=18) 33.238270 s: VX_ZONE_INFO:[tivxDataRefQueueEnqueueReadyRef:88] Q (queue=83, ref=19) 33.238277 s: VX_ZONE_INFO:[tivxDataRefQueueEnqueueReadyRef:88] Q (queue=67, ref=4) 33.238283 s: VX_ZONE_INFO:[tivxDataRefQueueEnqueueReadyRef:88] Q (queue=75, ref=19) 33.238289 s: VX_ZONE_INFO:[tivxDataRefQueueEnqueueReadyRef:88] Q (queue=83, ref=20) 33.238294 s: ISS: Starting sensor [AR0233-UB953_MARS] ... !!! [MCU2_1] 1364.440750 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_STREAM_ON [MCU2_1] 1364.440825 s: IM_SENSOR_CMD_STREAM_ON: channel_mask = 0x1 [MCU2_1] 1364.440857 s: Starting camera # 0 [MCU2_1] 1364.440919 s: Entering IssSensor_Start 33.248648 s: ISS: Starting sensor [AR0233-UB953_MARS] ... !!! 33.248657 s: VX_ZONE_INFO:[tivxDataRefQueueEnqueueReadyRef:88] Q (queue=67, ref=6) 33.248667 s: VX_ZONE_INFO:[ownGraphScheduleGraph:680] Scheduling Graph (graph=102, pipe=0) 33.248673 s: VX_ZONE_INFO:[ownNodeKernelSchedule:544] Scheduling Node (node=9, pipe=0) 33.248685 s: VX_ZONE_INFO:[tivxDataRefQueueEnqueueReadyRef:88] Q (queue=75, ref=20) 33.248692 s: VX_ZONE_INFO:[tivxDataRefQueueEnqueueReadyRef:88] Q (queue=83, ref=18) 33.248699 s: VX_ZONE_INFO:[tivxDataRefQueueDequeueDoneRef:161] DQ (queue=68) .. NO BUFFER [MCU2_1] 1364.450899 s: UB960 config start [MCU2_1] 1364.450979 s: End of UB960 config [MCU2_1] 1364.451179 s: VX_ZONE_INFO:[tivxTargetNodeDescNodeExecute:584] Node (node=9, pipe=0) acquiring parameters on target 00000068 [MCU2_1] 1364.451266 s: VX_ZONE_INFO:[tivxTargetNodeDescAcquireParameterForPipeup:249] Parameter acquired for pipe up (node=9, pipe=0, data_ref_q=61, queue=67, ref=2) [MCU2_1] 1364.451421 s: VX_ZONE_INFO:[tivxTargetNodeDescAcquireParameterForPipeup:249] Parameter acquired for pipe up (node=9, pipe=0, data_ref_q=61, queue=67, ref=4) [MCU2_1] 1364.451546 s: VX_ZONE_INFO:[tivxTargetNodeDescAcquireParameter:177] Parameter acquired (node=9, pipe=0, data_ref_q=61, queue=67, ref=6) [MCU2_1] 1364.451618 s: VX_ZONE_INFO:[tivxTargetNodeDescNodeExecute:642] Node (node=9, pipe=0) executing on target 00000068 [MCU2_1] 1364.496012 s: VX_ZONE_INFO:[tivxTargetNodeDescNodeExecute:665] Node (node=9, pipe=0) executing on target 00000068 ... DONE !!! [MCU2_1] 1364.496096 s: VX_ZONE_INFO:[tivxTargetNodeDescReleaseParameter:442] Parameter NOT released (node=9, pipe=0, data_ref_q=61, ref=2, users=1) [MCU2_1] 1364.496212 s: VX_ZONE_INFO:[tivxTargetNodeDescNodeExecute:584] Node (node=21, pipe=0) acquiring parameters on target 00000067 [MCU2_1] 1364.496291 s: VX_ZONE_INFO:[tivxTargetNodeDescAcquireParameter:177] Parameter acquired (node=21, pipe=0, data_ref_q=69, queue=75, ref=18) [MCU2_1] 1364.496362 s: VX_ZONE_INFO:[tivxTargetNodeDescAcquireParameter:187] Parameter ALREADY acquired (node=21, pipe=0, data_ref_q=61, ref=2) [MCU2_1] 1364.496432 s: VX_ZONE_INFO:[tivxTargetNodeDescAcquireParameter:177] Parameter acquired (node=21, pipe=0, data_ref_q=85, queue=88, ref=10) [MCU2_1] 1364.496499 s: VX_ZONE_INFO:[tivxTargetNodeDescAcquireParameter:177] Parameter acquired (node=21, pipe=0, data_ref_q=89, queue=92, ref=16) [MCU2_1] 1364.496559 s: VX_ZONE_INFO:[tivxTargetNodeDescNodeExecute:642] Node (node=21, pipe=0) executing on target 00000067 ========================== Demo : Single Camera w/ 2A ========================== p: Print performance statistics s: Save Sensor RAW, VISS Output and H3A output images to File System x: Exit Enter Choice: s Test data path is NULL. Defaulting to current folder RAW file name capture/./img_0000_1920x1080.g12l YUV file name capture/./img_0000.yuv out width = 1920 out height = 1080 out format = 842094158 H3A file name capture/./h3a_0000.bin Responses: I found a very interesting point. It works well if resolution configuration is larger than real sensor output size. * sensor mipi-csi2 real output resolution: 1920x1080 - tivx_raw_image_create_params_t.width = 1920, height = 1080 ==> blocking (only 1st raw capture ok) - tivx_raw_image_create_params_t.width = 1920, height = 1280 ==> ok (preview display ok) Are there any memory overwrites between frame buffers, corruption of meta data? This is most probably because of H3A DCC configuration. Please modify the following AR0233_viss_h3a_aewb_cfg.xml in both of the folders below imaging\sensor_drv\src\ar0233\dcc_xmls\linear imaging\sensor_drv\src\ar0233\dcc_xmls\wdr black row vertical position should be no more than frame height - blk_win_numlines. Please change the following setting 2, //blk_win_numlines 1094, //blk_row_vpos to 2, //blk_win_numlines 1078, //blk_row_vpos Run the script generate_dcc.bat on a Windows PC. This will update header files in the folder imaging\sensor_drv\include Rebuild SDK and try the camera app It's ok after changing H3A size in DCC configurations. Do you have plans to implement basic parameters in sensor drivers? For TDA2, they are implemented in sensor drivers, so it was worked without DCC configurations. In TDA4 SW architecture, we are trying to separate ISP tuning from sensor driver. All ISP tuning parameters will be specified through DCC.