

The TP4057, manufactured by RUNCCI-YUN, is a lithium-ion battery charger IC designed for single-cell lithium-ion or lithium-polymer batteries. It provides a constant current/constant voltage (CC/CV) charging profile, ensuring efficient and safe charging. The IC integrates features such as over-voltage protection, under-voltage lockout, and thermal regulation, making it a reliable choice for battery-powered applications.








The TP4057 is a compact and efficient charging IC with the following key specifications:
| Parameter | Value |
|---|---|
| Input Voltage Range | 4.0V to 8.0V |
| Charging Voltage | 4.2V ± 1% |
| Maximum Charging Current | 500mA (adjustable via external resistor) |
| Standby Current | < 2µA |
| Thermal Regulation | 120°C (typical) |
| Over-Voltage Protection | Yes |
| Under-Voltage Lockout | Yes |
| Package Type | SOT-23-6 |
The TP4057 is available in a 6-pin SOT-23 package. The pinout and descriptions are as follows:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | BAT | Battery connection pin. Connect directly to the positive terminal of the battery. |
| 2 | GND | Ground pin. Connect to the system ground. |
| 3 | VCC | Input voltage pin. Connect to the power supply (4.0V to 8.0V). |
| 4 | PROG | Charging current programming pin. Connect a resistor to ground to set the current. |
| 5 | STAT | Status indicator pin. Open-drain output for charging status (e.g., LED indicator). |
| 6 | NC | No connection. Leave this pin unconnected. |
Below is a basic circuit diagram for using the TP4057 to charge a single-cell lithium-ion battery:
VCC (4.0V-8.0V) ----> VCC
|
RPROG
|
PROG
|
GND
BATTERY + ----------> BAT
BATTERY - ----------> GND
The TP4057 can be used with an Arduino UNO to monitor the charging status. Connect the STAT pin to a digital input pin on the Arduino. Below is an example code snippet:
// TP4057 Charging Status Monitoring with Arduino UNO
const int statPin = 2; // STAT pin connected to digital pin 2
const int ledPin = 13; // Onboard LED for status indication
void setup() {
pinMode(statPin, INPUT); // Set STAT pin as input
pinMode(ledPin, OUTPUT); // Set onboard LED as output
Serial.begin(9600); // Initialize serial communication
}
void loop() {
int chargingStatus = digitalRead(statPin); // Read STAT pin status
if (chargingStatus == LOW) {
// Charging in progress
digitalWrite(ledPin, HIGH); // Turn on LED
Serial.println("Charging in progress...");
} else {
// Charging complete or no battery connected
digitalWrite(ledPin, LOW); // Turn off LED
Serial.println("Charging complete or no battery connected.");
}
delay(1000); // Wait for 1 second before checking again
}
The battery is not charging.
The IC is overheating.
The STAT pin does not indicate charging status.
The charging current is incorrect.
Q: Can the TP4057 charge batteries with capacities greater than 500mAh?
A: Yes, the TP4057 can charge larger capacity batteries, but the charging current should not exceed 500mA. Adjust the RPROG resistor accordingly.
Q: Is the TP4057 suitable for multi-cell battery packs?
A: No, the TP4057 is designed for single-cell lithium-ion or lithium-polymer batteries only.
Q: Can I use the TP4057 with a solar panel as the input source?
A: Yes, as long as the solar panel provides a stable voltage within the 4.0V to 8.0V range. Use a capacitor to stabilize the input voltage.
Q: What happens if the input voltage drops below 4.0V?
A: The TP4057 features under-voltage lockout and will stop charging the battery to prevent damage.
By following this documentation, users can safely and effectively integrate the TP4057 into their projects for reliable lithium-ion battery charging.