SIM800L 一直重启?电源掉电重启完整排查

Cartoon of a red SIM800L GSM module with gold coil antenna stuck in a restart loop with weak signal bars

如果你的 SIM800L 模块一开始搜网就重启,问题几乎可以肯定出在电源上。SIM800L 需要 3.4–4.4V 供电,突发电流最高可达 2A——Arduino 的 5V 引脚、细跳线或移动电源都撑不住这个数。换成一节锂电池,或把降压模块调到 4.0V,重启就会停。

为什么我的 SIM800L 一直重启?

SIM800L 是一款 2G GSM 模块,而 GSM 的发射是短促而猛烈的脉冲:在每个 4.615ms 的无线帧里,577µs 的发射时隙内电流可以冲到 2A(数据出自 SIMCom 的 SIM800L 硬件设计文档)。电源不够力、导线太细或者走面包板供电轨,电压就会在这一下突发里被拉垮——SIMCom 的硬件掉电阈值 3.0V,哪怕只跌破一毫秒,模块就会在注册途中直接断电关机。这就是掉电重启(brownout)。

所有 SIM800L 不工作的症状都带着同一个指纹:刚开始注册网络就重启;一发短信就重启;AT 指令回得好好的,一碰网络就断;NETLIGHT 指示灯永远稳定不下来。

细吸管被吸瘪、粗吸管把 2A 突发电流喂给红色 SIM800L 模块的卡通比喻图
细导线就是会瘪掉的吸管:小口啜没问题,SIM800L 猛灌 2A 时就彻底不行了。

SIM800L 到底需要什么样的电源?

SIM800L 的供电窗口很严格:供电 3.4–4.4V(推荐 4.0V),绝对上限 4.5V。Uno 的 5V 引脚超出了上限;3.3V 供电轨则还没等到第一个突发就已经低于下限。

规格 数值 为什么重要
供电范围(VBAT) 3.4–4.4V 3.3V 供电轨起步就低于下限,带载后跌得更狠
推荐电压 4.0V 上下两个方向的余量都最大
绝对上限 4.5V 5V 超过 4.5V 绝对上限——绝不能接 Uno 的 5V 引脚
突发电流 发射突发 2A 每个 4.615ms GSM 帧内一次 577µs 的发射时隙
旁路电容 VBAT 处 100µF 低 ESR SIMCom 原文写明“强烈建议”
逻辑电平(VDD_EXT) 2.8V 串口引脚不耐 5V——RX 需要分压

NETLIGHT 指示灯在告诉我什么?

SIM800L 板载的 NETLIGHT 指示灯本身就是一个诊断工具,闪烁规律同样出自上面那份 SIMCom 文档。

闪烁规律 看起来的样子 含义
亮 64ms / 灭 800ms 大约每秒快闪一下 正在搜网——还没注册上
亮 64ms / 灭 3000ms 约每 3 秒快闪一下 已注册上网络——这就是目标
亮 64ms / 灭 300ms 快速连闪 GPRS 数据连接已建立
不亮 模块没有运行

掉电重启的典型信号:每秒闪一下,突然熄灭,然后从头再来——恰好死在注册开始拉大电流的那一刻。什么时候变成慢悠悠的 3 秒一闪,问题就算解决了。

红色模块旁用圆点节奏图示 SIM800L NETLIGHT 三种闪烁规律的示意图
NETLIGHT 的三种节奏:每秒一闪 = 搜网中,每 3 秒一闪 = 已注册,快速连闪 = GPRS。

给 SIM800L 供电的正确方式是什么?

方案一——一节 18650 锂电池,直接接

SIM800L 本来就是为电池供电设计的——SIMCom 明确写着一节 3.7V 锂电池可以直接接到 VBAT 引脚。一节 18650 电池 在整条放电曲线上处于 3.7–4.2V(刚充饱是 4.2V——离 4.4V 的天花板很近,但仍在范围内),扛 2A 突发电流眼都不眨。

引线要短要粗——SIMCom 给整段布线电阻的预算不到 150mΩ。电池怎么安全充电,请看我们的 TP4056 18650 充电教程

方案二——LM2596 降压模块调到 4.0V

LM2596 降压模块 能把任意 7–12V 适配器变成稳定的 4.0V 供电轨,还留有 2A 的余量。方法照我们的 LM2596 调压教程 来做——只是电位器停在 4.0V 而不是 5.0V。

不管走哪条路,都在模块的 VCC 和 GND 引脚旁边焊一颗大电解电容——470–1000µF,普通货就行——这是在数据手册要求的 100µF 低 ESR 之外再加的。它相当于一个本地蓄水池,帮模块扛过每一次突发。

18650 电池与蓝色 LM2596 降压模块分别给红色 SIM800L 模块供电的并排卡通图
真正管用的两种电源:18650 直接供电,或调到 4.0V 的 LM2596——再在模块旁加一颗大电容。

为什么移动电源不行?

SIM800L 配 USB 移动电源,一件事栽两个坑。移动电源输出 5V,高于模块 4.5V 的绝对上限;而且大多数移动电源在负载掉到几十毫安时会自动休眠——待机中的 SIM800L 耗电远低于这个数,于是移动电源半途自己关机。移动电源是给手机设计的,不是给这种平时轻声细语、发射时猛灌一大口的模块设计的。

