Hi,
I use psdk_rtos_auto_j7_07_00_00_11 to develop TDA4 software.
We are currently developing the camera driver, using the app_single_cam example to collect and display camera data.
The camera module we use is AR0233+MAX9295A. There is a MAX9296 chip on our board, which is connected to the CSIRX0 of the TDA processor through the MIPI interface. The schematic diagram is as follows.
We used a set of configurations to configure AR0233/MAX9295/MAX9296, which can output images through the MIPI interface on another processor.
But when we use the same configuration to run on the TDA4 processor, the Capture node cannot get the image. We see that in the tivxCaptureProcess function of the capture node, it has been waiting in a loop at line 908
while(is_all_ch_frame_available == 0U)
Observed by an oscilloscope, we can see the data on the MIPI interface. The waveform is as follows. We can also test that the clk clock of MIPI is 750MHz, but our capture module cannot get any data.
We tried the following:
1. In the void tivx_capture_params_init(tivx_capture_params_t *prms) function, modify prms->instCfg[loopCnt].laneBandSpeed, ranging from TIVX_CAPTURE_LANE_BAND_SPEED_80_TO_100_MBPS to TIVX_CAPTURE_2000_LANEMBPS to PEED_1750_AND_LANE_MBPS
2. Always adjust the CSI output of MAX9296 to 100MHz, and repeat the first step.
3. Adjust the order of the 4 datalanes
4. Adjust the configuration of local_capture_config.chVcNum[i]
None of the above attempts have any effect.
Since we can light up the camera on other processors, and currently the only CSI parameters that we can configure in the software are chVcNum, laneBandSpeed, and dataLanesMap. Do you have any good suggestions? How should I find and solve the problem?
The following figure shows the configuration of MAX9296 CSI output