IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> rk3399 android8.1 配置双目摄像头 -> 正文阅读

[移动开发]rk3399 android8.1 配置双目摄像头

项目场景:

使用了赛威思 XC6130, XC7022模组,双mipi yuv输出

XC7022使用 i2c7通信, XC6130使用i2c6通信

文章目录

一、MIPI驱动添加

1. rk3399hal层代码结构

hardware/rockchip/camera/CameraHal             //camera hal层应用代码

hardware/rockchip/camera/Config                //camera 前后置摄像头,旋转角度等参数配置

hardware/rockchip/camera/SiliconImage          //camera驱动代码

使用的两个摄像头模组厂商提供了 sensor驱动,我们只需要添加到对应目录下,然后调试

2. sensor模组配置

以XC7022为例, 配置 cam_board_rk3399.xml

<Sensor>
	<SensorName name="XC7022" ></SensorName>
	<SensorDevID IDname="CAMSYS_DEVID_SENSOR_1A"></SensorDevID>
	<SensorHostDevID busnum="CAMSYS_DEVID_MARVIN" ></SensorHostDevID>
	<SensorI2cBusNum busnum="6"></SensorI2cBusNum>
	<SensorI2cAddrByte byte="2"></SensorI2cAddrByte>
	<SensorI2cRate rate="100000"></SensorI2cRate>
	<SensorAvdd name="NC" min="0" max="0" delay="0"></SensorAvdd>
	<SensorDovdd name="NC" min="0" max="0" delay="0"></SensorDovdd>
	<SensorDvdd name="NC" min="0" max="0" delay="0"></SensorDvdd>
	<SensorMclk mclk="27000000" delay="0"></SensorMclk>
	<SensorGpioPwen ioname="NC" active="1" delay="1000"></SensorGpioPwen>
	<SensorGpioRst ioname="RK30_PIN2_PA2" active="0" delay="1000"></SensorGpioRst>
	<SensorGpioPwdn ioname="NC" active="0" delay="1000"></SensorGpioPwdn>
	<SensorFacing facing="back"></SensorFacing>
	<SensorInterface interface="MIPI"></SensorInterface>
	<SensorMirrorFlip mirror="0"></SensorMirrorFlip>
	<SensorOrientation orientation="90"></SensorOrientation>
	<SensorPowerupSequence seq="1234"></SensorPowerupSequence>					
	<SensorFovParemeter h="60.0" v="60.0"></SensorFovParemeter>
	<SensorAWB_Frame_Skip fps="0"></SensorAWB_Frame_Skip>					
	<SensorPhy phyMode="CamSys_Phy_Mipi" lane="2"  phyIndex="0" sensorFmt="CamSys_Fmt_Yuv422_8b"></SensorPhy>
</Sensor>

主要配置参数:?

? ? 1. I2cBus? ?所使用的i2c

? ? 2. facing? ? 前后置摄像头

? ? 3. orientation? 摄像头旋转角度

? ? 4.? ?lane="2" ?phyIndex="0" sensorFmt="CamSys_Fmt_Yuv422_8b">

? ? ? ? ? 分别对应了? 接口数据通道数; mipi phy编号; sensor输出数据格式

二、调试过程

通过logcat | grep CameraHal等查看打印日志

dmesg查看系统日志

1. i2c写失败

如果 i2c 配置错误或者 在i2c开始读写数据时摄像头没完成上电初始化,系统会打印 i2c写失败错误

[  326.735166] E:camsys_i2c_write(92): i2c write dev(addr:0x20) failed!,err = -6

2. sensor连接

i2c读写成功后,模组注册成功可以在 logcat中看到

?两个模组的 connect 为 1时说明注册成功, 为0 则考虑是否是 i2c读写失败等原因

3. i2c延迟导致 相机app无法正常打开sensor显示图像
?

问题描述:

因为相机上电最开始是使用的 GPIO 引脚拉高,因此在系统启动后 i2c会一直读写失败,当时在i2c子系统的写函数开头中加了一个 延迟,导致app打开相机时只能偶尔出现图像的严重问题。

删除延迟后,成功出现图像

4. 前后置摄像头拍照成像,左右镜像问题

修改其中一个模组输出图像左右镜像

?在sensor开流之前修改

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-14 14:11:29  更:2021-08-14 14:13:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 21:37:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码