回答

收藏

[评测分享] 【飞凌嵌入式RK3568J开发板测评】+ 驱动基础-调试mipi Sensor

#板卡评测 #板卡评测 2613 人阅读 | 0 人回复 | 2022-12-10

本帖最后由 eefocus_3828686 于 2022-12-10 13:38 编辑

1、概述

飞凌嵌入式RK3568J开发板的Sensor接口支持mipi csi。本文使用mipi接口调试Sensor驱动,使用的Sensor型号为GC5035。使用飞凌嵌入式RK3568J开发板的调试mipi  Sensor驱动,从硬件和软件两个部分进行展开。

2、硬件部分
2.1首先来看飞凌嵌入式RK3568J开发板底板留出的mipi csi接口端子位号是P16
电路如下:


可见留出的mipi csi接口端子规格为:4线mipi csi,一组IIC线,一个控制复位的gpio,一个控制PWEDN的gpio,一路时钟输出,电源有1V2、1V8、2V8,可以满足大多数sensor模组的接口需求
实际板子上的接口位置如下:


2.2、再来看看用户实际手上的MIPI CSI情况
模组接口如下:


和飞凌嵌入式RK3568J开发板底板接口线序和端子引脚对不上,但是电气信号都是有的,需要外接转接板进行线序匹配。依然使用mipi dsi 屏幕驱动调试时同型号的转接板 https://www.cirmall.com/bbs/thread-225851-1-1.html

空板效果:


线序调整完成后的效果:


3、软件部分
3.1 首先看,在电路图中留出的IIC号为IIC2(I2C2_SDA_M1和I2C2_SCL_M1),找到飞凌嵌入式RK3568J开发板底板所用到设备树文件 kernel\arch\arm64\boot\dts\rockchip\OK3568-C-common.dtsi 下IIC2对应的设备节点:&i2c2,在节点内部加入Sensor的配置如下:


其中
compatible = "galaxycore,gc5035"; 用于和驱动进行匹配

pinctrl-0 = <&cif_clk>, <&gc5035_default_pin>;
pwdn-gpios = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio0 RK_PD6 GPIO_ACTIVE_HIGH>; 用于控制复位和待机的gpio,按照实际使用情况配置即可,这里使用PB2和PD6

rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "front";
rockchip,camera-module-name = "gc5035-csi";
rockchip,camera-module-lens-name = "gc5035-lens"; 一些模组参数

port {
     gc5035_out: endpoint {
        remote-endpoint = <&mipi_in_ucam0>;
        data-lanes = <1 2>;
     };
};  sensor对应的port配置,gc5035只用2个lanes,lane1和lane2.

物理层这里配置使用 csi_dphy0 :


设备数的配置先这样

3.2 下面是驱动程序的配置
飞凌嵌入式RK3568J开发板的Sensor驱动在/OK3568-linux-source/kernel/drivers/media/i2c目录下,可见在该目录下已经包含了对gc5035.c的支持


接下来配置编译选项make menuconfig,直接把gc5035.c加进来编译,位置如下:


配置如下:


保存退出,查看kernel目录.config文件,确认我们配置已经配上


重新编译烧录试试看

4、调试查看
重新烧录开机后,查看log,发现已经可以识别到Sensor
detected gc5035 sensor


节点生成情况:




本文主要对飞凌嵌入式RK3568J开发板mipi csi接口的驱动调试,验证了外接Sensor通信时序和IIC配置连接正常,这里记录一下过程;
关于Sensor图像信号后续再做调试。




分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条