在linuxsdk下切换摄像头通道失败

Viewed 53

问题描述


板载ov5647的摄像头,在CSI2上,想用gc2093的摄像头模块接入CSI0通道
image.png
这是运行demo示例后的报错信息

复现步骤


image.png
根据这篇文章修改了设备树,驱动程序中的I2C_SLAVE_ADDRESS多次选择,考虑到这可能是i2c的设备地址image.png还根据芯片手册的引脚选择地址修改过0x6e和0xfc。
image.png
也参照过这篇文章,修改过/proc/vsi/isp_subdev0文件,修改成gc2093。都失败了,有没有人指点一下

硬件板卡


创乐博v3

软件版本


linuxsdk自行编译

2 Answers

可以i2cdetect命令扫一下,看一下能不能扫到摄像头,gc2093有两个地址,可以换一下试试

[root@canaan /boot ]#i2cdetect -y -r 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- 3b -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
这个3b应该是hdmi屏幕的

[root@canaan /boot ]#i2cdetect -y -r 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- 37 -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
这个37是啥呀

我换7e那个地址再试一下

用的那个板子,补充下你修改后的设备树 ?

aliases {
	serial3 = &uart3;
	mmc0 = &mmc_sd0;
	mmc1 = &mmc_sd1;
	i2c0 = &i2c0;
	i2c1 = &i2c3;
};

&i2c0 {
status = "okay";
};

&mipi0 {
// set to csi0
id = <0>;
reg = <0x0 0x90000800 0x0 0x800>;
interrupts = <115 IRQ_TYPE_LEVEL_HIGH>;
resets = <&sysctl_reset K230_RESET_CSI0_REG_OFFSET K230_RESET_CSI0_TYPE K230_RESET_CSI0_DONE_BIT K230_RESET_CSI0_ASSERT_BIT>,
<&sysctl_reset K230_RESET_M0_REG_OFFSET K230_RESET_M0_TYPE K230_RESET_M0_DONE_BIT K230_RESET_M0_ASSERT_BIT>;
};然后改默认配置文件那一步也是改成了gc2093的auto和手动的json文件,还是会报错,创乐博v3的板子,想换到csi0上

设备树没问题,目前k230 linux只支持带晶振的sensor,估计你那个sensor不带晶振。你的sensor是从哪里买的?能找他们确认下 带晶振吗?

其实我之前已经切换通道做好了一版镜像了,后来又因为环境的原因重新编译了sdk,然后现在又搞不出来了,只有那一版镜像能解我的gc2093摄像头,特难受