转载自凌云博客大佬[https://blog.siriling.com:1212/2023/04/12/5g-modem-fibocom-fm350-gl/]

[广和通5G模组FM350-GL使用教程]

一、简介

广和通5G模组FM350-GL是面向全球发布的5G通信模组,支持5G独立组网(SA)和非独立组网(NSA)两种网络架构,拥有更快的传输速度,更优秀的承载能力,以及更低的网络延时。FM350搭载MTK T700芯片,采用7nm制程,可支持5G NR Sub-6GHz下双载波聚合(2CC CA)200MHz频率。FM350内置ARM Cortex-A55 CPU, 可支持PCIe3.0等接口,提供整套整机解决方案。FM350-GL主要面向视频采集播放、物联网、网关等。

二、环境准备

资料

Windows

Windows中使用,需要安装资料中的Windows驱动

  • 安装USB驱动
  • 安装调试工具EngineerTool:点击下载

Linux

Linux中使用根据拨号模式安装对应的驱动

OpenWRT

OpenWRT中使用

  • 安装关于USB网络的支持
  • 安装usbutils软件包
  • 安装minicom软件包

RouterOS

RouterOS中使用

  • 系统支持该模组
  • 模组支持MBIM拨号

三、查看设备

查询当前设备信息

ATI   

Manufacturer: Fibocom Wireless Inc.
Model: FM350-GL
Revision: 81600.0000.00.29.23.08
SVN:09

IMEI:867144036453098

四、基本AT命令

AT命令的响应值

  • 0 OK
  • 1 CONNECT
  • 2 RING
  • 3 NO CARRIER
  • 4 ERROR
  • 5 RESERVED
  • 6 NO DIALTONE
  • 7 BUSY
  • 8 NO ANSWER

查询SIM卡状态

sim卡已就绪:+CPIN: READY

AT+CPIN?   

查询SIM卡号码

AT+CNUM?   

如果没有显示,则卡号未写入存储区,需要执行下面的命令写入

1.设置电话本存储器位置为本机号码

AT+CPBS="ON"   

2.写入,默认为129

  • 参数1:坐标
  • 参数2

    • 129:未知号码
    • 145:国际号码(以“+”开头)
    • 161:国家号码
AT+CPBW=1,"本机号码"   
AT+CPBW=1,"+86本机号码",145   

双SIM卡设置

参数

  • 0 SIM1(default)
  • 1 SIM2
  • SUB1 subscribe id 1
  • SUB2 subscribe id 2
  • No Service no service
  • N NR service* (5G)
  • L LTE service (4G)
  • W WCDMA service (3G)

查看当前操作的SIM卡信息

AT+GTDUALSIM?   

AT+GTDUALSIM?

+GTDUALSIM: 0,"SUB1","N"

查看所有可用的SIM卡信息

  • 如果设备配置为双卡模式,则返回两个SIM卡的信息,否则返回单个SIM卡的信息
AT+GTDUALSIM   

设置当前使用的为卡1

AT+GTDUALSIM=0   

设置当前使用的为卡2(esim)

AT+GTDUALSIM=1   

查询此时信号强度

参数

  • 信号的强度(dBm)
  • 信道误码率

模组能接收到信号:+CSQ: 21,99

AT+CSQ   

查询网络信息

查询当前网络注册类型("7"为4G模式"13"为5G模式)

参数1

  • 0 automatic(自动)
  • 1 manual(手动)
  • 2 deregister from network
  • 3 set only 参数2
  • 4 manual/automatic(手动/自动)

参数2

  • 0 long format alphanumeric(长字母格式)
  • 1 short format alphanumeric(短字母格式)
  • 2 numeric(数值)

参数3(网络类型)

  • "CMCC" 中国移动(CMCC)(46000)
  • "CHN-UNICOM" 中国联通(UNICOM)(46001)
  • "CHN-TELECOM" 中国电信(CTCC)(46011)

参数4

  • 0 GSM
  • 1 GSM Compact
  • 2 UTRAN
  • 3 GSM w/EGPRS
  • 4 UTRAN w/HSDPA
  • 5 UTRAN w/HSUPA
  • 6 UTRAN w/HSDPA and HSUPA
  • 7 E-UTRAN (4G)
  • 8 EC-GSM-IoT (A/Gb mode)
  • 9 E-UTRAN (NB-S1 mode)
  • 10 E-UTRA connected to a 5GCN (see NOTE 5)
  • 11 NR connected to a 5GCN (see NOTE 5)
  • 12 NG-RAN(5G)
  • 13 E-UTRA-NR dual connectivity (see NOTE 6) (5G)

结果:+COPS: 0,0,"CHN-TELECOM",7

AT+COPS?   

设置短字母格式

AT+COPS=3,1   

查询当前注册的网络

参数

  • NONE
  • HSDPA
  • HSUPA
  • HSPA+
  • WCDMA
  • EN-DC
  • FDD LTE
  • TDD LTE
  • LTE
  • NR5G
AT+PSRAT?   

锁频段

参数1(网络类型)

  • 1 UMTS
  • 2 LTE
  • 4 LTE/UMTS
  • 10 Automatic
  • 14 NR-RAN
  • 16 NR-RAN/WCDMA
  • 17 NR-RAN/LTE
  • 20 NR-RAN/WCDMA/LTE

参数2(首选网络1)

  • 2 WCDMA is preferred
  • 3 LTE is preferred
  • 6 NR-RAN is preferred

参数3(首选网络2)

  • 2 WCDMA is preferred
  • 3 LTE is preferred
  • 6 NR-RAN is preferred

查询当前频段选择

  • 默认:20
AT+GTACT?   
+GTACT: 20,6,3,1,2,5,8,101,102,103,105,107,108,134,139,140,141,501,5028,5041,5077,5078,5079

锁4G(LTE)

AT+GTACT=2   
+GTACT: 2,,,101,102,103,105,107,108,134,139,140,141

锁5G(NR-RAN)

AT+GTACT=14   
+GTACT: 14,,,501,5028,5041,5077,5078,5079

自动(3G或4G或5G,首选5G,其次4G)

AT+GTACT=20,6,3   
+GTACT: 20,6,3,1,2,5,8,101,102,103,105,107,108,134,139,140,141,501,5028,5041,5077,5078,5079

设置功能模式

查询当前模式

AT+CFUN?   

查询可选参数

AT+CFUN=?   

设置模式

参数

  • 0 离线模式
  • 1 在线模式
  • 4 飞行模式(禁用MT发射和接收射频电路)
  • 5 工厂测试模式(省电)
  • 15 重置(发生错误时使用)

最小的功能模式(离线模式)

AT+CFUN=0   

全功能模式(在线模式)

AT+CFUN=1   

重启模组(重连基站)

AT+CFUN=0
AT+CFUN=1

重置模组

AT+CFUN=15   

模组温度

查看可用参数

  • 传感器ID,当前温度
AT+GTSENRDTEMP=?   

+GTSENRDTEMP: (0-22)

OK

传感器ID

  • 0 当前所有的传感器
  • 1-23 每一个传感器

当前温度

  • 整数类型

报告当前处理器最大温度

AT+GTSENRDTEMP=1   

解锁FCC

AT+GTFCCLOCKMODE=0   

通信端口

查看通信端口模式

AT+GTDIPCMODE?   

PCIE

AT+GTDIPCMODE=1,2,2,2,7,13   

USB和PCIE

AT+GTDIPCMODE=3,1,1,1,3,15   

串号信息

查询模组IMEI

参数

  • 0 returns the IMEI (国际移动设备标识)
  • 1 returns the IMEI (国际移动设备标识)
  • 2 returns the IMEISV (国际移动设备标识和软件版本号)
  • 3 returns the SVN (软件版本号)
AT+CGSN?   
AT+GSN?   
AT+EGMREXT=0,7   

更改模组IMEI

AT+EGMREXT=1,7,"IMEI"   

查询PDP信息

参数

  • cid
  • PDP类型
  • APN接入点
  • PDP地址
  • ...
AT+CGDCONT?   
+CGDCONT: 1,"IPV4V6","IMS","0.0.0.0,36.8.133.49.36.1.133.154.23.77.180.221.243.78.252.232",0,0,0,0,,,,,0
+CGDCONT: 2,"IPV4V6","ctiot","",0,0,0,2,0,0,,0,1,0
+CGDCONT: 3,"IPV4V6","","",,,,,,,,,,

配置APN

联通

AT+CGDCONT=3,"IPV4V6","3GNET"   

电信

AT+CGDCONT=3,"IPV4V6","CTNET"   

拨号

查询当前模组端口模式

AT+GTUSBMODE?   

设置模组端口模式

参数

  • 40 RNDIS+AT+AP(GNSS)+META+DEBUG+NPT+ADB
  • 41 RNDIS+AT+AP(GNSS)+META+DEBUG+NPT+ADB+AP(LOG)+AP(META)(default value)

RNDIS拨号

  • RNDIS(Remote Network Driver Interface Specification)是用于在动态即插即用(PnP)总线(如USB、139 4、蓝牙和 InfiniBand)上的以太网(802.3)网络设备的与总线无关的类规范
  • 使用RNDIS端口

设置端口模式为41

AT+GTUSBMODE=41   

RNDIS驱动加载查询

lsmod | grep rndis_host   
cdc_ether 16384 2 rndis_host,cdc_ncm
rndis_host 16384 0
usbnet 28672 13 cdc_mbim,sierra_net,rndis_host,qmi_wwan,plusb,kalmia,huawei_cdc_ncm,cdc_subset,cdc_ncm,cdc_ether,cdc_eem,asix,qmi_wwan_q

添加PDP信息(配置APN)

AT+CGDCONT=3,"IPV4V6","APN"   

激活PDP并拨号

AT+CGACT=1,3   

电话服务

拨打电话

  • 如果对方挂断会回复NO ANSWER;如果对方接电话后挂断会回复NO CARRIER;如果对方没接会回复NO ANSWER
  • 注意:不能少了分号
ATD18112341234;   

或加上+86

ATD+8618112341234;   

短信服务命令

AT+CSMS 选择消息服务(在CDMA网络中无效)

AT+CMGF 讯息格式

AT+CSCA 服务中心地址(在CDMA网络中无效)

AT+CPMS 首选消息存储

AT+CMGL 列出短信

AT+CMGD Delete Message

AT+CMGR 读短信

AT+CMGS 发送短信

AT+CMMS发送更多消息(在CDMA网络中无效)

AT+CMGW 写消息到内存

AT+CMSS 从存储发送消息

五、Windows使用AT调试模组步骤

模组准备

模组以USB的方式接入Windows

安装USB驱动

MTK_Windows_USB_Driver_v17.6.0.6.exe

安装驱动后查看设备是否已经连接

image-20220427204800480
image-20220427204800480

打开串口调试工具

Fibocom_Windows_EngineerTool-FM350-5G_V1.1.1.45

输入AT命令

查询产品信息

ATI   

六、OpenWRT使用AT调试模组步骤

USB

模组准备

模组以USB的方式接入OpenWRT

依赖支持

在内核编译时选中或者自行安装软件包

  • kmod-usb2
  • kmod-usb3
  • kmod-usb-net(USB 转以太网)
  • usb-modeswitch
  • kmod-usb-net-rndis
  • kmod-usb-serial
  • kmod-usb-serial-option
  • kmod-usb-serial-wwan
  • usbutils

加载网卡驱动

insmod rndis_host.ko   

检查是否加载成功

lsmod | grep rndis_host   

image-20220502110751282
image-20220502110751282

查询usb设备

ifconfig   

image-20220502110923883
image-20220502110923883

列出所有连接的USB设备

得到5G设备id为:0e8d:7127

lsusb   
Bus 008 Device 002: ID 0e8d:7127 MediaTek Inc.

查看连接速率

lsusb -t   
/: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
|__ Port 1: Dev 3, If 0, Class=, Driver=option, 5000M
|__ Port 1: Dev 3, If 1, Class=, Driver=option, 5000M
|__ Port 1: Dev 3, If 2, Class=, Driver=cdc_ether, 5000M
|__ Port 1: Dev 3, If 3, Class=, Driver=cdc_ether, 5000M

打开tty串口

方法一:使用命令直接追加文本

echo "0e8d 7127" >> /sys/bus/usb-serial/drivers/generic/new_id   

方法二:进入到/sys/bus/usb-serial/drivers/generic/
编辑new_id文件,填入"0e8d 7127"

查看开启的tty串口

ls /dev/ttyUSB*   
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3 /dev/ttyUSB4 /dev/ttyUSB5 /dev/ttyUSB6 /dev/ttyUSB7

连接tty串口

安装minicom调试工具,使用minicom进行调试

  • 进入后便可发送AT命令
minicom -D /dev/ttyUSB4   

PCIE

模组准备

模组以PCIE的方式接入OpenWRT

依赖支持

在内核编译时选中或者自行安装软件包

  • kmod-pcie_mhi
  • pciutils

加载网卡驱动

insmod mtk_pcie_wwan_m80.ko   

检查是否加载成功

lsmod | grep mtk_pcie_wwan_m80   
mtk_pcie_wwan_m80 151552 0

列出所有连接的PCIE设备

  • 显示的是高通设备
lspci   
03:00.0 Wireless controller [0d40]: MEDIATEK Corp. Device 4d75 (rev 01)

查看连接速率

lspci -vv   

03:00.0 Wireless controller [0d40]: MEDIATEK Corp. Device 4d75 (rev 01)

...

LnkSta: Speed 5GT/s, Width x1

...

查看开启的mhi串口

ls /dev/ttyC*   

/dev/ttyC0 /dev/ttyCMBIMDSS0 /dev/ttyCMBIMDSS2 /dev/ttyCMBIMDSS4

/dev/ttyCMBIMDSS6 /dev/ttyCMdLog

/dev/ttyCMBIM0 /dev/ttyCMBIMDSS1 /dev/ttyCMBIMDSS3 /dev/ttyCMBIMDSS5

/dev/ttyCMBIMDSS7 /dev/ttyCMIPC0

连接mhi串口

安装minicom调试工具,使用minicom进行调试

  • 进入后便可发送AT命令
minicom -D /dev/ttyC0   

命令行直接使用AT命令

以USB连接方式为例

追加运行AT命令

echo -e "AT+COPS?\r\n" > /dev/ttyUSB4   

通过cat获取结果

cat /dev/ttyUSB4   

通过awk文本处理工具获取结果(看到OK,ERROR,NO便停止)

result=$(awk '/OK/ || /ERROR/ || /NO/ {exit} {if( NF!=0 && NR>1 ){print}}' < /dev/ttyUSB4)
echo $result

获取AT命令结果

echo -e "AT+COPS?\r\n" > /dev/ttyUSB1 && \
result=$(awk '/OK/ || /ERROR/ || /NO/ {exit} {if( NF!=0 && NR>1 ){print}}' < /dev/ttyUSB4) && \
echo $result

七、RouterOS使用AT调试模组步骤

模组准备

模组以USB的方式接入RouterOS

查看网卡接口

interface print   

查看连接的模块信息

interface/lte/monitor lte1   

使用AT命令

方式一

interface lte at-chat lte1 input="ATI" wait=yes   

方式二

global "lte_command" [/interface lte at-chat lte1 input="ATI" as-value ]
put $"lte_command"

八、广和通5G模组在各系统的配置与使用

Windows系统中使用5G模组

打开SSCOM调试工具,选择AT串口

RNDIS拨号

使用AT命令设置拨号模式为41

AT+GTUSBMODE=41   

设置PDP信息(请填入运营商的APN)

AT+CGDCONT=3,"IPV4V6","APN"   

拨号

AT+CGACT=1,3   

获取返回的IP,在Windows网络里填入静态IP地址

AT+CGPADDR=3   

OpenWRT系统中使用5G模组

请参考:https://blog.siriling.com:1212/2023/03/18/openwrt-5g-modem

老毛子FM350拨号工具

luci-proto-fm350:https://github.com/koshev-msk/modemfeed/tree/master/luci/protocols/luci-proto-fm350

RouterOS系统中使用5G模组

未测试

九、固件升级

备份

插上模块,然后使用ADB工具备份分区

  • 确保在备份过程中没有出现错误。
  • 备份后,请检查得到的文件是否不为空且没有被FF填满(特别是nv*分区)。
adb pull /dev/mtd0 C:\FM350\mtd0
adb pull /dev/mtd C:\FM350

下载

  • 下载固件升级工具
  • 下载模组对应型号的固件

 在HEX编辑器中打开备份的mtd0(preloader)文件,然后转到地址0x40100,查看前8位数字(例如:3C 10 14 89

 查看固件包,如果带的数字和已经组合好的固件包后缀数字一致,则可以直接刷入,否则需要自行组合固件包

 在线HEX编辑器:https://hexed.it/

  • 解压固件包

升级

  1. 打开固件升级工具
  2. 选中需要刷写的固件
  3. 插入模组