当前位置: 首页 > news >正文

从零开始学习 sg200x 多核开发之 camera-sensor 添加与测试

sg2002 集成了 H.264 视频压缩编解码器, H.265 视频压缩编码器和 ISP;支持 HDR 宽动态、3D 降噪、除雾、镜头畸变校正等多种图像增强和矫正算法。

sophpi 中没有提供相关图像 sensor。本次实验是在 milkv-duo256m 上添加 GC2083。

GC2083

格科微的 GC2083 是一款 1/2.7 英寸 200 万像素 CMOS 图像传感器,具有高灵敏度、低功耗和低噪声性能。它支持 1080p 分辨率,最高帧率为 30fps。GC2083 还具有多种图像处理功能,如自动白平衡、自动曝光、自动对焦和数字降噪等。

传感器特性

  • 光学尺寸: 1/3 英寸
  • 像素尺寸: 2.7μm×2.7μm FSI
  • 有效图像尺寸: 1920×1080
  • 色彩滤波器: RGB Bayer
  • 输出格式: 原始 Bayer 10位/8位
  • 电源供应要求: AVDD28:2.72.9V(典型值 2.8V) DVDD:由内部稳压器生成(典型值 1.2V) IOVDD:1.71.9V(典型值 1.8V)
  • 功耗: 128mW@30fps 全尺寸
  • 帧率: 30fps@全尺寸
  • PLL 支持
  • 帧同步支持(主/从)
  • 窗口支持
  • 镜像和翻转支持
  • 模拟增益: 最大 64X
  • 灵敏度: 3.24V/lux.s
  • 动态范围: 74dB
  • 最大信噪比(SNR): 37dB

添加 sensoer 型号

sophpi 已经支持 GC2083,我们只要进行相关配置就可以使用。已支持的 sensor 型号在 build/sensors/sensor_list.json 中.

build/boards/cv181x/sg2002_wevb_riscv64_sd/sg2002_wevb_riscv64_sd_defconfig 添加 GC2083 的配置

CONFIG_SENSOR_GCORE_GC2083=y

配置 sensor 管脚

sensor 管脚配置要根据实际硬件连接进行配置,修改 build/boards/cv181x/sg2002_wevb_riscv64_sd/u-boot/cvi_board_init.c 文件中的 cvi_board_init 函数。

int cvi_board_init(void)
{PINMUX_CONFIG(PAD_MIPI_TXM1, IIC2_SDA);    // GP10PINMUX_CONFIG(PAD_MIPI_TXP1, IIC2_SCL);    // GP11PINMUX_CONFIG(PAD_MIPI_TXP0, CAM_MCLK0);   // Sensor MCLKPINMUX_CONFIG(PAD_MIPI_TXP2, XGPIOC_17);   // Sensor RESETreturn 0;
}

在内核设备树 build/boards/cv181x/sg2002_wevb_riscv64_sd/dts_riscv/sg2002_wevb_riscv64_sd.dts 中配置 sensor reset 管脚

&mipi_rx{snsr-reset = <&portc 17 GPIO_ACTIVE_LOW>, <&portc 17 GPIO_ACTIVE_LOW>, <&portc 17 GPIO_ACTIVE_LOW>;
};

该脚本与 u-boot 中配置的管脚一致。

添加 sensor 配置文件

buildroot-2021.05/board/cvitek/CV181X/overlay/mnt/data/ 中添加 GC2083 的配置文件 sensor_cfg.ini

;section for source
[source]
;type = SOURCE_USER_FE
dev_num = 1
;section for sensor
[sensor] 
;sensor name 
name = GCORE_GC2083_MIPI_2M_30FPS_10BIT
;bus/i2c dev number
bus_id = 2
sns_i2c_addr = 37
mipi_dev = 0
lane_id = 1, 0, 2, -1, -1
pn_swap = 0, 0, 0, 0, 0

测试

编译烧录后,运行 sample_sensor_test 测试 sensor 是否正常工作。

http://www.lryc.cn/news/491171.html

相关文章:

  • 前端三剑客(二):CSS
  • 国土变更调查拓扑错误自动化修复工具的研究
  • 深度学习图像视觉 RKNN Toolkit2 部署 RK3588S边缘端 过程全记录
  • Linux应用编程(C语言编译过程)
  • ssm实战项目──哈米音乐(二)
  • Python 获取微博用户信息及作品(完整版)
  • Flink学习连载第二篇-使用flink编写WordCount(多种情况演示)
  • 拉格朗日乘子(Lagrange Multiplier)是数学分析中用于解决带有约束条件的优化问题的一种重要方法,特别是SVM
  • 鸿蒙征文|鸿蒙心路旅程:始于杭研所集训营,升华于横店
  • c语言数据结构与算法--简单实现线性表(顺序表+链表)的插入与删除
  • MySQL底层概述—1.InnoDB内存结构
  • MySQL:DATEDIFF()计算两个日期天数之差
  • Linux 编译Ubuntu24内核
  • Android系统中init进程、zygote进程和SystemServer进程简单学习总结
  • Flask 基于wsgi源码启动流程
  • leetcode代码 50道答案
  • Centos-stream 9,10 add repo
  • 【隐私计算大模型】联邦深度学习之拆分学习Split learning原理及安全风险、应对措施以及在大模型联合训练中的应用案例
  • DataWhale—PumpkinBook(TASK05决策树)
  • elasticsearch7.10.2集群部署带认证
  • Java基础-I/O流
  • 全面解析多种mfc140u.dll丢失的解决方法,五种方法详细解决
  • 详细探索xinput1_3.dll:功能、问题与xinput1_3.dll丢失的解决方案
  • InfluxDB时序数据库笔记(一)
  • Spring Boot 3.x + OAuth 2.0:构建认证授权服务与资源服务器
  • 2024年09月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析
  • Linux 正则表达式(basic and extened)
  • GB 35114-2017 学习笔记(规避版权阉割版)
  • YOLO-FaceV2: A Scale and Occlusion Aware Face Detector
  • 进程间通信--详解