Power Supply Engineering & Boot Sequencing
Understanding the physics of 2-Ampere GSM transmission spikes, eliminating brownout reboot loops, and mastering the active-HIGH PWR_KEY startup trigger.
BLUF: Why Does the A7 Reset in an Infinite Loop?
The #1 reason an AI-Thinker A7 board reboots continuously is power supply brownout. While average standby current is under 30mA, GSM 2G transmitter pulses draw instantaneous 2.0A peak current bursts lasting 577 microseconds. An Arduino 5V regulator (max 500–800mA) or standard USB port (500mA) sags below the module's 3.4V threshold, causing an immediate hardware reset.
The Startup Secret: Unlike the SIM800L (which turns on by pulling PWRKEY to Ground), the AI-Thinker A7's PWR_KEY is active-HIGH. You must connect PWR_KEY to VBAT / VCC4.0 for 2.5 seconds to boot the baseband.
1. The Physics of GSM TDMA Current Spikes
GSM cellular networks rely on Time-Division Multiple Access (TDMA). The RF power amplifier transmits in periodic pulses lasting 577 µs at a frequency of 217 Hz. During each pulse, the current jumps from ~30mA to a staggering 2.0 Amperes:
Current (Amperes)
^
| +---------+ (2.0A Peak Burst)
2.0A | |
| | |
| | |
1.0A | |
| | |
0.1A --------+ +-------------------- (Standby ~20mA - 80mA)
| <--577us--->
+---------------------------------------------> Time (217 Hz Period = 4.615 ms)
- An Arduino Uno, Nano, or Mega onboard 5V header pin (limited to 400–800mA).
- A PC USB 2.0 port (hard-capped at 500mA).
- A generic 9V rectangular transistor battery (internal series resistance causes immediate voltage collapse).
2. Verified Power Supply Configurations
5V–9V DC External Power Supply
Recommended for bench prototyping. Connect a DC wall adapter rated for 5.0V to 9.0V DC (at least 2000mA / 2A) into the onboard 5.5mm barrel jack.
- • The onboard MP1584 buck regulator steps voltage down to a stable 4.0V at up to 3.0A.
- • Slide the miniature power switch toward the DC jack (ON).
- • The red
POWERLED (D1) will illuminate solid.
3.7V Lithium-Ion Battery (18650)
Recommended for mobile asset trackers. Connect a single-cell Li-ion (3.7V nominal, 4.2V fully charged) directly to Header P1 Pin 2 (VCC4.0 / VBAT) and Pin 3 (GND).
- • Use cells rated for $\ge 2C$ discharge (e.g. 18650, 2000mAh+).
- • Bypasses the MP1584 regulator and slide switch completely.
- • Ideal operating voltage for the RDA8951G silicon ($3.5\text{V} - 4.2\text{V}$).
VCC4.0) and Pin 3 (GND). This capacitor acts as a local energy reservoir that buffers the 577µs TDMA current spikes, completely eliminating brownout resets on long wire runs.
3. The Boot Sequencing & The `PWR_KEY` Trap
Supplying DC power to the board lights up the red POWER LED (D1). However, the RDA8951G baseband processor is still asleep. It requires an explicit startup trigger.
| Parameter | SIMCOM SIM800L / SIM900 | AI-Thinker A7 (RDA8951G) |
|---|---|---|
| PWRKEY Polarity | Active LOW | Active HIGH |
| Idle State | Internally pulled HIGH to ~2.8V | Internally pulled LOW to GND |
| Startup Action | Pull pin to GND for 1.5s | Connect to VBAT / VCC4.0 for 2.5s |
Three Ways to Boot the Module:
Method 1: Manual Button Press (K1)
Press and hold the onboard push-button labeled POWER (K1) for 2.5 seconds. When released, the network LED (LED1) will begin flashing rapidly as the baseband boots up.
Method 2: Microcontroller GPIO Pulse (Automated Startup)
Connect an MCU digital output pin to PWR_KEY (Header P2 Pin 11). Drive the pin HIGH for 2500ms, then return LOW. For 5V Arduinos, use a 1kΩ / 2.2kΩ divider to limit voltage to ~3.4V.
const int PIN_A7_PWR = 7; // Connect to A7 PWR_KEY via divider
void powerOnA7() {
pinMode(PIN_A7_PWR, OUTPUT);
digitalWrite(PIN_A7_PWR, HIGH); // Send Active-HIGH pulse
delay(2500); // Hold for 2.5 seconds
digitalWrite(PIN_A7_PWR, LOW);
delay(4000); // Allow baseband & SIM to stabilize
}
Method 3: The Permanent Auto-On Jumper Hack
If your application never needs to sleep, insert a jumper wire connecting Header P2 Pin 11 (PWR_KEY) directly to Header P2 Pin 12 (VCC4.0). The module will turn on automatically the moment external power is applied.
4. Hardware Reset & Deep Sleep
Hardware Reset (Header P2 Pin 5)
Active LOW. Pulling RESET to GND for 100ms–200ms forces an immediate hardware restart of the RDA8951G processor. Useful as a watchdog fail-safe if serial communication ever hangs.
Hardware Sleep (Header P2 Pin 8)
Drive SLEEP HIGH (2.8V–3.3V) to enter low-power sleep mode (<1.5mA standby). Drive SLEEP LOW (0V) to wake up the module.