rv1126 A191模组IRCUT介绍
1 IRCUT由来
自然界中存在各种波长的光线,人眼识别的光线波长范围在320nm-760nm之间,超过这个范围的光线人眼就无法识别,但是摄像机的成像元器件CCD或者CMOS可以识别到绝大多数波长的光线,由于各种光线的参与,摄像机所还原的颜色就会跟肉眼所见的颜色在色彩上存在偏差。
比如:白天日光光照中含有大量的红外线,这些红外线不进行处理的情况下就会被成像元器件识别并采集成像,导致成像的图像偏红色,这个时候就需要对红外线进行过滤,而夜晚摄像机如果配备红外补光灯的话,此时就不能过滤红外光线,而应该保留所有光线。这就需要IRCUT的处理。
2 IRCUT组成及原理
IRCUT双滤光片切换器由一个红外截止低通滤光片(一片红外截止或吸收滤光片)、一个全光谱光学玻璃(一片全透光谱滤光片)、动力结构(可以是电磁、电机或其他动力源)以及外壳组成,它通过一块电路控制板来进行切换、定位。当白天的光线充足时,电路控制板驱使切换器切换并定位到红外截止滤光片工作,CCD或CMOS还原出真实色彩;当夜间可见光不足时,红外截止滤光片自动移开,全光谱光学玻璃开始工作,这时,它能感应红外灯的红外光,使CCD或CMOS充分利用到所有光线,从而大大提高了红外摄像机的夜视性能,整个画面也就清晰自然了。
3 A191模组IRCUT引脚配置
基于rv1126主控的A191模组上IRCUT内核设备树中引脚配置如下:
cam_ircut0: cam_ircut {
compatible = "rockchip,ircut";
status = "okay";
ircut-open-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>;
ircut-close-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>;
//ircut-open-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>;
//ircut-close-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&ircut_pins>;
rockchip,camera-module-index = <1>;
rockchip,camera-module-facing = "front";
};
4 A191模组IRCUT控制方式
一般有两种控制方式:第一种,通过v4l2-ctl进行控制;第二种,直接通过操作gpio进行控制。当然,虽然有两种控制方式,但是,一般情况下v4l2默认开机就会占用那两个引脚,这个时候直接用v4l2的命令进行控制。
4.1通过v4l2-ctl控制IRCUT切换
查看IRCUT设备节点,命令及信息如下:
[root@RV1126_RV1109:~]# grep '' /sys/class/video4linux/v*/name
/sys/class/video4linux/v4l-subdev0/name:rkispp-subdev
/sys/class/video4linux/v4l-subdev1/name:rockchip-mipi-csi2
/sys/class/video4linux/v4l-subdev2/name:rockchip-mipi-dphy-rx
/sys/class/video4linux/v4l-subdev3/name:m01_f_imx415 1-001a
/sys/class/video4linux/v4l-subdev4/name:m01_f_ircut
/sys/class/video4linux/v4l-subdev5/name:rkisp-isp-subdev
/sys/class/video4linux/v4l-subdev6/name:rkisp-csi-subdev
/sys/class/video4linux/v4l-subdev7/name:rkcif_mipi_lvds
/sys/class/video4linux/video0/name:stream_cif_mipi_id0
/sys/class/video4linux/video1/name:stream_cif_mipi_id1
/sys/class/video4linux/video10/name:rkisp_rawwr3
/sys/class/video4linux/video11/name:rkisp_rawrd0_m
/sys/class/video4linux/video12/name:rkisp_rawrd2_s
/sys/class/video4linux/video13/name:rkisp_rawrd1_l
/sys/class/video4linux/video14/name:rkisp-statistics
...
...
可以看出ircut的节点为v4l-subdev4,所以控制IRCUT的命令为:
打开命令:
v4l2-ctl -d /dev/v4l-subdev4 --set-ctrl 'band_stop_filter=1'
关闭命令:
v4l2-ctl -d /dev/v4l-subdev4 --set-ctrl 'band_stop_filter=0'
获取当前值命令:
v4l2-ctl -d /dev/v4l-subdev4 --get-ctrl band_stop_filter
查询可用值命令:
[root@RV1126_RV1109:~]# v4l2-ctl -d /dev/v4l-subdev4 --list-ctrls
User Controls
band_stop_filter 0x00980921 (int) : min=0 max=4 step=1 default=1 value=3
[root@RV1126_RV1109:~]#
4.2通过gpio控制IRCUT切换
操作之前,先根据设备树里面的配置,计算gpio引脚号。
GPIOXYZ引脚号计算公式:
引脚号 = X * 32 + ( Y - A ) * 8 + Z
所以引脚号为:
open------GPIO3B0--------104
close------GPIO3B1--------105
1.进入gpio目录
cd /sys/class/gpio
echo 104 > export
echo 105 > export
2.把gpio104和gpio105设置为输出
echo out > gpio104/direction
echo out > gpio105/direction
3.把引脚设置为高或低电平来进行IRCUT切换(两个引脚必须一高一低)
打开命令:
echo 1 > gpio104/value
echo 0 > gpio105/value
关闭命令:
echo 0 > gpio104/value
echo 1 > gpio105/value
如果提示 Device or resource busy,那就是引脚已经被占用,可以直接用v4l2命令去控制。
- 分享
- 举报
-
浏览量:1921次2024-01-05 14:15:33
-
浏览量:3050次2023-11-24 19:08:58
-
浏览量:4781次2023-03-24 22:56:50
-
浏览量:2021次2023-11-20 16:48:25
-
浏览量:1941次2024-01-05 14:17:30
-
浏览量:1710次2023-05-10 19:31:01
-
浏览量:765次2024-01-02 09:46:50
-
浏览量:1006次2023-08-30 18:37:06
-
浏览量:1671次2023-12-29 17:51:55
-
浏览量:3603次2023-04-19 17:17:55
-
浏览量:4029次2021-06-18 16:05:42
-
浏览量:2536次2023-11-29 08:59:50
-
浏览量:1309次2023-08-31 16:23:55
-
浏览量:1271次2023-12-07 00:53:19
-
浏览量:2187次2023-11-21 14:45:31
-
浏览量:655次2024-02-29 16:42:40
-
浏览量:649次2023-11-28 14:16:24
-
浏览量:1017次2023-11-10 15:08:11
-
浏览量:1492次2024-01-27 16:28:20
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
林
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明