微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > 瑞芯微RK3399开发板注册一个 Camera Sensor 设备方法

瑞芯微RK3399开发板注册一个 Camera Sensor 设备方法

时间:10-02 整理:3721RD 点击:
       RK3399的CPU采用big.LITTLE大小核架构,双Cortex-A72大核+四Cortex-A53小核结构,对整数、浮点、内存等作了大幅优化,在整体性能、功耗及核心面积三个方面都具革命性提升。 RK3399的GPU采用四核ARM新一代高端图像处理器Mali-T860,集成更多带宽压缩技术:如智能迭加、ASTC、本地像素存储等,还支持更多的图形和计算接口,总体性能比上一代提升45%。



注册一个 Camera 设备,只需要在 board 文件 static struct rkcamera_platform_data
new_camera[] =中定义一个 Camera 设备即可。
注意:
原来 board 文件中,前后置摄像头分别可以定义 3 个,这个限制在目前版本中不作限制;
需要硬件兼容多个摄像头,只要定义多个即可;
兼容多个摄像头的唯一条件:
Sensor 驱动中必须实现硬件识别号识别功能,即填写 static struct rk_sensor_reg
sensor_check_id_data[]序列或是实现回调:sensor_check_id_usr_cb;


定义一个 Camera 设备可以采用以下格式宏:
1)、简单注册:
new_camera_device(sensor_name,
face,
pwdn_io,
flash_attach,
mir,
i2c_chl,
cif_chl)
sensor_name:
Sensor 设 备 名 字 , 采 用 arch/arm/plat‐rk/include/plat/rk_camera.h 中
RK29_CAM_SENSOR_XXXX,与原来 board 文件中的 CONFIG_SENSOR_X 配置一致;
Face:
Sensor 设备作为前置还是作为后置的配置;前置直接填写 front,后置直接填写 back;
Pwdn_io:
Sensor 设 备 powerdown ( standby ) 连 接 GPIO 的 配 置 , 与 原 board 文 件 中
CONFIG_SENSOR_POWERDN_PIN_XX 配置一致;
flash_attach:
该 Sensor 设备是否连接 flash 闪光灯的配置;
Mir:
该 Sensor 设备的镜像配置;其中:
bit0: 0: mirror off
1: mirror on
bit1: 0: flip off
1: flip on
i2c_chl:
该 Sensor 设备连接的 i2c 通道号配置;
cif_chl:
该 Sensor 设备连接的 cif 控制器通道号 ,目前除了 rk3066 具有 2 个 cif 通道外,其
余主控芯片都只有 1 个 cif 通道;
2)、完整注册
new_camera_device_ex(sensor_name,\
face,\
ori,\
pwr_io,\
pwr_active,\
rst_io,\
rst_active,\
pwdn_io,\
pwdn_active,\
flash_attach,\
res,\
mir,\
i2c_chl,\
i2c_spd,\
i2c_addr,\
cif_chl,\
mclk)\
简单注册只是在完整注册的某些项上采用默认值,如果不采用默认值,可以直接用完整
注册的方式来定义一个设备,增加的注册项如下:
Ori:
定义 Sensor 设备的角度,与原 board 文件中 CONFIG_SENSOR_ORIENTATION_X 配置
一致,在 new_camera_device 中注册,该值默认采用后置 90,前置 270;
pwr_io:
定 义 Sensor 设 备 的 电 源 控 制 引 脚 , 与 原 board 文 件 中
CONFIG_SENSOR_POWER_PIN_XX 配置一致;
pwr_active:
定 义 Sensor 设 备 电 源 控 制 引 脚 的 有 效 电 平 , 与 原 board 文 件 中
CONFIG_SENSOR_POWERACTIVE_LEVEL_X 配置一致;
rst_io:
定 义 Sensor 设 备 的 硬 件 复 位 控 制 引 脚 , 与 原 board 文 件 中
CONFIG_SENSOR_RESET_PIN_XX 配置一致;
rst_active:
定 义 Sensor 设 备 的 硬 件 复 位 有 效 电 平 , 与 原 board 文 件 中
CONFIG_SENSOR_RESETACTIVE_LEVEL_X 配置一致;
Res:
定义 Sensor 的全分辨,在 new_camera_device 中注册,该值默认采用该 sensor 在
rk_camera.h 中定义的真实全分辨率,如果想进行插值,即设备本身真实全分辨为 2Mega,
可以在这一项中直接填写 3Mega 或是 5Mega 作为插值后的分辨率;
i2c_spd:
定义 Sensor 设备的 i2c 传输速度,在 new_camera_device 中注册,该值默认采用
100KHz;
mclk:
定义 Sensor 设备的输入时钟,在 new_camera_device 中注册,该值默认采用 24MHz,
这边可以定义为 24 或是 48;
针对新旧版本 sensor 驱动与新旧设备注册方式的兼容方式说明如下:
1)、sensor 旧版驱动 + board 文件旧的设备注册方式 ---- yes
2)、sensor 旧版驱动 + board 文件新的设备注册方式 ---- yes
3)、sensor 新版驱动 + board 文件旧的设备注册方式 ---- no
4)、sensor 新版驱动 + baord 文件新的设备注册方式 ---- yes
原 board 文件中,尽管采用旧的设备注册方式,也必须定义如下结构体:
static struct rkcamera_platform_data new_camera[] = {
new_camera_device_end
};
        瑞芯微RK3399开发板注册一个 Camera Sensor 设备方法友坚科技专注于三星、瑞芯微、飞思卡尔平台产品的研发,是三星、瑞芯微、飞思卡尔在中国最具实力的方案公司之一。公司研发、生产的平板、开发板,连续多年销量稳居第一。公司定位于中高端产品的研发,具有多年的嵌入式产品研发经验;基于A15-Exynos5260、A53_S5P6818、A9-S5P4418、A9-Exynos 4412、A8-S5PV210、ARM11-S3C6410、ARM9-S3C2416 、RK3188、RK3288、RK3399、IMX6Q等处理器,开发了系列化产品,为客户提供了全面的产品选择及专业化的量身定制MID解决方案。


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top