作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习
擅长领域:驱动开发,嵌入式软件开发,BSP开发
作者主页:一个平凡而乐于分享的小比特的个人主页
文章收录专栏:IMX8MP,本专栏记录imx8mp开发板,学习开发过程中的问题及解决方法记录
欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖
Quectel EM05-CE 模块测试
1.4G模块简介
提起4G网络连接,大家可能会觉得是个很难的东西,其实对于嵌入式Linux而言,4G网络连接恰恰相反,不难!大家可以看一下其他的嵌入式Limux或者Android开发板,4G模块都是MiniPCIE 接口的,包括很多4G模块都是MimiPCIE 接口的。但是大家稍微深入研究一下就会发现,这些4G模块虽然用了MiniPCIE 接口,但是实际上的通信接口都是USB,所以4G模块的驱动就转换为了USB驱动。而这些4G模块厂商都提供了详细的文档讲解如何在 Linux 下使用4G模块,以及如何修改Linux内核加入4G模块驱动。
2.mini pcie接口和m.2接口
2.1 连接实物图
2.2 mini PCIE
MINI PCI-E 是基于PCI-E 总线的接口,MINI PCI 是基于 PCI 总线的接口,两种接口在电气性能上不同,外形不同,不可混用,且每种接口都有相对应的元器件,弄错了是插不上的。
PCI Express是新一代的总线接口。早在2001年的春季,英特尔公司就提出了要用新一代的技术取代PCI总线和多种芯片的内部连接,并称之为第三代I/O总线技术。随后在2001年底,包括Intel、AMD、DELL、IBM在内的20多家业界主导公司开始起草新技术的规范,并在2002年完成,对其正式命名为PCI Express。它采用了业内流行的点对点串行连接,比起PCI以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到PCI所不能提供的高带宽。
2.3 M.2
M.2接口,是Intel推出的一种替代MSATA新的接口规范。其实,对于桌面台式机用户来讲,SATA接口已经足以满足大部分用户的需求了,不过考虑到超极本用户的存储需求,Intel才急切的推出了这种新的接口标准。所以,我们在华硕、技嘉、微星等发布的新的9系列主板上都看到了这种新的M.2接口,现已普及。
与MSATA相比,M.2主要有两个方面的优势。第一是速度方面的优势。M.2接口有两种常见类型:Socket 2(B key)和Socket 3(M key),其中Socket2支持SATA、PCI-E X2接口,而如果采用PCI-E ×2接口标准,最大的读取速度可以达到700MB/s,写入也能达到550MB/s。而其中的Socket 3可支持PCI-E ×4接口,理论带宽可达4GB/s。
第二个是体积方面的优势。虽然,MSATA的固态硬盘体积已经足够小了,但相比M.2接口的固态硬盘,MSATA仍然没有任何优势可言。M.2标准的SSD同mSATA一样可以进行单面NAND闪存颗粒的布置,也可以进行双面布置,其中单面布置的总厚度仅有2.75mm,而双面布置的厚度也仅为3.85mm。而mSATA在体积上的劣势就明显的多,51mm×30mm的尺寸让mSATA在面积上不占优势,而4.85mm的单面布置厚度跟M.2比起来也显得厚了太多。另外,即使在大小相同的情况下,M.2也可以提供更高的存储容量。
2.4 原理图
3.设备数添加
&usb3_phy1 {
fsl,phy-tx-preemp-amp-tune = <2>;
status = "okay";
};
&usb3_1 {
status = "okay";
};
&usb_dwc3_1 {
dr_mode = "host";
status = "okay";
};
4.测试
输入dmesg
命令,查看到四个USB设备加载到
输入lsusb
命令查看已识别的usb设备,红色框出的是我们的移远EM05-CE模块
在/dev目录下查看设备
AT命令测试:(因为没有回显,所有看不到我输的命令)
详细AT命令测试请参考:RK3568—4G模块驱动实验
ECM模式上网:
输入ifconfig
,会发现多了usb0设备
成功上网:
5.遇到问题及解决
5.1 刚开始启动开发板时,/dev目录下并没有ttyUSB*设备
会看到/dev目录下并没有ttyUSB*设备,lsusb可以检测到设备,我的第一反应,应该是驱动没加载上
问题解决
手动加载相应驱动后,识别到ttyUSB*
5.2 在ECM模式拨号上网时,ifconfig没有usb0设备
当我们上电4G模块之后,我们发送如下AT命令切换模块的工作模式为ECM
microcom /dev/ttyUSB3 -s 115200
AT+QCFG="usbnet",1
问题解决
手动加载相应驱动
5.3 生成usb0后,还是不能正常上网
问题解决
因为开发板默认先用网线上网,拔网线后,就能正常上网