近期我们收到了很多开发者关于机型连接的咨询类问题,官方文档中介绍的连接方式是流程图方式,没有结合实物,所以可能看起来不是特别的直观,因此,我们基于官方文档的介绍补充了PSDK常用机型的连接方式,有图片和视频的介绍,方便大家了解如何连接,有任何问题欢迎大家在下发留言讨论或咨询dev@dji.com进一步了解。
视频介绍(M350、M3/T、M30/T、M3D/TD机型可以参考M350*.mp4的视频文件):
https://pan-sec.djicorp.com/s/mYbBPJ7pDHdjAKZ
M300连接:
注:建议确认好拨码开关位置以后,再打开飞机电源,否则端口可能无法正确被识别,每次切换主从角色的拨码开关位置时,需重新插拔飞机端的同轴线,让飞机重新识别。
1、确保同轴线的AA、BB面不会同时出现,组合可以是AB或BA。
2、串口连接图中使用的是USB-TTL,推荐使用FT232芯片,实测兼容性和稳定性更好。
3、同轴线连接飞机和拓展板,此处我们使用A面朝飞机内部电源按键的方向,B面朝外,拓展板部分则是B面朝上,A面朝下。
4、检查电源开关是否有打开,同轴线旁边有一个拨码开关,拨到NO。
5、在拓展板另一端,有TypeC端口,旁边有一个拨码开关,拨到Device侧。
6、使用TypeC数据线连接拓展板的TypeC接口和开发板的USB A接口。(可以是手机数据线,线缆需具备数据传输功能,不能是单纯的电源线,该线缆会被PSDK程序作为数据交互链路来使用)
7、确认无误后,将同轴线连接连接飞机,飞机上电。在开发板使用指令ls /dev/tty*查看端口,可以看到出现了/dev/ttyACM0 和 /dev/ttyUSB0(如果开发板上连接了多个串口,可以根据热插拔USB-TTL来确认),这两个分别是USB线缆和USB-TTL的连接,出现这两个端口说明硬件连接没问题了。具体的PSDK程序可以结合 PSDK如何配置串口端口 文章来配置。
在对应工程的hal_uart.h文件下,有DEV1、DEV2,DEV2一般是配置成ACM0。
M350/M30/M3/M3D机型连接方式:
由于都是E-Port接口,因此以M350机型为例,剩余机型按照此方式均可连接(M3E/T机型调试阶段需要插着套件再开机,否则会有15s的倒计时断电机制):
1、同轴线连接飞机的部分,不要出现AA BB面同时朝上的情况,这里我们使用A面朝飞机电源按键方向,B面朝外,拓展板侧则是B面朝上,A面朝下。串口使用USB-TTL进行连接。
2、确认下同轴线旁边的拨码开关,需确认处在ON侧。
3、这里我们使用的是双头TypeC数据线连接拓展板和开发板,我们的演示板是树莓派4B,TypeC线缆可以为树莓派供电以及进行数据传输。
确认一下TypeC接口旁边的拨码开关位置,需拨到Host侧,如果刚开始是Device侧,需进行切换,此时可以先不连接飞机,先确认线路连接正确。
4、整体连接如下,必要连接是USB-TTL和TypeC线缆,剩余部分大家可以不用参考,图中一共有两个E-Port拓展板,大家参考右上方的拓展板连接即可,树莓派顶上的拓展板是集成的自制硬件连接,另外树莓派上由于需要远程调试所以接了个USB网卡。
有些开发者使用的开发板接口可能会有差异,这个主要取决于开发板使用哪个接口可以作为从设备(Device)接入飞机,树莓派的TypeC接口可以让它作为Device设备,同时也是供电口。
比如像妙算2G,妙算2G使用的是Micro usb接口连接,才能让其作为从设备,那么连接应该是Micro usb线 + TypeC OTG线连接E-Port拓展板,如下图。
5、连接完成以后,在开发板上使用ls /dev/tty*,可以看到USB0显示,这个表示串口已经成功连接了,M350/M3/M30/M3D类机型只需要有此端口即可,不需要ACM0端口。
剩下部分需要配置USB-BULK完成通信
树莓派4B配置USB device RNDIS 和 BULK
6、USB-BULK链路需要对自己的开发板有一定的了解,以及对LINUX操作系统有一定熟悉度才比较好上手配置,中途会涉及debug工作,由于各个开发板、平台不同,大家配置中遇到的问题可能也不一样,或奇奇怪怪,除了M3D/TD机型以外,我们建议M350 M30 M3机型可以使用USB网卡的方式进行连接,注: M300不支持network,正常连接出现ACM0以后在dji_sdk_config.h中设置链路为uart&bulk即可使用。
我们支持的USB网卡型号有AX88179A、RTL8152,其他型号暂不支持。
连接方式:
Uart串口连接保持不变,E-Port拓展板->OTG线 -> USB网卡 -> 网线 ->开发板。
随后可以在dji_sdk_config.h文件中修改链路为uart&network。同时在hal_network.h文件中修改端口号(可以通过ifconfig查看),以及检查VID PID,不知道VID PID信息的话可以先将USB网卡连接开发板,使用lsusb查看。
那么对应hal_network.h文件中的
这两套配置是根据架构来切换的,如果不清楚平台的架构,可以使用 uname -a 指令来确认。
常见问题:
1、如果出现串口报错(优先检查下E-Port拓展板的电源灯是否有亮起,没有亮起一般是同轴线连接错误,可以把同轴线更换方向再连接):
Try identify UART0 connection failed. Probably because SDK adapter or aircraft not finish init or UART connect error.
可以检查/dev/tty*下是否存在USB0端口,有些开发者使用的是板载串口,此时可以尝试更换USB-TTL(FT232)再进行连接,如果存在USB0端口,可以使用chmod修改下权限,或sudo执行PSDK程序。
或者频繁出现:Command async send retry: index = 0, retryTimes = 3, cmdSet = 0, cmdId = 0
可以调整波特率,更换硬件连接线路,比如改用USB-TTL,更换别的杜邦线。
2、按照图中或视频中的连接以后,没有出现ACM0端口,注:ACM0端口仅仅M300机型需要配置,其他机型只需要USB0端口即可,M300机型如果没有出现ACM0端口,可以先拔掉连接飞机的同轴线,拔掉拓展板和开发板之间的TypeC线,然后先连接飞机同轴线,确认拓展板电源灯亮起以后,再连接拓展板和开发板的TypeC线,然后可以再次检查ACM0端口是否会出现。
评论
3 条评论
您好,拓展板通过串口连接树莓派的作用是什么?是否可以直接连接树莓派排针上的扩展引脚?
您好,同想问拓展板通过串口连接树莓派的作用是什么?如果直接连接树莓派4B上的引脚TXRX引脚需要如何进行改动?
>您好,拓展板通过串口连接树莓派的作用是什么?是否可以直接连接树莓派排针上的扩展引脚?
使用USB-TTL兼容性和稳定性会更好一些,直接连接树莓派针脚也是可以的。
>如果直接连接树莓派4B上的引脚TXRX引脚需要如何进行改动?
这个是和树莓派使用串口通信配置相关的,可以参考:
https://blog.csdn.net/weixin_42108484/article/details/104039992
请登录写评论。