

The TB6612FNG is a dual H-bridge motor driver IC designed for controlling two DC motors or one stepper motor. It supports motor supply voltages ranging from 2.5V to 13.5V and offers features such as PWM (Pulse Width Modulation) control for precise speed regulation, built-in thermal shutdown, and overcurrent protection. This makes it a versatile and reliable choice for robotics, automation, and other motor control applications.








| Parameter | Value |
|---|---|
| Motor Supply Voltage | 2.5V to 13.5V |
| Logic Supply Voltage | 2.7V to 5.5V |
| Output Current (per channel) | 1.2A (continuous), 3.2A (peak) |
| Control Method | PWM |
| Standby Current | 1 µA (typical) |
| Built-in Protections | Thermal shutdown, overcurrent |
| Operating Temperature | -20°C to +85°C |
| Package Type | HTSSOP-20 |
The TB6612FNG comes in a 20-pin HTSSOP package. Below is the pin configuration:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | AIN1 | Input signal for Motor A (H-bridge control) |
| 2 | AIN2 | Input signal for Motor A (H-bridge control) |
| 3 | PWMA | PWM input for Motor A speed control |
| 4 | A01 | Output 1 for Motor A |
| 5 | A02 | Output 2 for Motor A |
| 6 | VM | Motor power supply (2.5V to 13.5V) |
| 7 | VCC | Logic power supply (2.7V to 5.5V) |
| 8 | STBY | Standby control (active HIGH to enable the IC) |
| 9 | BIN1 | Input signal for Motor B (H-bridge control) |
| 10 | BIN2 | Input signal for Motor B (H-bridge control) |
| 11 | PWMB | PWM input for Motor B speed control |
| 12 | B01 | Output 1 for Motor B |
| 13 | B02 | Output 2 for Motor B |
| 14 | GND | Ground |
| 15 | NC | No connection |
| 16 | NC | No connection |
| 17 | NC | No connection |
| 18 | NC | No connection |
| 19 | NC | No connection |
| 20 | NC | No connection |
Power Connections:
Motor Connections:
Control Signals:
Direction Control:
Standby Mode:
Below is an example of how to control two DC motors using the TB6612FNG and an Arduino UNO:
// Define motor control pins
const int AIN1 = 2; // Motor A direction control pin 1
const int AIN2 = 3; // Motor A direction control pin 2
const int PWMA = 5; // Motor A speed control (PWM)
const int BIN1 = 7; // Motor B direction control pin 1
const int BIN2 = 8; // Motor B direction control pin 2
const int PWMB = 6; // Motor B speed control (PWM)
const int STBY = 4; // Standby control pin
void setup() {
// Set motor control pins as outputs
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(PWMA, OUTPUT);
pinMode(BIN1, OUTPUT);
pinMode(BIN2, OUTPUT);
pinMode(PWMB, OUTPUT);
pinMode(STBY, OUTPUT);
// Enable the motor driver IC
digitalWrite(STBY, HIGH);
}
void loop() {
// Rotate Motor A forward at 50% speed
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, 128); // 50% duty cycle (0-255)
// Rotate Motor B backward at 75% speed
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
analogWrite(PWMB, 192); // 75% duty cycle (0-255)
delay(2000); // Run motors for 2 seconds
// Stop both motors
analogWrite(PWMA, 0);
analogWrite(PWMB, 0);
delay(2000); // Wait for 2 seconds
}
Motors Not Spinning:
Motor Spins in the Wrong Direction:
Overheating:
PWM Control Not Working:
Q: Can the TB6612FNG drive stepper motors?
A: Yes, the TB6612FNG can drive a stepper motor by controlling the two H-bridges in a coordinated manner.
Q: What happens if the IC overheats?
A: The TB6612FNG has a built-in thermal shutdown feature that disables the outputs to protect the IC from damage.
Q: Can I use the TB6612FNG with a 3.3V microcontroller?
A: Yes, the logic supply voltage (VCC) supports 2.7V to 5.5V, making it compatible with 3.3V systems.