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); // GP10
PINMUX_CONFIG(PAD_MIPI_TXP1, IIC2_SCL); // GP11
PINMUX_CONFIG(PAD_MIPI_TXP0, CAM_MCLK0); // Sensor MCLK
PINMUX_CONFIG(PAD_MIPI_TXP2, XGPIOC_17); // Sensor RESET
return 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
测试
编译烧录后,运行 sensor_test
测试 sensor 是否正常工作。