rv1126 buildroot imx415调试

在rv1126的板子上调通ov13850,但是iq没调好,显示效果没调

于是更换摄像头imx415,sdk本身自带该驱动,本想着,配置好就可以了,但是事情没有那么简单

调试了一天半才弄好。

先看imx415的上电时序

rv1126 buildroot imx415调试_第1张图片

在I2C通信之前我们必须要给主时钟,也就是INCK

我们用自带的驱动,配置好后,发现I2C还是没有通信成功

然后去看驱动代码,在__imx415_power_on函数中reset的gpio没有拉高

于是添加

rv1126 buildroot imx415调试_第2张图片

在数据手册中没有关于reset的时许,所以是参考ov13850的

但是发现I2C还是没有通信成功

rv1126 buildroot imx415调试_第3张图片

XCLR对应的GPIO也拉高了

用示波器测试过上电和时钟,到底是哪里出了问题,

然后我又把__imx415_power_off里面的函数屏蔽掉了,CLK是一直输出的

然后思考I2C的地址有没有配对

问卖家,他们测出的地址是0x34,把驱动自带0x1a改成0x34,发现还是没有成功

EMO,不懂咋弄了,于是在想有没有测试I2C地址的工具

尝试用 i2cdetect,本想着这是通信成功后才能测出来的,但没想到,

使用i2cdetect -y 1有重大发现

rv1126 buildroot imx415调试_第4张图片

发现能读到I2C1 下的地址,拔掉Camera后,地址就没了,于是在设备树更改地址为0x36

重新编译烧写,竟然成功了,激动!!!

结果很简单,过程曲折!!!

总结:

要把__imx415_power_off里面的函数屏蔽掉才能读出i2c地址,因为上电启动后,i2c通信失败,会执行__imx415_power_off函数,clk和上电之类的会关闭,这样使用i2cdetect -y 1是读不出地址的。

你可能感兴趣的:(RV1126,linux,camera)