Hi,all
ov5640 i2c is ok, and i can see the clock and data wave, i want to get a picture with v4l2 ,and have this problem, why?
Thanks for your help.
Have a great day,
Solved! Go to Solution.
Hi,all
thanks for all of your help,i have solved the problem,it’s the camera work wrong~~
Just so everyone knows, This for me was a hardware issue. some of the physical lines on the board to the camera connector were not connected, now connected and fully working.
Hi Richard,
I have the same output i.e
cat /dev/video0
ERROR: v4l2 capture: mxc_v4l_read timeout counter 0
imx-ipuv3 2400000.ipu: Not a CSI channel
Could you explain what you mean by "i have solved the problem,it’s the camera work wrong" as it may help myself and others? Thankyou.
Hi Richard,
I have the output i.e
cat /dev/video0
cat /dev/video0 > test.mpg
ov540 mode detected
master writing
master writing
master writing
master writing
master writing
master writing
master writing
master writing
master writing
master writing
master writing
master writing
ERROR: v4l2 capture: mxc_v4l_read timeout counter 0
cat: /dev/video0: Timer expired
could you explain how to solve this problem
Thankyou.
Hi,all
thanks for all of your help,i have solved the problem,it’s the camera work wrong~~
what BSP are you using?
please double check the id number of csi and ipu setting. which csi and ipu are you using?
Hi,jimmy chan
the kernel is v3.10.17 ,
the device tree:
&mipi_csi {
status = "okay";
ipu_id = <0>;
csi_id = <1>;
v_channel = <0>;
lanes = <2>;
};
v4l2_cap_1 {
compatible = "fsl,imx6q-v4l2-capture";
ipu_id = <0>;
csi_id = <1>;
mclk_source = <0>;
status = "okay";
};
&i2c2 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2_2>;
status = "okay";
.................
ov5640_mipi: ov5640_mipi@3c { /* i2c2 driver */
compatible = "ovti,ov5640_mipi";
reg = <0x3c>;
clocks = <&clks 201>;
clock-names = "csi_mclk";
DOVDD-supply = <&vgen4_reg>; /* 1.8v */
AVDD-supply = <&vgen3_reg>; /* 2.8v, rev C board is VGEN3
rev B board is VGEN5 */
DVDD-supply = <&vgen2_reg>; /* 1.5v*/
pwn-gpios = <&gpio1 19 1>; /* active low: SD1_CLK */
rst-gpios = <&gpio1 20 0>; /* active high: SD1_DAT2 */
csi_id = <1>;
mclk = <24000000>;
mclk_source = <0>;
};
....................
so,it's right?
Thanks for your help.
Have a great day,
for csi_id=1, the v_channel should be 1.
ov5640_set_virtual_channel(ov5640_data.csi);
yes,it's 1
what board are you using?
if not the sabresd, are you using the same gpio pins for rst and pwdn?
it;s imx6q sabresd kernel:3.10.17 rst and pwdn didn't controled by gpio
thanks!
From what i remember you should be able to capture single frames as i mentioned, maybe the video0 / 1 are output devices. Do you have some other videoXX, like video16 or the like ?
HI,angelo dureghello
root@imx6qdlsolo:~# ls /dev/video*
/dev/video0 /dev/video16 /dev/video18 /dev/video20
/dev/video1 /dev/video17 /dev/video19
root@imx6qdlsolo:~# cat /dev/video16
cat: read error: Invalid argument
root@imx6qdlsolo:~# cat /dev/video17
cat: read error: Invalid argument
root@imx6qdlsolo:~#
Thanks for your help.
Have a great day,
what happen capturing single frames (still) ? Should be able to capture 1 frame with
cat /dev/video0 > test.mpg
Hi,angelo dureghello
root@imx6qdlsolo:~# cat /dev/video1 > test.mpg
ERROR: v4l2 capture: mxc_v4l_read timeout counter 0
imx-ipuv3 2400000.ipu: Not a CSI channel
cat: read error: Timer expired
Thanks for your help.
Have a great day,