SIM800L 怎么安全接到 Arduino Uno?

SIM800L 的串口引脚跑在 2.8V 逻辑电平(VDD_EXT)上,所以 Arduino Uno 的 5V TX 信号必须先分压,才能进模块的 RX。两颗一样的 10k 电阻分出约 2.5V——落在数据手册 2.1–3.0V 的逻辑高电平窗口之内。(流行的 10k/20k 组合分出约 3.3V——刚好超出 SIMCom 数字接口表(Table 38)里 3.0V 的输入上限。)

反方向实际上不用加任何元件:模块 2.8V 的 TX 比 Uno 保证识别的 3.0V 高电平门槛低了那么一点点,但真实的 ATmega328P 芯片都能正常读到。排针出厂时是散装在袋子里的——先看我们的 排针焊接教程

SIM800L 引脚 接到 备注
VCC 18650 正极,或 LM2596 OUT+(调到 4.0V) 绝不能接 Uno 的 5V 引脚
GND 电源负极,同时接 Uno GND 共地是硬性要求
TXD Uno D2 2.8V 能被读成高电平——直接连线即可
RXD Uno D3 经分压 D3 到 RXD 一颗 10k,RXD 到 GND 一颗 10k(≈2.5V)
RST 悬空不接 基本使用不需要

怎么用 AT 指令测试 SIM800L?

三条 AT 指令就能把一块 SIM800L 摸个底:AT 验证接线,AT+CSQ 看信号,AT+CREG? 查网络注册。插入一张开通 2G 的 SIM 卡,上传下面的程序,然后以 9600 波特率打开串口监视器。

#include <SoftwareSerial.h>

// SIM800L TXD -> Uno D2(直接连线)
// SIM800L RXD -> Uno D3,经 10k/10k 分压
SoftwareSerial sim800(2, 3); // RX、TX

void setup() {
  Serial.begin(9600);
  sim800.begin(9600);
  delay(3000);                // 等模块开机

  sim800.println("AT");       // 预期返回:OK
  delay(500);
  sim800.println("AT+CSQ");   // 信号质量,预期:+CSQ: 10..31,x
  delay(500);
  sim800.println("AT+CREG?"); // 网络注册,预期:+CREG: 0,1(或 0,5)
  delay(500);
}

void loop() {
  // 直通模式:可在串口监视器继续输入 AT 指令
  if (sim800.available()) Serial.write(sim800.read());
  if (Serial.available()) sim800.write(Serial.read());
}

+CSQ 低于 10 算弱(99 = 无信号——检查天线);+CREG: 0,1 表示已注册。如果 AT 回 OK,但模块一注册网络就重启,那就是掉电重启——该修的是电源,不是代码。

这段实测视频演示的正是同一套检查流程:

马来西亚现在还有 2G 吗?

SIM800L 只支持 2G,所以这个问题很关键。截至本文撰写时,2G 在马来西亚仍在运行——3G 已于 2021 年底退网,但 2G 因语音回落和机器对机器(M2M)设备的需要被保留了下来,CelcomDigi 的帮助页面 写明目前没有关闭 2G 的计划。不过计划是会变的,而且并非每家运营商或虚拟运营商都提供 2G——如果要做多年期的部署,请先向你的运营商确认 2G M2M 支持。

真实客户身上常见的错误

用移动电源供电。一个真实的售后案例:客户的设备总是隔一阵就掉线,罪魁祸首正是移动电源——模块一待机它就休眠,而且它的 5V 输出本来就超标。换成 18650 加电池盒,当天下午就好了。

太相信万用表。表上读 4.0V,电源看着没问题——但万用表取的是几百毫秒的平均值,而电压跌落只持续 577µs。当症状都指向掉电重启时,请相信症状:加电容,换粗线。

从 Arduino 取 5V。一步错两处:5V 高于 4.5V 的绝对上限,而且 Uno 的稳压器本来也扛不住 2A 突发电流。模块往往刚好能撑到让你以为它是坏件。

怪罪 SIM 卡。一直每秒闪一下的模块,通常是在注册途中掉电重启、没接天线,或者插了一张所在网络没有 2G 的卡。SIM 卡留到最后再换。

常见问题

能用 Arduino 的 5V 引脚给 SIM800L 供电吗?

不能。供电绝对上限是 4.5V,5V 已经超标——而且 Uno 的稳压器也提供不了 2A 的发射突发电流。请用锂电池,或调到 4.0V 的降压模块。

为什么我的 SIM800L 每秒闪一下却一直注册不上?

每秒闪一下表示还在搜网。检查电源能不能在 2A 突发下稳住 3.4V、天线有没有接好、SIM 卡所在网络是否还有 2G。搜网途中重启就是电源问题。

加什么电容能治好 SIM800L 反复重启?

SIMCom 强烈建议在 VBAT 处加 100µF 低 ESR 电容。实践中,在模块 VCC 和 GND 引脚旁边用短引线焊一颗 470–1000µF 电解电容,能治好大多数顽固病例。

在马来西亚,SIM800L 还值得买吗?

目前值得——截至本文撰写时,2G 在马来西亚仍可使用,也没有公布关闭计划。若是多年期部署,请先向运营商确认 2G M2M 支持。

最后更新:2026年8月。有问题?WhatsApp 联系我们

Leave a Reply

Your email address will not be published. Required fields are marked *