FG24-4CH 软件

节点映射

(单目RGB相机,双目如ZED X请参考ZED X页面)

Devkit接口 FAKRA接口 设备节点
CAM1 GMSL0 /dev/video0
CAM1 GMSL1 /dev/video1
CAM1 GMSL2 /dev/video2
CAM1 GMSL3 /dev/video3
### 配置MAX96724时必须配置如下两个寄存器
0x08a5 = 0x3F // PHY0~1 Polarity negative
0x08a6 = 0x3F // PHY2~3 Polarity negative

固件升级

请先在NVIDIA Jetson® Orin™ NX模块上安装了正确的软件,通过升级BSP固件可支持不同相机。 GMSL1和GMSL2 相机需要使用适当的软件和固件配置才可以正常使用(对应固件需联系销售人员获取)。

FG24-4CH 采集板固件升级方法:

  1. 确保所有外部系统电源已关闭(Orin™ NX套件电源和GMSL板电源)

  2. 将FG24-4CH GMSL扩展板J12/J13和 Orin™ NX 22Pin连接器进行连接

  3. 将GMSL相机通过FAKRA连接线 接到J2/3/4/5连接器

  4. 将J1接入12V直流电源(最高可支持24V),即通过外部为GMSL相机供电

  5. 打开电源,等待系统启动,并参考Readme 进行软件固件的升级操作(将Image和dtb更新的/boot)

  6. 固件升级完成后,Reboot重启或断电重启机器

  7. 重启后可通过如下方式查看软件的一些信息

nvidia@nvidia-desktop:~$ sudo dmesg | grep connected

serdes 9-0029: /dev/video0 is connected!
serdes 9-0029: /dev/video1 is connected!
serdes 9-0029: /dev/video2 is connected!
serdes 9-0029: /dev/video3 is connected!

FG24-4CH客户可自行进行Serdes参数调试,相关参数配置可联系业务人员获取,,软件开发可以参考BSP包自带的IMX390 Driver

DTSI 配置可参考如下

#include "tegra234-camera-gmsl-fzcam.dtsi"

#define CAM_I2C_MUX 	TEGRA234_AON_GPIO(CC, 3)
#define CAM0_SYNC	TEGRA234_MAIN_GPIO(H, 6)
#define CAM1_SYNC	TEGRA234_MAIN_GPIO(AC, 0)

/ {
	cam_i2cmux {
		compatible = "i2c-mux-gpio";
		#address-cells = <1>;
		#size-cells = <0>;
		mux-gpios = <&tegra_aon_gpio CAM_I2C_MUX GPIO_ACTIVE_HIGH>;
		i2c-parent = <&cam_i2c>;
		i2c@0 {//CAM1接口
			reg = <0>;
			#address-cells = <1>;
			#size-cells = <0>;
			serdes@29 {
				compatible = "nvidia,serdes";
				reg = <0x29>;
			};
			fzcam_1a@1a {
				channel = <0>;
			};
			fzcam_1b@1b {
				channel = <0>;
			};
			fzcam_1c@1c {
				channel = <0>;
			};
			fzcam_1d@1d {
				channel = <0>;
			};
		};
		i2c@1 {//CAM0接口
			reg = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
			serdes@29 {
				compatible = "nvidia,serdes";
				reg = <0x29>;
			};
			fzcam_2a@2a {
				channel = <1>;
			};
			fzcam_2b@2b {
				channel = <1>;
			};
			fzcam_2c@2c {
				channel = <1>;
			};
			fzcam_2d@2d {
				channel = <1>;
			};
		};
	};
};

GMSL快速验证

设备支持使用Gstreamer输出视频流,图像获取与显示使用方法如下:

#8M相机:(3840x2160)
gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)UYVY, width=(int)3840, height=(int)2160" ! videoconvert ! fpsdisplaysink video-sink=xvimagesink sync=false

#5M相机:(2880x1860)
gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)UYVY, width=(int)2880, height=(int)1860" ! videoconvert ! fpsdisplaysink video-sink=xvimagesink sync=false

#2M 相机:(1920x1080)
gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080" ! fpsdisplaysink video-sink=xvimagesink sync=false

#1M相机:(1280x720)
gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)720" ! fpsdisplaysink video-sink=xvimagesink sync=false

#其他分辨率相机根据具体相机参数进行设置即可

Camera应用代码参考

jetson_cam_app 包含两个C++ 应用案例如下:

camera_v4l2_cuda :CUDA SDK Demo通过CUDA运行效率高(需预装JetPack SDK)。

camera_v4l2_opencv:OpenCV SDK Demo 直接使用V4L2和OpenCV来获取摄像头图像。

V4L2常用命令

#查看Camera设备列表
nvidia@nvidia-desktop:~$ v4l2-ctl --list-devices -d /dev/video0
NVIDIA Tegra Video Input Device (platform:tegra-camrtc-ca):
	/dev/media0

vi-output, fzcam 9-001a (platform:tegra-capture-vi:0):
	/dev/video0
	/dev/video1
	/dev/video2
	/dev/video3

#查看Camera输出格式
nvidia@nvidia-desktop:~/fz.wks$ v4l2-ctl --list-formats -d /dev/video0
ioctl: VIDIOC_ENUM_FMT
	Type: Video Capture
	
	[0]: 'UYVY' (UYVY 4:2:2)
	[1]: 'NV16' (Y/CbCr 4:2:2)
	[2]: 'UYVY' (UYVY 4:2:2)


#V4L2 捕获100帧以查看其输出是否可以正常
v4l2-ctl --set-fmt-video=width=3840,height=2160 --stream-mmap --stream-count=1000 -d /dev/videoX

nvidia@nvidia-desktop:~$ v4l2-ctl --set-fmt-video=width=3840,height=2160 --stream-mmap --stream-count=100 -d /dev/video0
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
<<<<<<<<

#其他V4L2 命令可参考
v4l2-ctl -d /dev/video0 --all
v4l2-compliance -d /dev/video0 

FG24-4CH已验证兼容过的相机包括但不限于森云、猎豹、艾睿红外、丽景、Intel D457、Stereolabs ZEDX等,相机分辨率也可支持到从640x514到3840x2160(8M).

已验证过的相机(以下指YUV相机)包括但不限于

品牌 Sensor型号(YUV) 备注
舜宇Sunny OX08B40
Stereolabs ZED X/mini
艾睿光电 M6
Pilot640
辉创Whetron OSX019
德赛 OX01FC
OSX019
森云智能 AR0147
AR0231
OX03C
IMX390
ISX031
OX05B
IMX490
AR0820
OX08BC
Leopard猎豹 IMX490
ISX021
ISX031
OX08BCX4000
广州晶华精密 OX08BC
IMX390
OX01FC
沈阳丽景科技 IMX390
ISX031
OX08B40
艾利光 OSX019
ISX031
ISX021