问题描述
我有一个 simcom7600 调制解调器,我正在通过 AT 命令试用它。
我能够使用 AT 命令来设置调制解调器,并连接到 MQTT 代理并交换消息。现在我试图弄清楚如何做类似的事情,但后来使用我自己的 TCP/IP 堆栈。在深入那里之前,我想确认我可以进入数据模式 (PPP),但我似乎无法进入。
我连接了我的调制解调器 (AT+CGATT=1
),并激活了它 (AT+ACACT=1,1
)。我确认我有一个运营商/提供商 (AT+copS?
)。
所以我以为我已经准备好发送 ATO
(在线)命令。但每次我尝试时它都会返回 NO_CARRIER
。我不知道我做错了什么。
确认上述语句的日志:
AT+copS?
Sending command: AT+copS?
AT+copS?[CR][CR][LF]+copS: 0,"NL KPN simyo",7[CR][LF][CR][LF]OK[CR][LF]
AT+cgatt?
Sending command: AT+cgatt?
AT+cgatt?[CR][CR][LF]+CGATT: 1[CR][LF][CR][LF]OK[CR][LF]
AT+cgact?
Sending command: AT+cgact?
AT+cgact?[CR][CR][LF]+CGACT: 1,1[CR][LF]+CGACT: 2,0[CR][LF]+CGACT: 3,0[CR][LF][CR][LF]OK[CR][LF]
ATO
Sending command: ATO
ATO[CR][CR][LF]NO CARRIER[CR][LF]
PS:[CR][LF] 分别代表。 \r
和 \n
,为了方便阅读,我在登录前替换了它们。
我显然必须向调制解调器提供更多信息,但是从 this manual 我似乎无法弄清楚我错过了哪些命令,以及如何逐步验证我走在正确的轨道上。
解决方法
我找到了 this nice 文档。我会在这里分享,以防其他人也遇到这个问题。
当我发送以下命令时:
-
ATZ
(重置) -
ATE0
(禁用回显) -
AT+CGREG?
(检查注册到 PDP 网络) -
AT+CGDCONT=1,"IP","internet"
(为我的提供商设置 APN,他们期望字符串“internet”) -
ATD*99#
(启动数据模式,又名 PPP)
然后我可以使用以下命令退出并返回到 PPP:
-
+++
(发送+字符,等待700ms,发送+字符,等待700ms,发送+字符)=>回到AT命令模式 -
ATO
(返回数据模式)
注意:您的提供商期望的 APN,我认为在所有情况下都是一个简单的 Google。您的提供商很可能会解释如何手动设置您的 APN,以防您的手机无法自动设置。