I previously posted a question but received no response. I understand that my question might not have been clear or specific enough for others to provide an answer. Today, I would like to ask if my approach is correct.
The image sensor we are using has a built-in ISP and is powered externally, not from the Raspberry Pi. Once powered, the camera starts streaming automatically. The MIPI clock mode is set to continuous mode. There is no need to send a master clock to the image sensor or configure the camera registers using I2C. We are using a Raspberry Pi 4 Model B.
After searching through forums, I found a post where someone successfully received video using a dummy_sensor driver and corresponding DTS file. Their setup used an FPGA, which had several similarities to our case.
Based on this, I used the dummy_sensor driver and modified the DTS file, commenting out the non-continuous mode section. When running the following command to receive video and checking the log status, I noticed that the resolution detected by the MIPI receiver was incorrect.
I have three main questions, and I would like to confirm if my debugging approach is correct:
First, aside from modifying the DTS file and driver source code, are there any additional software configurations I should perform?
Second, The Detected resolution value in the log status changes slightly each time I check it. I suspect this issue is caused by impedance mismatch. To address this, we are designing a new PCB and manufacturing it with SMT instead of soldering manually.
Last, does the Detected resolution in the log status represent the resolution parsed by the MIPI receiver?
Thank you, indeed
The image sensor we are using has a built-in ISP and is powered externally, not from the Raspberry Pi. Once powered, the camera starts streaming automatically. The MIPI clock mode is set to continuous mode. There is no need to send a master clock to the image sensor or configure the camera registers using I2C. We are using a Raspberry Pi 4 Model B.
After searching through forums, I found a post where someone successfully received video using a dummy_sensor driver and corresponding DTS file. Their setup used an FPGA, which had several similarities to our case.
Based on this, I used the dummy_sensor driver and modified the DTS file, commenting out the non-continuous mode section. When running the following command to receive video and checking the log status, I noticed that the resolution detected by the MIPI receiver was incorrect.
Code:
v4l2-ctl -d 0 --stream-mmap --stream-count=10000 --stream-to=output.raw[ 661.641935] unicam fe801000.csi: ================= START STATUS =================[ 661.641943] unicam fe801000.csi: -----Receiver status-----[ 661.641945] unicam fe801000.csi: V4L2 width/height: 1280x960[ 661.641950] unicam fe801000.csi: Mediabus format: 00002008[ 661.641953] unicam fe801000.csi: V4L2 format: 56595559[ 661.641957] unicam fe801000.csi: Unpacking/packing: 0 / 0[ 661.641959] unicam fe801000.csi: ----Live data----[ 661.641961] unicam fe801000.csi: Programmed stride: 2560[ 661.641964] unicam fe801000.csi: Detected resolution: 1268x192[ 661.641967] unicam fe801000.csi: Write pointer: d0200000[ 661.641970] unicam fe801000.csi: ================== END STATUS ==================
First, aside from modifying the DTS file and driver source code, are there any additional software configurations I should perform?
Second, The Detected resolution value in the log status changes slightly each time I check it. I suspect this issue is caused by impedance mismatch. To address this, we are designing a new PCB and manufacturing it with SMT instead of soldering manually.
Last, does the Detected resolution in the log status represent the resolution parsed by the MIPI receiver?
Thank you, indeed
Statistics: Posted by stupid dog — Wed Dec 11, 2024 9:59 am — Replies 0 — Views 20