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: How can a graph receive two different data streams at the same time?

Part Number: TDA4VM

Dear exprets,

TDA4 receives two inputs, one is the bypasss input, and the other is the camera connected to TDA4. All feed into TDA4 the same deserializer. The resolution and format of the data may be different. When designing graphs, how can you accept two inputs in the same graph?

Regards,

Xin

  • Hi,

    Well, since the resolution and/or dataformats are different, you will need to create two capture node instances to handle both of them. After that you can connect to any of nodes, probably in the same or different graphs. 

    Regards,

    Brijesh

  • Hi Brijesh,

    If we create multiple capture nodes, how do we bind different sensors to capture?

    Regards,

    Xin

  • Hi Xin,

    Did not get it, what do you mean binding sensor to capture node? Aren't they independent? Maybe you can create separate sensor instance?

    Regards,

    Brijesh

  • Hi Brijesh,

    I mean how do capture nodes relate to sensors, how do capture nodes get images from sensors, how do different sensors correspond to capture nodes?

    Regards,

    Xin

  • Hi Xin,

    But it really depends on how they are connected to the board? Are they connected to the same CSIRX instance? Capture node gets the images from CSIRX module, so need to establish connection between CSIRX and sensor. and that is in the application domain. Node does not really know about sensor.. it just needs to be configured with lane speed, data type and virtual channels.

    Regards,

    Brijesh

  • Hi Brijesh,

    Should sensors corresponding to two different data streams be configured on one CSIRX instance or separately? I checked that the j721e processor should support two CSIRX instances.

    Regards,

    Xin

  • Hi Xin,

    I think even if they are connected to the same CSIRX instance, it is easy to identify them using virtual channel id, because then they must have unique virtual channel id. and you can use it to identify and then configure them. 

    If they are connected to separate CSIRX instances, you would require additional information about channel id to CSIRX instance mapping in the imaging layer.

    But yes, if they output different data type or resolution, then you would require to create separate instance capture node for both of them. Both of these instances can either use same CSIRX instance or different, depending on their physical connection.

    Regards,

    Brijesh

  • Hi Brijesh,

    I'm not sure where the virtual channel ids you mentioned are configured and how to identify them. In the part of the SDK to configure sensor, take imx390 in SDK as an example, the following two functions are called before register configuration:


    Board_fpdU960GetI2CAddr(&i2cInst, &desI2cAddr, BOARD_CSI_INST_0);
    status = appSetupI2CInst(i2cInst);


    In the first function, the CSIRX instance is specified, and then the desI2cAddr is set differently depending on the CSIRX instance, but the first parameter is the same. J721e sets 6u, and then the second function does some initialization by passing the i2cInst argument. Similarly, Ov2775 also sets 6u. Does this parameter have anything to do with the virtual channel id? I didn't find the configuration anywhere else.


    Can you explain how different sensors set the virtual channel ids and then how capture recognizes the different virtual channel ids?

    Regards,

    Xin

  • Hi Xin,

    Virtual channel id is provided to the capture node using chVcNum variable in capture configuration (tivx_capture_params_t). So can you please check what all virtual channel id are you using? and are they all being captured from the same CSIRX instance? 

    Regards,

    Brijesh