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 CSI2 csirx udma cannot receive camera data

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

Tool/software:

Hi, 

TI experts, 

Now we are using SDK9.0 on our custom board. On the board, there is a deserializer MAX96716 connected to CSI2 and CSI1. 

Let me explain briefly, MAX96716 has two CSI outputs, which are connected to CSI1 and CSI2 of TDA4VH respectively. We now copy the camera data from CSI2 to CSI1 inside the deserializer. Unfortunately, when I use multi cam demo to output image, CSI1 can receive camera data normally but CSI2 cannot.

I tried the following debug operations: 

1. I used an oscilloscope to measure the output pin of the deserializer, and both the two CSI outputs of MAX96716 has a waveform of 30fps. I'm sure ser-des configuration is right because CSI1 can receive image normally.

2. I read the value of register 0x04524048 and the value is changing between 0x00333306 and 0x00222206. 

3. I added some logs in function CsirxDrv_udmaCQEventCb, but these logs were not printed, so I think udma did not receive the data.

4. Then I read more register of CSI2 add below are the register value I read:

register value
0x04524060 0x10000000
0x04524100 0x00000001
0x04524104 0x80000111

Could you please help me check where the problem is? Thanks a lot. 

Best Regards, 

Muqun

  • Hi Muqun,

    May I know if you are running the PDK based demo or the vision_apps based demo to capture the data here?

    We now copy the camera data from CSI2 to CSI1 inside the deserializer.

    Sorry, I did not understand what you meant here. 

    You have one camera and it is streaming via both the outputs of Deserializer?

    What is the laneband speed that is configured at the Deserializer for both the port? Is it matching with the csi2 rx configuration at the application?

    Regards,

    Nikhil

  • May I know if you are running the PDK based demo or the vision_apps based demo to capture the data here?

    I run vx_app_multi_cam in vision_apps.

    Sorry, I did not understand what you meant here. 

    You can understand that the deserializer has two CSI outputs and data of the two outputs are exactly the same, including data format, VC id, etc.

    You have one camera and it is streaming via both the outputs of Deserializer?

    Yes, I have only one camera. And I also try to run vx_app_single_cam app in vision_apps and I get the same result. 

    What is the laneband speed that is configured at the Deserializer for both the port? Is it matching with the csi2 rx configuration at the application?

    In the sensor driver, I configure laneband speed as CSIRX_LANE_BAND_SPEED_1350_TO_1500_MBPS, and the laneband speed in deserializer I configured is 1.5Gbps/lane. I have confirmed this many times and I think there is no problem here.  

    I read register 0x04524074 of CSI2. The value of this register is always changing on CSI2. But on CSI1, register 0x04514074 is always 0x00000000. 

    And I want to know, if I use the same sensor driver, will there be any difference in the configuration of CSIRX1 and CSIRX2? Does MIPI timing in deserialized need to be modified differently?

    Best Regards, 

    Muqun 

  • Hi Muqun,

    From the above, I see that you are trying to capture 1 from CSI-RX instance 1 and 1 from CSI-RX instance 2.

    Have you modified the multicam to capture this way.

    I see that multicam expects contiguous VCs, i.e. 4 inputs of CSI-RX0, 4 inputs on CSI-RX1 and so on.. So if you give number of channels as 2, it would take 2 VCs of CSI-RX0

    Could you try the single cam app and try getting them individually?

    Please check the port number you are selecting in this app

    Regards,

    Nikhil