全志V853芯片适配双目GC2053的操作步骤
source link: https://blog.51cto.com/u_15380233/5580678
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
1.主题
Tina V85x 平台适配双目GC2053的操作步骤
GC2053数据手册: ov-GC2053datas
2.问题背景
Tina V85x 平台支持多目sensor场景。Tina V85x SDK默认配置一般都是单目sensor,比如SDK V1.0默认是单目GC2053。为方便用户适配双目或多目sensor,下面以V853 perf1方案+双目GC2053为例,介绍适配的操作步骤。
3.解决办法
一、双目GC2053适配
适配双目GC2053主要修改以下几处:
1、dts设备树
文件:device/config/chips/v853/configs/perf1/board.dts
修改:
- (1)修改csi/isp频率
为节省带宽,可将csi/isp频率由原来默认的300MHz降至200MHz。
vind0:vind@0 {
- vind0_clk = <300000000>;
+ vind0_clk = <200000000>;
status = "okay";
- (2)修改成离线模式
因双目场景下,ISP需分时复用,故只能支持离线模式,即work_mode改成1(离线)。 具体可参考->
tdm0:tdm@0 {
- work_mode = <0>;
+ work_mode = <1>;
};
isp00:isp@0 {
- work_mode = <0>;
+ work_mode = <1>;
};
scaler00:scaler@0 {
- work_mode = <0>;
+ work_mode = <1>;
};
scaler10:scaler@4 {
- work_mode = <0>;
+ work_mode = <1>;
};
scaler20:scaler@8 {
- work_mode = <0>;
+ work_mode = <1>;
};
scaler30:scaler@12 {
- work_mode = <0>;
+ work_mode = <1>;
};
- (3)修改sensor配置
sensor0默认是gc2053,无需修改。但是需要修改sensor1的配置为gc2053。修改后,sensor0和sensor1的配置如下:
sensor0:sensor@0 {
device_type = "sensor0";
sensor0_mname = "gc2053_mipi";
sensor0_twi_cci_id = <1>;
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 = <®_aldo2>;
sensor0_iovdd_vol = <1800000>;
sensor0_avdd-supply = <®_bldo2>;
sensor0_avdd_vol = <2800000>;
sensor0_dvdd-supply = <®_dldo2>;
sensor0_dvdd_vol = <1200000>;
sensor0_power_en = <>;
sensor0_reset = <&pio PA 18 1 0 1 0>;
sensor0_pwdn = <&pio PA 19 1 0 1 0>;
sensor0_sm_hs = <>;
sensor0_sm_vs = <>;
flash_handle = <&flash0>;
act_handle = <&actuator0>;
status = "okay";
};
sensor1:sensor@1 {
device_type = "sensor1";
sensor1_mname = "gc2053_mipi_2";
sensor1_twi_cci_id = <0>;
sensor1_twi_addr = <0x6e>;
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 = <®_aldo2>;
sensor1_iovdd_vol = <1800000>;
sensor1_avdd-supply = <®_bldo2>;
sensor1_avdd_vol = <2800000>;
sensor1_dvdd-supply = <®_dldo2>;
sensor1_dvdd_vol = <1200000>;
sensor1_power_en = <>;
sensor1_reset = <&pio PA 20 1 0 1 0>;
sensor1_pwdn = <&pio PA 21 1 0 1 0>;
sensor1_sm_hs = <>;
sensor1_sm_vs = <>;
flash_handle = <>;
act_handle = <>;
status = "okay";
};
- (4)修改各video节点的配置
双目GC2053场景下,可支持的video节点分别为:sensor0:video 0/4/8/12
sensor1:video 1/5/9/13
故只需修改以上8个video节点的配置即可。修改后的配置如下:
vinc00:vinc@0 {
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 = <0x1>;
status = "okay";
};
vinc01:vinc@1 {
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 = <1>;
vinc1_front_sensor_sel = <1>;
vinc1_sensor_list = <0>;
status = "okay";
};
vinc10:vinc@4 {
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 = <0x1>;
status = "okay";
};
vinc11:vinc@5 {
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 = <1>;
vinc5_front_sensor_sel = <1>;
vinc5_sensor_list = <0>;
status = "okay";
};
vinc20:vinc@8 {
vinc8_csi_sel = <0>;
vinc8_mipi_sel = <0x0>;
vinc8_isp_sel = <0>;
vinc8_isp_tx_ch = <0>;
vinc8_tdm_rx_sel = <0>;
vinc8_rear_sensor_sel = <0>;
vinc8_front_sensor_sel = <0>;
vinc8_sensor_list = <0>;
work_mode = <0x1>;
status = "okay";
};
vinc21:vinc@9 {
vinc9_csi_sel = <0>;
vinc9_mipi_sel = <0x0>;
vinc9_isp_sel = <0>;
vinc9_isp_tx_ch = <0>;
vinc9_tdm_rx_sel = <0>;
vinc9_rear_sensor_sel = <0>;
vinc9_front_sensor_sel = <0>;
vinc9_sensor_list = <0>;
work_mode = <0x1>;
status = "okay";
};
vinc30:vinc@12 {
vinc12_csi_sel = <0>;
vinc12_mipi_sel = <0x0>;
vinc12_isp_sel = <0>;
vinc12_isp_tx_ch = <0>;
vinc12_tdm_rx_sel = <0>;
vinc12_rear_sensor_sel = <0>;
vinc12_front_sensor_sel = <0>;
vinc12_sensor_list = <0>;
work_mode = <0x1>;
status = "okay";
};
vinc31:vinc@13 {
vinc13_csi_sel = <1>;
vinc13_mipi_sel = <1>;
vinc13_isp_sel = <1>;
vinc13_isp_tx_ch = <0>;
vinc13_tdm_rx_sel = <1>;
vinc13_rear_sensor_sel = <1>;
vinc13_front_sensor_sel = <1>;
vinc13_sensor_list = <0>;
status = "okay";
};
2、内核配置
双mipi sensor场景下,ISP分时复用,需要使用TDM,故需打开TDM。
文件:device/config/chips/v853/configs/perf1/linux/config-4.9
修改:打开TDM配置
CONFIG_SUPPORT_ISP_TDM=y
CONFIG_TDM_LBC_EN=y
3、mpp middleware
首先,确保mpp配置中选中了gc2053 sensor。检查方法:
make menuconfig,依次进入配置项:
Allwinner --->
eyesee-mpp --->
[*] select sensor
[*] use sensor gc2053
然后,在ISP效果文件中,为第二个sensor添加效果文件配置。
位置:external/eyesee-mpp/middleware/sun8iw21/media/LIBRARY/libisp/isp_cfg/isp_ini_parse.c
修改:将原来的两组gc2053_mipi配置分别拷贝一份,然后修改名字为gc2053_mipi_2即可,其他参数不用修改。
struct isp_cfg_array cfg_arr[] = {
...
#ifdef SENSOR_GC2053
{"gc2053_mipi", "gc2053_mipi_isp600_20220511_164617_vlc4_day", 1920, 1088, 20, 0, 0, &gc2053_mipi_v853_isp_cfg},
{"gc2053_mipi", "gc2053_mipi_isp600_20220415_144837_ir", 1920, 1088, 20, 0, 1, &gc2053_mipi_ir_isp_cfg},
{"gc2053_mipi_2", "gc2053_mipi_isp600_20220511_164617_vlc4_day", 1920, 1088, 20, 0, 0, &gc2053_mipi_v853_isp_cfg},
{"gc2053_mipi_2", "gc2053_mipi_isp600_20220415_144837_ir", 1920, 1088, 20, 0, 1, &gc2053_mipi_ir_isp_cfg},
#endif
...
}
按以上步骤修改完成后,需重新编译mpp和固件,命令如下:
cleanmpp && mkmpp && mp
二、双目GC2053验证
支持验证双目GC2053的mpp sample有:
sample_rtsp(支持双目采集+编码+RTSP)、sample_smartIPC_demo(支持双目采集+编码+RTSP+人形检测)、sample_smartPreview_demo(支持双目采集+预览)
如果不需要RTSP功能,注释掉代码中的宏 #define SUPPORT_RTSP_TEST 即可。
有关mpp sample的使用方法,请参考 https://bbs.aw-ol.com/topic/1906/
Recommend
-
3
详解全志V853上的ARM A7和RISC-V E907之间的通信方式 原创 神棍地海棠 20...
-
2
V853开发板硬件资料——RISC-V核E907用户手册 原创 神棍地海棠 2022-07-20...
-
5
V853开发板开发进阶——在Linux下加载E907核心固件 推荐 原创 神棍地海棠 ...
-
4
项目源码获取: V853 Tina_LVGL Download LVGL 开发实战 移植基于 LVGL 的 2048 小游戏 这一节将以一个已经编写好的 lvgl 小游戏 20...
-
7
全志D1H芯片 Tina 如何查看通过 procd init 脚本启动的应用输出到 stdout/stderr 的打印信息? 精选 原创
-
3
全志V853芯片 如何解决getevent运行出错,报错为“could not add watch for /dev/input”的问题? 精选 原创
-
5
全志芯片Tina Linux 修改 UART 引脚、UART端口 (2) 精选 原创 神棍地海棠 2022-11...
-
3
全志H616芯片 以太网模块初始化失败如何解决? 精选 原创 神棍地海棠 2022-11-18...
-
6
NPU 转换 YOLO V3 模型 YOLO 全称是 You Only Look Once(你只需看一次),从名称上也能看出这种算法速度快的优势,因此在许多边缘设备上,YOLO 算法的使用十分广泛。YOLOV3 是华盛顿大学研究生 Joseph Redmon 所开发,他也因此凭借该算法获得了计...
-
4
全志T113芯片蓝牙音乐播放失败如何解决? 精选 原创 神棍地海棠 2023-01-12 10:14...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK