1. AHD摄像头硬件介绍

1.1 AHD信号转接板介绍

EASY EAI Nano-TB默认没有AHD信号接口,因此需要通过一块信号转接板把AHD信号转换成MIPI-CSI信号进行接入:

* 一块转接板能接4路AHD

* 转接板需要独立的外部供电,功率需要视AHD摄像头的实际情况而定

1.2 开发板MIPI接口资源介绍

EASY EAI Nano-TB开发板具有2路MIPI CSI-2接口。每路引出了4个Lane。位置定义如下所示。

采购AHD转接板,同时会配有一根0.5mm间距的40pin FPC反向线

反向线:两端的蓝色标识不在同一侧面。

同向线:两端的蓝色标识处于同一侧面。

1.3 硬件接线说明

* 接线必须在断电时进行操作。

* 采用反向线连接AHD转接板与MIPI-CSI接口。(注意:用错线会烧坏转接板或者核心板,因此在接线时务必要小心。)

* 接线端子卡扣与FPC线的蓝色塑料标识必须位于同一侧。如下图所示。

2. 系统层支持

由于默认固件MIPI-CSI支持IMX415摄像头,若需要系统支持AHD转接板,则需要修改内核镜像并替换。设计如下几步操作。

2.1 升级到最新固件

固件的下载和具体烧录步骤,若不熟练,可查阅《固件烧录与更新》一文。

2.2 下载ubuntu系统SDK源码

ubuntu_sdk源码(主要是kernel源代码)的下载,可以参考《嵌入式底层开发/ubuntu系统SDK/编译说明》一文。

2.3 修改内核设备树

根据《嵌入式底层开发/ubuntu系统SDK/kernel》中的说明,用户按需构建和管理【内核源码开发仓库】。

并按照下图说明,修改【内核源码开发仓库】中的设备树文件:

EASY-EAI-Nano-TB设备树入口:arch/arm64/boot/dts/rockchip/rv1126b-nano.dts

编译后,生成新的boot.img。

2.4 更新内核镜像

拷贝上一步生成出来的boot.img到固件的rockdev目录中,替换掉原来的boot.img,然后把boot.img烧录进开发板即可。

3. 应用方法

可通过串口调试,在开发板终端执行Linux shell命令。

3.1 查看设备情况

首先通过dmesg命令,检查MIPI-CSI2接口模块是否正常工作。

dmesg | grep -i "nvp6188"

转接板正常挂载的情况如下所示。可以看到:

在dphy0接口上有一个型号为:nvp6188的转接芯片,MIPI-CSI2地址为:1-0033;

在dphy3接口上有一个型号为:nvp6188的转接芯片,MIPI-CSI2地址为:4-0033。

当没能出现转接板的I2C节点时,就需要检查:

1-转接板是否已经独立供电

2-转接板与开发板是否按照“1.3硬件接线说明”章节描述接线

3-内核设备树是否修改正确,并且确实已经更新kernel.img

3.2 寻找可用的设备节点

再执行下方命令,寻找AHD摄像头通道对应的/dev/video节点:

grep "" /sys/class/video4linux/*/name

其中/dev/video1、/dev/video2、/dev/video3、/dev/video4接口是MIPI-CSI0对应的可用节点。/dev/video12、/dev/video13、/dev/video14、/dev/video15接口是MIPI-CSI1对应的可用节点。

chn1:stream_cif_mipi-id0对应转接板D1接口。

chn2:stream_cif_mipi-id1对应转接板D2接口。

chn3:stream_cif_mipi-id2对应转接板D3接口。

chn4:stream_cif_mipi-id3对应转接板D4接口。

3.3 测试命令

最后执行下方命令,即可在8寸显示屏上显示AHD摄像头抓取的画面。

gst-launch-1.0 \
    v4l2src device=/dev/video1 ! video/x-raw,width=320,height=400,format=NV12,framerate=30/1 ! queue ! compositor.sink_0 \
    v4l2src device=/dev/video2 ! video/x-raw,width=320,height=400,format=NV12,framerate=30/1 ! queue ! compositor.sink_1 \
    v4l2src device=/dev/video3 ! video/x-raw,width=320,height=400,format=NV12,framerate=30/1 ! queue ! compositor.sink_2 \
    v4l2src device=/dev/video4 ! video/x-raw,width=320,height=400,format=NV12,framerate=30/1 ! queue ! compositor.sink_3 \
    v4l2src device=/dev/video12 ! video/x-raw,width=320,height=400,format=NV12,framerate=30/1 ! queue ! compositor.sink_4 \
    v4l2src device=/dev/video13 ! video/x-raw,width=320,height=400,format=NV12,framerate=30/1 ! queue ! compositor.sink_5 \
    v4l2src device=/dev/video14 ! video/x-raw,width=320,height=400,format=NV12,framerate=30/1 ! queue ! compositor.sink_6 \
    v4l2src device=/dev/video15 ! video/x-raw,width=320,height=400,format=NV12,framerate=30/1 ! queue ! compositor.sink_7 \
    compositor name=compositor \
        sink_0::xpos=0    sink_0::ypos=0    \
        sink_1::xpos=320  sink_1::ypos=0    \
        sink_2::xpos=640  sink_2::ypos=0    \
        sink_3::xpos=960  sink_3::ypos=0  \
        sink_4::xpos=0    sink_4::ypos=400  \
        sink_5::xpos=320  sink_5::ypos=400  \
        sink_6::xpos=640  sink_6::ypos=400  \
        sink_7::xpos=960  sink_7::ypos=400  \
        ! video/x-raw,width=1280,height=800,format=NV12 ! \
videoflip method=1 ! videoconvert ! kmssink

画面效果如下所示:

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