

迅为 RK3399开发板Android8系统-ov13850摄像头移植分析
source link: https://www.oschina.net/question/4444582_2324154
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

迅为 RK3399开发板Android8系统-ov13850摄像头移植分析
迅为 RK3399开发板Android8系统-ov13850摄像头移植分析
本文将讲解 OV13850 摄像头在开发板上的配置过程。接口效果图如下所示:
21.18.1 设备树配置
1 打开设备树 itop-3399_8.1/kernel/arch/arm64/boot/dts/rockchip/rk3399-android.dtsi 文件,如下图所示。
camera 我们使用 ISP1
21.18.2 驱动说明
Android 部分:
itop-3399_8.1/hardware/rockchip/camera/CameraHal 是摄像头的 HAL 源码
itop-3399_8.1/hardware/rockchip/camera/SiliconImage 是 ISP 库,包括所有支持模组的驱动源码
itop-3399_8.1/hardware/rockchip/camera/SiliconImage/isi/drv/OV13850 是 OV13850 模组的驱动源码
itop-3399_8.1/hardware/rockchip/camera/SiliconImage/isi/drv/OV13850/calib/OV13850.xml 是 OV13850 模组的
itop-3399_8.1/hardware/rockchip/camera/Config/cam_board_rk3399.xml 文件可以设置摄像头的参数
Kernel 部分:
itop-3399_8.1/kernel/drivers/media/video/rk_camsys 是 CamSys 驱动源码
21.18.3 原理图分析
配置摄像头需要配置摄像头的 GPIO 和时钟,即可完成配置。我们打开摄像头的原理图,如下图所示:
然后在开发板的底板原理图找到这俩个引脚,再在找到核心板原理图中找到对应的引脚,如下图所示:
对应的接口
21.18.4 配置 Android
1 修改 itop-3399_8.1/itop-3399_8.1/hardware/rockchip/camera/Config/cam_board_rk3399.xml 文件用来
注册摄像头,如下图所示:
接下来我们来分析一下分别代表什么含义。
1 Sensor 名称
<SensorName name="OV13850" ></SensorName>
2 Sensor 软件标识
<SensorDevID IDname="CAMSYS_DEVID_SENSOR_1A"></SensorDevID>
保证驱动标识不一致即可,可选项有
CAMSYS_DEVID_SENSOR_1A
CAMSYS_DEVID_SENSOR_1B
CAMSYS_DEVID_SENSOR_2
3 Sensor 采集控制器的名称
<SensorHostDevID busnum="CAMSYS_DEVID_MARVIN" ></SensorHostDevID>
4 i2c 通道 i2c1,具体通道号请参考摄像头原理图连接主控的 I2C 通道号。原理图查看了是 i2c1。
<SensorI2cBusNum busnum="1"></SensorI2cBusNum>
5 sensor 寄存器地址长度,单位是字节
<SensorI2cAddrByte byte="2"></SensorI2cAddrByte>
6 sensor i2c 频率,单位是 Hz,用于设置 I2C 的频率。
<SensorI2cRate rate="100000"></SensorI2cRate>
7 sensor 输入时钟频率,用于设置摄像头的时钟
<SensorMclk mclk="24000000" delay="1000"></SensorMclk>
8 Sensor AVDD 的 PMU LDO 名称 如果不是连接到 PMU,那么只需填写 NC
<SensorAvdd name="NC" min="28000000" max="28000000" delay="0"></SensorAvdd>
9 Sensor DVDD 的 PMU LDO 名称
<SensorDvdd name="NC" min="12000000" max="12000000" delay="0"></SensorDvdd>
如果不是连接到 PMU,那么只需填写 NC。注意 min 和 max 值必须填写,决定了 Sensor 的 IO 电压
10 Sensor DOVDD 的 PMU LDO 名称
<SensorDovdd name="NC" min="18000000" max="18000000" delay="5000"></SensorDovdd>
11 Sensor PowerDown 引脚
<SensorGpioPwdn0 ioname="RK30_PIN2_PD4" active="0"></SensorGpioPwdn0> //mipi
直接填写名称即可,active 填写休眠的有效电平
12 Sensor Reset 引脚
<SensorGpioRst ioname="RK30_PIN2_PD3" active="0"></SensorGpioRst>
直接填写名称即可,active 填写复位的有效电平
13 Sensor Power 引脚
<SensorGpioPwen ioname="NC" active="1" delay="1000"></SensorGpioPwen>
直接填写名称即可,active 填写电源的有效电平
14 选择 Sensor 作为前置还是后置
<SensorFacing facing="back"></SensorFacing>
front”或“back”
15 Sensor 的接口方式
<SensorInterface mode="MIPI"></SensorInterface>
16 Sensor 的镜像方式
<SensorMirrorFlip mirror="0"></SensorMirrorFlip>
17 Sensor 的角度信息
<SensorOrientation orientation="0"></SensorOrientation>
18 物理接口设置
<SensorPhy phyMode="CamSys_Phy_Mipi" lane="2" phyIndex="1" sensorFmt="CamSys_Fmt_Raw_10b">
</SensorPhy>
hyMode: Sensor 接口硬件连接方式,对 MIPI Sensor 来说,该值取"CamSys_ Phy_ Mipir"
Lane: Sensor mipi 接口数据通道数
Phyindex: Sensor mipi 连接的主控 mipi phy 编号
sensorFmt: Sensor 输出数据格式,目前前支持 CamSys_ Fmt. Raw_ 10b
21.18.5 编译内核
我们需要将驱动源码 itop-3399_8.1/kernel/drivers/media/video/rk_camsys 编译进内核,配置方法如下:
(1) itop-3399_8.1/kernel/arch/arm64/configs/rockchip_linux_defconfig 是内核默认配置文件,我们在修改之
前要将其备份。
(2) 然后用 itop-3399_8.1/kernel/arch/arm64/configs/rockchip_linux_defconfig 文件覆盖
itop-3399_8.1/kernel/.config 文件,然后输入 make menuconfig 进行配置,输入以下命令:
cp -r arch/arm64/configs/rockchip_linux_defconfig .config
make menuconfig
(3) 将以下配置打开,如下图所示:
-> Device Drivers
-> Multimedia support (MEDIA_SUPPORT [=y])
-> camsys driver (CAMSYS_DRV [=y])
-> RockChip camera system driver
(4)配置完之后生成新的.config 文件,我们将其覆盖默认配置文件,然后重新编译内核。
cp -r .config arch/arm64/configs/rockchip_linux_defconfig
编译完成烧写镜像,终端下可以直接修改 /system/etc/cam_board.xml 调试各参数并重启生效。Android8
源码里面 itop-3399_8.1/RKDocs 可以查看详细的资料。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK