UART连接下ESP32与Sim7600在LCP(PPPoS)阶段无数据接收问题咨询
问题排查方案
1. PDP类型选择
你应该保持AT+CGDCONT=1,"IP","<APN>"的IP配置,不要使用PPP类型。
PPP类型的PDP上下文是2G/3G网络下的旧配置,LTE网络下使用PPP类型会导致核心网拒绝注册,你遇到的Sim7600无法注册的现象是预期内的,改回IP配置即可。
2. 无PPP响应问题排查步骤
你当前的现象是LCP配置请求已经正常发出,但未收到模块返回的响应,按照优先级从高到低排查:
- 检查AT模式到PPP透传模式的切换逻辑:发送
ATD*99***1#收到Connect 152000响应后,必须立刻停止所有AT指令解析逻辑,UART直接进入透传模式,所有读到的原始数据直接喂给pppos_input,避免AT解析逻辑吞掉PPP帧。 - 检查UART波特率配置:
Connect 152000代表模块已经将链路波特率切换为152000,需要同步将ESP32端的UART波特率修改为152000,否则会因为波特率不匹配无法解析收到的数据。 - 检查硬件链路与流控配置:
- 确认UART收发引脚交叉接线:Sim7600 TX接ESP32 RX,Sim7600 RX接ESP32 TX
- 提前在AT阶段发送
AT+IFC=0,0关闭Sim7600的硬件流控,若未接RTS/CTS引脚,模块默认会因为流控未就绪拒绝发送数据
- 检查
pppos_input调用逻辑:在喂数据前新增日志打印UART读到的原始字节长度,确认硬件层面是否有收到数据,如果完全没有收到任何字节优先排查接线和波特率问题。 - 检查ESP-IDF LWIP配置:进入menuconfig确认
LWIP_PPP_SUPPORT、LWIP_PPPOS_SUPPORT已经开启,同时确认PPP任务优先级不低于10,避免被其他高优先级任务抢占CPU导致PPP协商无法推进。
内容的提问来源于stack exchange,提问作者qwieklrtof
相关产品推荐
相关产品推荐

