The imx327 camera displays a demarcation line

The imx219 camera can work properly on the custom carrier board, which can prove that the hardware design of the custom carrier board is right.

The system version is jetpack5.1.1.

On the basis of the above customized carrier board, under the guidance of Sensor Software Driver Programming, and the datasheet of IMX327, I wrote the driver file and device tree file of imx327 according to the camera driver file and device tree file of imx185.

The source and device tree files are here.driver_and_dts.zip (63.7 KB)

I used nvgstcapture-1.0 to capture an image of the imx327, and I could clearly see that the camera was automatically adjusting the picture, and the image appeared to be clearly divided.

I fixed the coarse time, i.e. set_exposure for debugging purposes in the driver file. When the adjustment is complete, the divider will not show, but it will appear whenever the scene captured by the camera changes.

I’ve already tried with below commands to boost all the VI/CSI/ISP clocks, but that doesn’t seem to be working

sudo su
echo 1 > /sys/kernel/debug/bpmp/debug/clk/vi/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/isp/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/nvcsi/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/emc/mrq_rate_locked
cat /sys/kernel/debug/bpmp/debug/clk/vi/max_rate |tee /sys/kernel/debug/bpmp/debug/clk/vi/rate
cat /sys/kernel/debug/bpmp/debug/clk/isp/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/isp/rate
cat /sys/kernel/debug/bpmp/debug/clk/nvcsi/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/nvcsi/rate
cat /sys/kernel/debug/bpmp/debug/clk/emc/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/emc/rate

How can I solve this problem?
Thank you very much

Make all the CID function as dummy function to verify.

Thanks

Dump the raw and nvraw file by v4l2-ctl and nvargus_nvraw.

nvargus_nvraw --c 0 --file sample_1.nvraw

v4l2-ctl --set-fmt-video=width=1920,height=1080 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=1 --stream-to=test.raw -d /dev/video0 

I obtained sample_1.nvraw according to the command line you gave, and the application software for obtaining nvraw seems not to be public.
The raw file cannot be obtained by using v4l2-ctl, the size of test.raw is 0KB.

test_nvraw.zip (2.4 MB)

Therefore, I only uploaded sample_1.nvraw for analyzing the problem.
Thank you very much.

The nvraw looks like without the problem.
Please modify the badge in device. Don’t use the “_RBPCV3” that would load incorrect ISP configure.

This gives me hope to solve the problem!

One thing I don’t quite understand is why using “_RBPCV3” on badge loads an incorrect ISP configure?

I found information about the badge in Sensor Software Driver Programming and the module datasheet is the part I didn’t notice. How can I find this module datasheet to support my ISP configure for this camera?

Thank you very much!

There’s no imx327 badge for ISP configure now. Suppose using default ISP configure should be fine.

If don’t have IQ concern use default ISP otherwise need camera partner help to do IQ tuning to generate specific ISP configure per sensor module.

This should be related to the sensor driver. ISP cannot achieve image fragmentation.

I compared the datasheet between imx327 and imx185 , the function and register difference between the two is very small. I wrote the imx327 sensor driver according to the imx185 sensor driver.

I mde all the CID function as dummy function.
set_group_hold, set_gain, set_frame_rate and set _exposure . None of the four CID functions have any effect, but simply return 0

Whether this is related to some function in the struct camera_common_sensor_ops{}

Do you have a solution to this problem?
If so, I’d appreciate it if you could describe it in detail!

If the raw file already have tear that tell the tear already present while sensor output. Suppose it could be the sensor output problem.

1 Like

In this case, it is recommended that you confirm the MIPI timing again.

1 Like

I am happy to report that I have solved this problem!

I try to describe my ideas as clearly as possible, and the driver source code and device tree will be open. Hoping to help someone in need~

Problem-solving ideas:
I got the inspiration from Orin Nano, nvarguscamerasrc with tear down effect and tried to change the “active_w” in the device tree file according to the datasheet of IMX327.

When I had the tear problem, I set “active_w=1920” in the device tree. Set1080p-12bit, mode0=30fps, and mode1=60fps in the camera driver. Tears exist in both modes.

When I looked at Pixel Array Image Drawing in Full HD 1080p mode (CSI-2 serial output) in IMX327 datasheet, I tried to change the “active_w”, and finally when active_w=1948, the video displayed normally and without tears. 1948 = 4+8+1920+9+4+3

Open source:
For personal reasons, the source code is not available now. If you need, you can send me an email: xuechengjie98@163.com

I would also like to thank ShaneCCC and James Lee, we were able to discuss ideas to solve the problem together~

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.