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

* 一块转接板能接4路AHD
* 转接板需要独立的外部供电,功率需要视AHD摄像头的实际情况而定
EASY EAI Nano-TB开发板具有2路MIPI CSI-2接口。每路引出了4个Lane。位置定义如下所示。

采购AHD转接板,同时会配有一根0.5mm间距的40pin FPC反向线。
反向线:两端的蓝色标识不在同一侧面。
同向线:两端的蓝色标识处于同一侧面。


* 接线必须在断电时进行操作。
* 采用反向线连接AHD转接板与MIPI-CSI接口。(注意:用错线会烧坏转接板或者核心板,因此在接线时务必要小心。)
* 接线端子卡扣与FPC线的蓝色塑料标识必须位于同一侧。如下图所示。

由于默认固件MIPI-CSI支持IMX415摄像头,若需要系统支持AHD转接板,则需要修改内核镜像并替换。设计如下几步操作。
固件的下载和具体烧录步骤,若不熟练,可查阅《固件烧录与更新》一文。
ubuntu_sdk源码(主要是kernel源代码)的下载,可以参考《嵌入式底层开发/ubuntu系统SDK/编译说明》一文。
根据《嵌入式底层开发/ubuntu系统SDK/kernel》中的说明,用户按需构建和管理【内核源码开发仓库】。
并按照下图说明,修改【内核源码开发仓库】中的设备树文件:

EASY-EAI-Nano-TB设备树入口:arch/arm64/boot/dts/rockchip/rv1126b-nano.dts
编译后,生成新的boot.img。
拷贝上一步生成出来的boot.img到固件的rockdev目录中,替换掉原来的boot.img,然后把boot.img烧录进开发板即可。
可通过串口调试,在开发板终端执行Linux shell命令。
首先通过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
再执行下方命令,寻找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接口。
最后执行下方命令,即可在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
画面效果如下所示:
全部0条评论
快来发表一下你的评论吧 !