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.

TDA4VH-Q1: TDA4VH-Q1

Part Number: TDA4VH-Q1
Other Parts Discussed in Thread: TDA4VM, TDA4VH

Dear support team  :  

Issue Description
I am debugging front view cameras AR0233 using the app_single_cam, I wnat to capture 1920*1280 AR0233 raw image . Encountered the following issues

1)Using app_single_cam with default capture parameter configuration (instId==0). During the test, "Print performance statistics" displays fps with data, but the captured raw image is empty. I Open the attachment's "img_0000.raw" in binary and the display is all 0x00

As shown in the figure:
para code: single-cam-default-config.png

log: AR0233-singlecam-default-config-fps-OK.log

AR0233-singlecam-default-config-fps-OK.log

2) The front camera is connected to CSI2, so I configured instId=CSI2 to 2, but I found that VX was reported VX_ZONE_ERROR, FPS becomes 0, as shown in the figure
modify code :set-instid-2-error.png
log:AR0233-singlecam-set-instId-2-VX_ZONE_ERROR.log

AR0233-singlecam-set-instId-2-VX_ZONE_ERROR.log

Required support:
Please help that how to configure the parameters to capture the camera raw data for CSI2, thank you ! 

  • Hi,

    I really doubt the capture is working. I think capture node is just sending out dummy frame, can you please try commenting out call to app_send_test_frame API in the camera demo? After this you will not see reported fps to be 0.

    Regarding AR233 camera, how is it connected to the TDA4VM? Can you please help us understand the setup? 

    I remember we had enabled AR0233 camera for you sometime back. Is it not working now? Have you tried changing camera/board? Are the serdes and sensor settings applied correctly? 

    Regards,

    Brijesh

  • HI  

    Do you mean that I don't need to modify the code for single cam when using csi2rx?

    I will conduct the test according to your suggestion, thank you!

  • Hi,

    No, i meant you do require change single camera application for this sensor and for the new SERDES. In the SDK, i think it uses ub960 + ub953 SERDES for AR0233 sensor, i think it is not same on DesaySV board, so this needs to be changed. 

    Regards,

    Brijesh 

  • Hi, Brijesh

    please check my reply ,Do you have any other suggestions for this issue ,thank you ! 

    1) The AR0233 parameter  was merged from TDA4VM, and currently I am also synchronously troubleshooting the config parameter 

    2) about commenting out call to app_send_test_frame API in the camera demo

    a) Modify as shown in the following figure

    b) run demo ,report bellow error  

       - CAPTURE: WARNING: Error frame not provided using tivxCaptureRegisterErrorFrame, defaulting to waiting for forever

       - FPS becomes 0

       - last time , do not commenting out call to app_send_test_frame  , FPS has a numerical value

       - The detailed log is as follows

         commenting-out-app_send_test_frame.log

  • HI  

    1) I have checked the AR0233 register configuration section and found no abnormalities. The key registers read back from the camera also show normal.  I think the camera is already working properly .

    2) Most of the saved raw images now are 0x00. Is it possible that the wrong buffer was selected? The camera is connected to csirx2, but our test case   use numInst==2 ,just like bellow pic ,please help to check it  ?

  • Hi zheng,

    If the error frame is not provided, then fps would be 0 if camera is not outputting. Is this camera already brought up with TDA4VM? What all changes are done for TDA4VH? For which CSIRX instance are you trying to bringup this camera? Also which SDK release are you using? 

    Regards,

    Brijesh

  • HI  

    1) Yes, this camera is brought up on TDA4VM, and the camera driver code is also ported from TDA4VM. 

    2) This camera is linked to CSI2-RX, as shown in the pic. I would like to know if I need to adapt the code for the single cam .

    3) SDK version: pdk_ J784s4_ 08_ 06_ 00_ thirty-one

  • Hi zheng,

    On TDA4VH, there are three CSIRX instances, its not clear from the above picture which CSIRX instance is used. and when maxim deserializer output is connected to. Can you please check this first?

    Regards,

    Brijesh

  • Hello, Brijesh

    I have rechecked the schematic and found that the maxim deserializer is connected to CSI1-RX. Thank you!

  • Hello Zheng,

    Can you please try with below change?

        local_capture_config.numInst  = 1U;/* Configure both instances */
        local_capture_config.numCh = 1U;/* Single cam. Only 1 channel enabled */
        {
            vx_uint8 ch, id, lane, q;
            for(id = 0; id < local_capture_config.numInst; id++)
            {
                local_capture_config.instId[id]                       = 1;
                local_capture_config.instCfg[id].enableCsiv2p0Support = (uint32_t)vx_true_e;
    

    Regards,

    Brijesh

  • HI  

      The issue is still NOK  ,thank you ! 

       

  • Hi zheng,

    Looking at the pin number in the data sheet, it confirms that you are using CSIRX instance1. The above changes should have helped in case the sensor driver is ported correctly. I am doubting there is some issue still in the sensor driver. 

    Can you please check if below are taken care? Also at what lane speed this sensor/deserializer is transmitting data? 

    - Number of lanes

    - Lane Polarity

    - Lane speed

    - Virtual channel and data type

    - sensor/deserializer is enabled only after configuring PHY

    Regards,

    Brijesh

  • Hi zheng,

    Can you please try with below change?

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    local_capture_config.numInst = 1U;/* Configure both instances */
    local_capture_config.numCh = 1U;/* Single cam. Only 1 channel enabled */
    {
    vx_uint8 ch, id, lane, q;
    for(id = 0; id < local_capture_config.numInst; id++)
    {
    local_capture_config.instId[id] = 1;
    local_capture_config.instCfg[id].enableCsiv2p0Support = (uint32_t)vx_true_e;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Could you please do a quick test as mentioned below?

    -> Please undo the changes provided above.

    -> Run the application and when asked for "Select camera port index 0-11: ", Please provide camera port "4". 


     (From your logs, I see that you had selected this as "1", but port 0,1,2,3 is for CSI 0 instance & port 4, 5, 6, 7 is for CSI 1 instance)


    Could you please test the above and let me know if this is working for you?

    Regards,

    Nikhil

  • HI Brijesh:

    I have tested and selected port 4, still NOK .  The underlying driver will run to 'UB96x_UYVY_TESTPATTERN', which is not supported by TDA4VH.

  • Hi zheng,

    Did not get it, what do you mean by "The underlying driver will run to 'UB96x_UYVY_TESTPATTERN'," ? Is it trying to enable YUV422 test pattern in Ub960?

    Regards,

    Brijesh

  • Hi 

    I mean choosing index 4 will load the camera driver of 'UB96x_UYVY_TESTPATTERN' and it cannot be used.

  • Hi zheng,

    Please select "4" for the "Camera Port Selection", not for camera selection. This option ie "camera port selection", will select the channel 4, which is virtual channel 0 on CSIRX instance-1. 

    Regards,

    Brijesh 

  • HI  

    Yes, it is OK to test according to your method. There is no need to modify the code of the single cam, as long as you select a right camera index during testing.

    My testing operation is as follows:

    There are 2 channels on my CSI1-rx camera,

    For cam0

    1) Select camera port index 4

    2) Sensor selected: AR0233-SINGLE

    For cam1

    1) Select camera port index 5

    2) Sensor selected: AR0233-SINGLE_1

    I have a question:

    This selection operation can be confusing, because referring to the printed name, the index needs to select 1, but in reality, it needs to be selected 4  . 

    Was this the original design?

  • Hi zheng,

    Sorry, didn't get the question. what do you mean by "original design"? Single camera demo has not been changed since a long time..  

    Essentially, this application assumes that there are at max 4 channels supported on each CSIRX instances. So channel 0-3 are for CSI RX instanc0 and channels 4-7 are for CSIRX instance-1.. This is done because on EVM, we use UB960 and UB960 supports at max 4 channels on each port.. 

    From the above reply, does it mean you are able to see output from AR0233 sensor for cam0 and cam1? 

    Regards,

    Brijesh

  •  Hi 

    Yes, it is currently possible to test the camera data of AR0233 from csi1-rx.

    I'll double check again, thank you!

  • Hi zheng,

    ok, thanks for the update. Please close this ticket if you think the issue is resolved. 

    Regards,

    Brijesh

  • Hi 

    I need your help to answer a few more questions

    1) chInstMap is the csi instance used for saving, right?

    2) chVcNum represents the corresponding channel number on the instance, right

    3) What does instId represent? The annotation says it is CSI2Rx Instance Id, but what is the difference between it and chInstMap? In this issue, I only have csi1rx but not csi0rx, so do I not need to initialize the part of csi0rx? right?

  • Hi zheng,

    Driver/Node provides a feature by which it can operate on multiple CSIRX instances. Lets say when we capture 8 channels, 4 channels are coming from CSIRX instance0 and next 4 channels are from CSIRX instance1. In this case, a single CSIRX node can operate on both the instances and can provide frames from all 8 cameras. 

    All of the above configuration is added to support this feature. 

    chInstMap is used to tell the driver that this channel is being captured on which CSIRX instance. This is channel specific paramter

    chVcNum: is channel's actual virtual channel number on that instance, this also is channel specific parameter. 

    instId: provides list of instance ids that node is going to operate on.

    We need to provide configuration for all of these variables to properly configure single or multiple CSIRX instances. 

    Regards,

    Brijesh 

  • Hi Brijesh:

    Thank you for your professional answer. This question can be closed now

    Thank you!