dji-sdk/Payload-SDK

Jetson ORIN NX在M350上,通过E-PORT无法查看相机视频流

Opened this issue · 7 comments

你好,我们使用Jetson ORIN NX通过E-port连接了M350。
硬件连接方案为:
(1)E-port的串口通过USB-串口模块连接Jetson ORIN NX的USB接口
(2)Jetson ORIN NX和E-port的type-C接口使用双type-C头的线连接(Jetson ORIN NX的type-C口支持USB Device模式)
参考资料:
(1)官方指导手册
(2) 树莓派4B配置USB device RNDIS 和 BULK
(3)video stream not working in M3TD #180
目前的状态及问题:
(1)按照官方指导配置了所有信息,基于UART的功能都可以验证;
(2)配置了USB bulk,上述参考资料(2)最后给出的验证USB Bulk链路的程序,可以在我们的Jetson ORIN NX上自环收发,如下图
2
(3)基于PSDK中C++工程的nvidia_jetson示例程序, [c] Camera stream view sample - display the camera video stream,无法收到图像数据,现象与上述参考资料(3)描述相同,如下图:
1
通过在示例程序中添加调试输出,发现示例程序在我们选择 [c] Camera stream view sample - display the camera video stream后,程序不仅进行端口信息读取和初始化,还调用了hal_usb_bulk.c文件中的T_DjiReturnCode HalUsbBulk_ReadData(T_DjiUsbBulkHandle usbBulkHandle, uint8_t *buf, uint32_t len)函数,同时程序在 *realLen = read(((T_HalUsbBulkObj *) usbBulkHandle)->ep2, buf, len);
出错或停止。但是,这里的函数与BULK验证程序中几乎完全一致,在那个程序中正常,在这里却不好使。
(4)我们进一步配置编译了C++工程下的maniflod2示例程序,得到了几乎相同的结果。
请问我还能做些什么?或者还有什么环节没有按照要求实现。
谢谢!

Agent comment from Leon in Zendesk ticket #113494:

尊敬的开发者,

您好,感谢您联系DJI 大疆创新。

很抱歉为您带来不好的体验,请问一下您是否有检查过hal_usb_bulk.h中的配置与您的测试节点是否一致?
您可以使用DjiTest_LiveviewRunSample函数进一步验证,在DjiTest_FpvCameraStreamCallback或DjiTest_PayloadCameraStreamCallback中加入打印,看调用时是否会进入回调函数,如果没有进入回调函数,表明bulk链路还有问题。

感谢您对大疆产品的支持!祝您一切顺利!

Best Regards,
DJI 大疆创新SDK技术支持

°°°

您好,我仔细检查了hal_usb_bulk.h中的配置,与测试节点完全一致,且通过测试程序对bulk1和bulk2两个通道均进行了测试。对程序中多个函数进行了输出验证,发现程序成功注册了回调函数并创建了新的线程,但未调用(进入)回调函数,仍无法看到回传画面。
USB数据接收似乎被阻塞在hal_usb_bulk.c的HalUsbBulk_ReadData函数中,没有读到数据。
请问还有可能存在哪些问题?
如果bulk链路还有问题, 应当如何排查?
谢谢!

Agent comment from Leon in Zendesk ticket #113494:

尊敬的开发者,

您好,感谢您联系DJI 大疆创新。

您还可以检查下VID PID是否为0955 7020,这个有可能会导致异常,您的节点如果测试收发没问题,不排除是飞机硬件异常,您也可以寄回售后团队处检测:
https://repair.dji.com/cn/repair/index
另外请问下您是否有检查过妙算工程中的dji_sdk_config.h文件?看看配置是否有切换过来。您是否还有配置RNDIS?也可以用RNDIS来尝试看是否正常。

感谢您对大疆产品的支持!祝您一切顺利!

Best Regards,
DJI 大疆创新SDK技术支持

°°°

感谢帮助,我们已经可以顺利运行demo,看到回传视频了。
我们出现的问题在于必须使用Type-C的OTG线插在E-Port上,再通过USB-A===Type-C的线连接到Jetson ORIN NX的Type-C端口上。
使用双头Type-C直接连接E-Port和Jetson无法接收到数据。
以上,希望可以帮助到其他人。

Agent comment from Leon in Zendesk ticket #113494:

尊敬的开发者,

您好,感谢您联系DJI 大疆创新。

感谢您的反馈,我们会将您的问题记录,以便能够给更多开发者参考。

感谢您对大疆产品的支持!祝您一切顺利!

Best Regards,
DJI 大疆创新SDK技术支持

°°°

我也遇到了一样的问题,楼主最终是只换了线解决了吗,我用的老版本的NX没有TypeC接口,尝试用OTG中转E-Port也没有解决,PSDK的云台和相机其它功能都正常的

我也遇到了同样的问题