【全志V821_FoxPi】6-3 GC2083 MIPI摄像头适配
- 一、背景
- [二、GC2083 MIPI摄像头介绍](#二、GC2083 MIPI摄像头介绍)
-
- [2-1 概述](#2-1 概述)
- [2-2 主要技术参数](#2-2 主要技术参数)
- [2-3 模组接口图](#2-3 模组接口图)
- 三、SDK配置
- 四、测试
-
- [4-1 启动信息](#4-1 启动信息)
- [4-2 iic节点](#4-2 iic节点)
- [4-3 rtsp推流](#4-3 rtsp推流)
- [4-3 rtsp拉流](#4-3 rtsp拉流)
-
- [4-3-1 ch1](#4-3-1 ch1)
- [4-3-1 ch0](#4-3-1 ch0)
一、背景
全志V821芯片,主打的就是一个IPC,现在我们将SDK支持的GC2083接上去,测试一下
参考 :MPP 视频类功能
二、GC2083 MIPI摄像头介绍
2-1 概述
GC2083是一款高性能的MIPI接口摄像头模组,通常用于嵌入式系统和移动设备中。该模组支持高分辨率图像采集,具备低功耗特性,适合对图像质量和能效有较高要求的应用场景。
2-2 主要技术参数
传感器类型:CMOS图像传感器
分辨率:支持1920x1080(1080P)@2M @200万像素
接口类型:MIPI CSI-2
像素尺寸:典型值为1.4μm x 1.4μm
帧率:30fps@1080p
输出格式:支持RAW RGB、YUV等格式
工作电压:3.3V
数字电压(DVDD):1.2V
模拟电压(AVDD):2.8V
IO电压(IIC):1.8V
2-3 模组接口图

三、SDK配置
source build/envsetup.sh
和 lunch
之后可以使用 quick_config
的 one_gc2083_sensor
来启用摄像头GC2083,也可以参考以下设备树配置
c
&vind0 {
csi_top = <200000000>;
status = "okay";
csi0: csi@45820000 {
pinctrl-names = "csi_sm-default","csi_sm-sleep";
pinctrl-0 = <>;
pinctrl-1 = <>;
};
csi1: csi@45821000 {
pinctrl-names = "default","sleep";
pinctrl-0 = <&ncsi_bt656_pins_a>;
pinctrl-1 = <&ncsi_bt656_pins_b>;
status = "disabled";
};
tdm0: tdm@45908000 {
work_mode = <0x0>;
};
isp00:isp@45900000 {
work_mode = <0x0>;
ldci_select = <0x1>;
};
isp01:isp@458ffffc {
status = "disabled";
ldci_select = <0x1>;
};
isp10:isp@4 {
status = "disabled";
};
scaler00:scaler@45910000 {
work_mode = <0x0>;
status = "okay";
};
scaler01:scaler@4590fffc {
work_mode = <0xff>;
status = "disabled";
};
scaler10:scaler@45910400 {
work_mode = <0x0>;
status = "okay";
};
scaler11:scaler@459103fc {
work_mode = <0xff>;
status = "disabled";
};
actuator0: actuator@2108180 {
device_type = "actuator0";
actuator0_slave = <0x18>;
actuator0_af_pwdn = <>;
actuator0_afvdd = "afvcc-csi";
actuator0_afvdd_vol = <2800000>;
status = "disabled";
actuator0_name;
};
flash0: flash@2108190 {
device_type = "flash0";
flash0_type = <2>;
flash0_en = <>;
flash0_mode = <>;
flash0_flvdd = "";
flash0_flvdd_vol = <>;
device_id = <0>;
status = "disabled";
};
sensor0: sensor@5812000 {
device_type = "sensor0";
sensor0_mname = "gc2083_mipi";
sensor0_twi_cci_id = <0>;
sensor0_twi_addr = <0x6e>;
sensor0_mclk_id = <0>;
sensor0_pos = "rear";
sensor0_isp_used = <1>;
sensor0_fmt = <1>;
sensor0_stby_mode = <0>;
sensor0_vflip = <0>;
sensor0_hflip = <0>;
sensor0_iovdd-supply = <>;
sensor0_iovdd_vol = <>;
sensor0_avdd-supply = <>;
sensor0_avdd_vol = <>;
sensor0_dvdd-supply = <>;
sensor0_dvdd_vol = <>;
sensor0_power_en = <>;
sensor0_reset = <&pio PA 2 GPIO_ACTIVE_LOW>;
sensor0_pwdn = <>;
status = "okay";
act_handle = <>;
};
sensor1: sensor@5812010 {
device_type = "sensor1";
sensor1_mname = "gc1084_mipi_2";
sensor1_twi_cci_id = <0>;
sensor1_twi_addr = <0x7e>;
sensor1_mclk_id = <1>;
sensor1_pos = "front";
sensor1_isp_used = <1>;
sensor1_fmt = <1>;
sensor1_stby_mode = <0>;
sensor1_vflip = <0>;
sensor1_hflip = <0>;
sensor1_iovdd-supply = <>;
sensor1_iovdd_vol = <>;
sensor1_avdd-supply = <>;
sensor1_avdd_vol = <>;
sensor1_dvdd-supply = <>;
sensor1_dvdd_vol = <>;
sensor1_power_en = <>;
sensor1_reset = <&pio PD 13 GPIO_ACTIVE_LOW>;
status = "disabled";
};
sensor_list0:sensor_list@200b820 {
sensor00_mname = "gc5035_mipi";
sensor00_twi_addr = <0x6c>;
sensor00_type = <1>;
sensor00_hflip = <0>;
sensor00_vflip = <0>;
sensor00_act_used = <1>;
sensor00_act_name = "dw9714_act";
sensor00_act_twi_addr = <0x18>;
sensor01_mname = "ov5675_mipi";
sensor01_twi_addr = <0x6c>;
sensor01_type = <1>;
sensor01_hflip = <0>;
sensor01_vflip = <0>;
sensor01_act_used = <1>;
sensor01_act_name = "dw9714_act";
sensor01_act_twi_addr = <0x18>;
sensor02_mname = "sp5409_mipi";
sensor02_twi_addr = <0x78>;
sensor02_type = <1>;
sensor02_hflip = <0>;
sensor02_vflip = <0>;
sensor02_act_used = <1>;
sensor02_act_name = "dw9714_act";
sensor02_act_twi_addr = <0x18>;
status = "disabled";
};
sensor_list1:sensor_list@200b830 {
sensor10_mname = "gc02m2_mipi";
sensor10_twi_addr = <0x20>;
sensor10_type = <1>;
sensor10_hflip = <0>;
sensor10_vflip = <0>;
sensor10_act_used = <0>;
sensor10_act_name = "";
sensor10_act_twi_addr = <>;
sensor11_mname = "ov02a10_mipi";
sensor11_twi_addr = <0x7a>;
sensor11_type = <1>;
sensor11_hflip = <1>;
sensor11_vflip = <0>;
sensor11_act_used = <0>;
sensor11_act_name = "";
sensor11_act_twi_addr = <>;
sensor12_mname = "gc030a_mipi";
sensor12_twi_addr = <0x42>;
sensor12_type = <1>;
sensor12_hflip = <0>;
sensor12_vflip = <0>;
sensor12_act_used = <0>;
sensor12_act_name = "";
sensor12_act_twi_addr = <>;
status = "disabled";
};
vinc00:vinc@45830000 {
vinc0_csi_sel = <0>;
vinc0_mipi_sel = <0>;
vinc0_isp_sel = <0>;
vinc0_isp_tx_ch = <0>;
vinc0_tdm_rx_sel = <0>;
vinc0_rear_sensor_sel = <0>;
vinc0_front_sensor_sel = <0>;
vinc0_sensor_list = <0>;
work_mode = <0x0>;
status = "okay";
};
vinc01:vinc@4582fffc {
vinc1_csi_sel = <1>;
vinc1_mipi_sel = <1>;
vinc1_isp_sel = <1>;
vinc1_isp_tx_ch = <0>;
vinc1_tdm_rx_sel = <1>;
vinc1_rear_sensor_sel = <0>;
vinc1_front_sensor_sel = <0>;
vinc1_sensor_list = <0>;
status = "disabled";
};
vinc10:vinc@45831000 {
vinc4_csi_sel = <0>;
vinc4_mipi_sel = <0>;
vinc4_isp_sel = <0>;
vinc4_isp_tx_ch = <0>;
vinc4_tdm_rx_sel = <0>;
vinc4_rear_sensor_sel = <0>;
vinc4_front_sensor_sel = <0>;
vinc4_sensor_list = <0>;
work_mode = <0x0>;
status = "okay";
};
vinc11:vinc@45830ffc {
vinc5_csi_sel = <1>;
vinc5_mipi_sel = <1>;
vinc5_isp_sel = <1>;
vinc5_isp_tx_ch = <0>;
vinc5_tdm_rx_sel = <1>;
vinc5_rear_sensor_sel = <0>;
vinc5_front_sensor_sel = <0>;
vinc5_sensor_list = <0>;
status = "disabled";
};
};
然后在mpp启动rtsp,拷贝执行文件和配置文件到sd卡上
四、测试
4-1 启动信息

4-2 iic节点
c
root@TinaLinux:~# i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
4-3 rtsp推流
在 /mnt/extsd 目录下
c
./sample_rtsp -path ./sample_rtsp.conf
如果使用wlan0的话要先把配置改一下
c
########### paramter (ref to tulip_cedarx.conf)############
[parameter]
rtsp_net_type = 3 #RTSP Network type, 0: "lo", 1: "eth0", 2: "br0", 3: "wlan0"

程序正常运行,出现rtsp链接
4-3 rtsp拉流
winddows下安装 VLC media player

然后就可以看到设备的视频流
4-3-1 ch1
在这里我打开的是ch1,分辨率较低,只有 640x360
4-3-1 ch0
然后我们使用ch0,很明显已经清晰很多,分辨率为1280x720
