找回密码
 注册
关于网站域名变更的通知
查看: 334|回复: 2
打印 上一主题 下一主题

迅为 RK3399开发板Android8系统-ov13850摄像头移植分析

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-10-20 15:25 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
$ L: W3 a% X/ `. S9 y" {" b

& j2 ^# \4 A8 w& w) ^+ ^7 y4 T
本文将讲解 OV13850 摄像头在开发板上的配置过程。接口效果图如下所示:

. |" L# n' R4 \. p( Q+ g+ [
7 [5 Y  d. B; Y* e) l' j
8 L* P+ F9 g% K- ]3 Z5 h: j
21.18.1 设备树配置
1 打开设备树 itop-3399_8.1/kernel/arch/ARM64/boot/dts/rockchip/rk3399-android.dtsi 文件,如下图所示。
camera 我们使用 ISP1

! P1 G) T4 d% B& [. Y: p

3 N1 j" ~, Y; R& M3 i
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 和时钟,即可完成配置。我们打开摄像头的原理图,如下图所示:

  ^' ?# L, P5 b6 G0 g2 `( ~" m
" r/ V/ M0 k; G; e+ ]

$ X1 D" _  {- y) J
# m- k1 Q" }- a: U2 E2 |7 C! k" s* r6 z# G& \
* b/ Q7 f' D( A
, `( r% t% Q; ?1 b$ j' s* E
然后在开发板的底板原理图找到这俩个引脚,再在找到核心板原理图中找到对应的引脚,如下图所示:

' }9 m& s4 z, ]. O3 S# h

: b) I$ |2 F" K
0 p4 W3 T* I) \% i
对应的接口

* b7 e; u% `' p! `
: p7 z; c. N3 O) u- L' V3 h
; G+ W' ?! z: i! R4 q7 x
21.18.4 配置 Android
1 修改 itop-3399_8.1/itop-3399_8.1/hardware/rockchip/camera/Config/cam_board_rk3399.xml 文件用来
注册摄像头,如下图所示:

6 m+ s4 _6 o( H; x' m

4 y+ U3 @* N) i5 u& k( D
接下来我们来分析一下分别代表什么含义。
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
: c0 l8 Q, M7 l4 O$ y
- ~+ h8 L8 G2 X7 U
) J) N; [- e0 E* O6 l. W" o  c
(3) 将以下配置打开,如下图所示:
-> Device Drivers
-> Multimedia support (MEDIA_SUPPORT [=y])
-> camsys driver (CAMSYS_DRV [=y])
(1)
-> RockChip camera system driver

5 E) \, _6 A1 G0 e2 I2 @7 {  ^5 c! [# {" p3 p6 W
* j) n5 n- J) T' P$ }  J
(4)配置完之后生成新的.config 文件,我们将其覆盖默认配置文件,然后重新编译内核。
cp -r .config arch/arm64/configs/rockchip_linux_defconfig
编译完成烧写镜像,终端下可以直接修改 /system/etc/cam_board.xml 调试各参数并重启生效。Android8
源码里面 itop-3399_8.1/RKDocs 可以查看详细的资料。
& @5 _5 V: {3 i& o3 D) Z

该用户从未签到

3#
发表于 2021-10-28 08:34 | 只看该作者
优秀:):):):):):)

该用户从未签到

2#
发表于 2021-10-27 10:42 | 只看该作者
现在主流用的都是Android8系统' h( w0 K- Q3 P; e& W
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 05:06 , Processed in 0.171875 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表