赞
踩
5.1 EC20和5.2 BC20是最开始接触4G模组的使用记录,参考意义不是很大。后来新工作转做Iot,开始慢慢扩充这篇笔记。
如下图所示:
将APN修改为SIM卡对应的运行商,多次发送AT+QICSGP=1,1,“CTNET”,“”,“”,0指令,然后复位开发板即可。如下图所示:
EC20模块AT命令讲解
EC20 TCP/IP指令例程
移远M26,三分钟打通TCP流程,AT指令详解
在linux端操作:
移远EC20 4G模块Linux驱动移植和测试
AT\r\n
AT+QSCLK=0\r\n ;禁用休眠模式
AT+CPIN?\r\n ;检查是否需要密码
AT+CFUN=0\r\n ;设置为最小功能
AT+QBAND=0\r\n ;设置为所有工作频段
AT+QCSEARFCN\r\n;清除 NB-IoT 存储的 EARFCN 列表
AT+CFUN=1\r\n ;设置为全功能
AT+CGATT=1\r\n ;附着网络,要多等一会
AT+CSQ\r\n ;上报信号质量
AT+CEREG?\r\n ;查询网络注册状态
AT+CGATT?\r\n ;查询
AT+CGPADDR?\r\n ;
遇到了两个问题:
AT+QSCLK
休眠指令。EC25可能执行较快,所以没有出现问题。通过改变进入休眠的时间解决。或者将AT+QSCLK
休眠指令放在初始化也可以,不过祖传代码嘛,还是少动为妙。AT+QMTRECV=0
指令。模组确实没有回复。EC200N-CN是国内使用的模组,EC200S-EU是欧洲设备上使用的模组。MCU程序是通用的。
模组进入休眠,有三个条件:
AT+QSCLK=1 //不必每次发送,初始化一次就可以
network_apready_ctrl(0); /* 通知模组不要送出数据 */
network_dtr_ctrl(1); /* 拉高DTR进入4G的低功耗 */
确定模组进入休眠状态?
DTR拉高之后串口不通,另外耗流降到个位数mA。模组进休眠很快的,预估2s左右。
也可以通过测量模组管脚电平,比如EC25,结合以下指令,测量管脚号3:
MCU主动唤醒模组
休眠后,MCU主动发送数据,需要先唤醒4G模组:
network_apready_ctrl(1); /* 通知模组可以送出数据 */
network_dtr_ctrl(0); /* 拉低DTR退出4G的低功耗 */
这时不要立即发送数据,因为4G模组退出低功耗也是需要时间的。可以持续发送AT,直到返回OK。或者直接增加延时(“先留1S吧”)。
此部分单独写成一篇:使用移远EC200N-CN模组PING谷歌。
在初识NB-IoT的机卡绑定一文中提到IMSI的前5位可以识别运营商:
中国移动运营商:
46000, “CHINA MOBILE”, “CN” 中国移动
46001, “CHN-CUGSM”, “CN” 中国联通
46002, “CHINA MOBILE”, “CN” 中国移动
更多运营商名称的列表,可以点击查看:添加链接描述。
00> AT+QSPN
00> …
00> +QSPN: “CHN-UNICOM”,“UNICOM”,“”,
00> 0,“46001”…
00> …
00> OK…
00> 01-01 23:50:32 I/at.dev.ec20 tbox_tcp: e0 device currnet PLMN: 46001
iotbox默认自动选择运营商。在使用过程中,可能出现以下情况:
在前面硬件连接 - - USB中提到了抓取模组log。不同平台的模组可能稍有区别。TCP连接过程中,模组上报+QIURC: "closed",0..
导致异常。抓取模组log,从模组端分析下原因。
- 抓取LOG时需要进行AT+CFUN=0,AT+CFUN=1,操作,记录完整通信流程日志。
- 为了抓取TCP/IP数据包,记录LOG日志前,执行如下AT指令操作:
IPv4 发送指令at+qdbgcfg=“iptrace”,0,20
IPv6 发送指令at+qdbgcfg=“iptrace”,1,20
在程序模组初始化中添加以下三条AT指令:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。