SOLVED jetson nano 2GB无法识别相机 MV-MIPI-IMX264M
-
ls /proc/device-tree/host1x/i2c@546c0000/
'#address-cells' clock-frequency compatible iommus phandle resets '#size-cells'
avdd_dsi_csi-supply clock-names ina3221x@40 linux,phandle reg scl-gpio status
bus-pullup-supply clocks interrupts name reset-names sda-gpiols /sys/bus/i2c/drivers
bq27xxx-battery i2c-ds90ub954 imx477 lp855x mvcam pca953x rt5659 tegra_edid veye327
cs53l30 imx219 ina219x lt6911uxc nct1008_nct72 pca954x rtc-rx8025 tmpm32xi2c veyecam
cssc132 imx268 ina230x max77620 ov10823 pca9570 sgtl5000 tps65132 veye_imx335
csx307 imx318 ina3221x max9295 ov23850 'PEX9749 thermal sensor' stepper_pca ucsi_ccg
dummy imx390 lc898212 max9296 ov9281 rt5640 tas2552 usb3503 -
6:从https://github.com/veyeimaging/nvidia_jetson_veye_bsp/tree/master/dtbs/Nano/JetPack_4.6.1_Linux_JETSON_NANO_TARGETS/dts%20dtb/MV-MIPI-MVCAM/ 下载tegra210-p3448-0003-p3542-0000.dtb 并替换官方dtb.
dtb显示不正常。讲一下上面这步你是怎么做的?
-
@veye_xumm
我先把整个 /boot 压缩备份,
用浏览器在github上下载zip包, 提取的tegra210-p3448-0003-p3542-0000.dtb,
md5sum /tmp/tegra210-p3448-0003-p3542-0000.dtb
e82e10f334ffc7b881e1549a1b100437 /tmp/tegra210-p3448-0003-p3542-0000.dtb直接拷贝覆盖/boot的那个同名文件,同时不确定是否到位, 也同步替换/boot//boot/kernel_tegra210-p3448-0003-p3542-0000.dtb.
最后reboot
-
@hmj 替换dtb的话,我们建议的是按照wiki的步骤,修改一下启动文件,配置FDT。参考一下3.5.6.
-
This post is deleted! -
@hmj 好哒,棒棒哒
-
@veye_xumm
我需要一个C的开发手册, 方便开发应用,谢谢! -
-
如果用作硬触发模式,如何设置,相机的曝光时间?
-
@veye_xumm
v4l2-ctl --set-ctrl trigger_mode=1
v4l2-ctl --set-ctrl trigger_src=1
v4l2-ctl -d /dev/video0 --set-fmt-video=width=2432,height=2048,pixelformat=GREY --stream-mmap --stream-count=1 --stream-to=raw.raw我用gpio触发, 硬件链接没问题, 量到正常电平,但是并没有获取到图片,还需要哪些设置?
-
@hmj 参考下面这个文章的ISP部分,可以配置自动曝光,手动曝光。如果是外触发模式,建议使用手动曝光模式,然后手动配置曝光时间和增益。
https://wiki.veye.cc/index.php/Mv_mipi_i2c.sh_user_guide#metime -
@veye_xumm
关于ROI, 有几个问题请教一下
1:X,Y,W,H中的W应该多少字节对齐合适? 全画面下文档建议是64x, X的起始位置应为多少字节对其合适?参考代码中是8
2:ROI重配置是否需要对/dev/video0设备关闭重新打开?
3:ROI的设置有2部分重叠, I2C那边有设置参数, V4L2也有设置参数.是否要重配置
如果我需一起哦截取的位置是 [256,256, 512,512] 那么V4L2那边的具体参数该怎么配置,从0,0开始(应为I2C已经配过了), 还是(256,256)开始? -
- [y] [height] 的步长为 4,[width] 的步长为 8。
实际上在jetson平台上,建议width的步长为64.这样方便jetson主板收到数据之后对齐操作,也方便你应用层处理。
@hmj said in jetson nano 2GB无法识别相机 MV-MIPI-IMX264M:
2:ROI重配置是否需要对/dev/video0设备关闭重新打开?
不需要。
@hmj said in jetson nano 2GB无法识别相机 MV-MIPI-IMX264M:
3:ROI的设置有2部分重叠, I2C那边有设置参数, V4L2也有设置参数.是否要重配置
不需要重复设置。
如果你打开/dev/video0之前对camera做一系列配置,可以用脚本对摄像头进行一系列配置。然后打开/dev/video0,v4l2接口会得到新配置的参数。
另一个方法,也更简单一些。对于v4l2接口支持的参数,就直接用v4l2接口配置。不支持的用脚本配置即可。@hmj said in jetson nano 2GB无法识别相机 MV-MIPI-IMX264M:
如果我需一起哦截取的位置是 [256,256, 512,512] 那么V4L2那边的具体参数该怎么配置,从0,0开始(应为I2C已经配过了), 还是(256,256)开始?
不管用什么配置方法,都正确传递[256,256, 512,512] 参数进去应该就可以的。
-
假设jetson上电后得预配置时[0,0,2432,2048],正在正常按节奏取图,
这时UI 给了一个[128, 16, 1024, 256] 这么一个需求,
如何配置驱动,才能让用户无感无缝切换图片.
(配置时候,可以接受暂时停流, 不接受重启上层应用或重启jetson设备) -
@hmj 你在你的程序里面,调用stop stream(VIDIOC_STREAMOFF),然后配置roi,然后重新start stream(VIDIOC_STREAMON)。
-
@veye_xumm
也就是说,在nano平台, 关于roi这组参数,可以忽略i2c层面配置,只有v4l那边配置就可以了?
这么做是真实硬件ROI, 会带来FPS得提升吧? -
@hmj
I2c脚本和v4l2接口,本质上都是通过i2c配置了camera的寄存器。所以只需要v4l做了,就无需使用脚本配置。
是的,降低roi中的图像高度,会提升MAXFPS,你可以通过脚本获取当前配置下的max fps,然后配置fps到范围内的值。 -
@veye_xumm
我现在又遇到一个问题,如果我把相机曝光设置为10000(2432*2048), 查询GET_FPS,帧率大约为38.84,那么帧周期为27902, 在此基础上用硬触发(周期为28000的脉冲,其中高电平维持10000,站空比为5:7)去拍, 比如发送10个脉冲, 那么只能收到5图,如果把触发周期改成34000以上, 那么10图都能接受到.我现在需要保证相机尽量快速取图,哪边还需要再配置才能获地高速?
-
@hmj 按照https://wiki.veye.cc/index.php/Mv_mipi_camera_manual/zh part2.4.3的描述,你的诉求应该是没有问题的。
你先参考这个链接,升级一下固件:https://wiki.veye.cc/index.php/Mvcam_firmware_update_manual
然后再做一下测试试试。 -
./mv_mipi_i2c.sh -r -f version
version is C 01.34 and L 02.00
貌似已经是最新固件,与网站上6月5日是同一版, 无需再升级