【全志V821_FoxPi】6-3 GC2083 MIPI摄像头适配
【全志V821_FoxPi】6-3 GC2083 MIPI摄像头适配
- 一、背景
- 二、GC2083 MIPI摄像头介绍
- 2-1 概述
- 2-2 主要技术参数
- 2-3 模组接口图
- 三、SDK配置
- 四、测试
- 4-1 启动信息
- 4-2 iic节点
- 4-3 rtsp推流
- 4-3 rtsp拉流
- 4-3-1 ch1
- 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,也可以参考以下设备树配置
&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节点
root@TinaLinux:~# i2cdetect -y 00 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 目录下
./sample_rtsp -path ./sample_rtsp.conf
如果使用wlan0的话要先把配置改一下
########### 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