Quectel移远展锐平台5G模组RX500U/RG200U:USB/TTL使用指南(二)

USB调试

展锐5G模组的USB接口有3个功能:

  • USB转串口用于AT控制
  •        USB转串口跟4G模块是一样的,都会虚拟出多个USB串口设备,Windows下是Quectel AT的串口设备,只需要安装原厂提供的USB驱动程序即可,安装成功后,用串口调试工具打开即可与模组进行通讯。

     

     Linux下会有些麻烦,因为在目前的Linux内核中,usbserial模块中,没有添加移远展锐模组的VID和PID,所以无法识别设备,也就枚举不出来ttyUSBx设备,一种方式是按照原厂的移植文档修改内核option.c的源码,更新usbsserial库。

    如是是临时手动调试,也可以手动写入模组的VID,PID去加载模组驱动,不过重启设备后还需要重新手动加赞。

    首先确保usbserial.ko已经正确加载:lsmod " grep usbserial*

    若没有查询到usbserial,执行如下命令以加载usbserial驱动。

    输入 sudo /sbin/modprobe usbserial

    加载成功后,/sys/bus目录下会出现usb-serial目录。

    如果发现usbserial.ko都没有找到,说明你的Linux就没有编译这个驱动,请配置Linux内核并重新编译,此操作需要用户根据自己使用的Linux环境自行编译。

    写入模组vid/pid:

    sudo echo 2c7c 0900 > /sys/bus/usb-serial/drivers/generic/new_id

    如果显示没有权限,可修改new_id文件的权限:

    sudo chmod 666 /sys/bus/usb-serial/drivers/generic/new_id

    写入vid和pid之后,在/dev下会出现ttyUSB0~3的串口设备,ttyUSB2为模组的AT口,可以直接通过串口工具打开该串口设备进行AT命令操作。

     这时候,驱动就加载成功了。

     以microcom为例

    sudo microcom -p /dev/ttyUSB2 -s 115200

     其它的如树莓派等设备都是一样的方法。

  • USB转网卡用于数据传输
  •         USB网卡分两种,Windows下使用RNDIS驱动,Linux下使用NCM驱动。

            Windows下直接安装原厂驱动程序就可以,Linux默认支持NCM驱动,通过ifconfig可以查看到对应网卡设备。

            这两种模式可以通过AT命令进行切换:

                    AT+QCFG="usbnet",3 (RNDIS驱动)

                    AT+QCFG=”usbnet",5(NCM驱动)

            配置完成后需要重启模块。

  •  ADB用于调试
  •          展锐的5G模组支持adb调试,通过adb shell直接进入模组的后台,虽然大部分时候不会用到,但是对于需要从模组中导出日志,或者基于模组进行二次开发的,adb功能还是比较有用的。

             AT+QCFG="usbcfg",0x2c7c,0x0900,1,1,1,1,1,1,1

    此命令开启模组的ADB功能,开启后,需要重启模组生效。

     

     adb shell上去后,就进入了模组的后台。

    在这里说明一下,模组里面跑的就是一个Linux-Yocto Linux,就是一个嵌入式Linux系统

     如果模组有问题,可以将yocto.log直接pull出来进行分析,当然,大部分时候模组的AP不会出什么问题,主要是出在modem侧,它的log就需要用专门的工具去抓了,后面会讲到。

    如果不做二次开发,adb很少能用到,爱折腾的可以玩玩,别乱删东西哈,折腾挂了后果自负,呵呵。

    除了这三种使用方式,移远展锐的5G模组还支持USB Host,通过AT命令可以切换

            AT+QCFG="usbmode",host

    不过,当切换到host下之后,AT接口可就都没了,想清楚了再设置,除非你有TTL的串口可以切换回来,否则可能就要重新刷固件了。至于host模式能干啥,这个后面会讲到接口的扩展。

  • TTL串口
  • 5G模组已经将TTL接口引了出来,M.2接口的模组是62和64PIN,分别是TTL的TX和RX,默认的波特率为115200,功能默认用于AT命令控制,使用上跟USB串口调试没有区别,而且TTL串口与USB串口可以同时使用,两个互不影响。

    TTL的串口AT功能也可以通过AT命令去开关

            AT+QCFG="uartat",1    //打开串口的AT功能

    这个对于一些无法使用USB串口的上位机比较有用处,比如STM32系列的MCU,本身不是Linux系统,无法支持USB转串口,可以用TTL串口与5G模块进行通讯,同时,上位机也可以通过AT命令让串口进入透传模式,与4G时期的模组使用方法就一样了,通过AT指令控制可以进行串口数据透传TCP/UDP服务器。

    TTL另一个重要的功能是在关闭了串口AT功能,当你能进行二次开发的时候,如果串口AT功能关闭,这个串口将由你来接管,就是/dev/ttyS0,你可以开发自己的程序去操作串口进行数据处理,比如串口数据直接MQTT转发,485设备的Modbus解析及RTU/TCP转发等。

    同时,串口的波特率也可以进行配置

            AT+IPR=115200

    可以根据上位机的串口配置进行修改。

    物联沃分享整理
    物联沃-IOTWORD物联网 » Quectel移远展锐平台5G模组RX500U/RG200U:USB/TTL使用指南(二)

    发表评论