TB6612 Wiring and Usage Guide

This page provides information on hooking up a TB6612 breakout board from Adafruit, Sparkfun or Pololu.

Resources

Pinouts

Rather than use the bare TB6612 chip, I recommend the breakout boards from either Adafruit, Sparkfun or Pololu. The breakboard boards have solder pads on standard 0.1 inch pitch that match male headers that fit into standard breadboards. Or you can solder hook-up wires directly to the breakout board.

Here is a photo of the TB6612 breakout board with male headers sold by Adafruit:

Adafruit TB6612 photo

There are three types of pins on a TB6612 breakout board: power input pins, signal logic pins, and motor output pins. The following documentation is based on the Adafruit tutorial, but it should also be helpful if you have one of the Sparkfun or Pololu versions of the TB6612 breakout board. Also refer to Sparkfun's TB6612FNG Hookup Guide.

Power Pins

The Vmotor and GND pins provide electrical power that the TB6612 chip passes on to the one or two motors attached via the motor output pins (see below). Vcc is a 3.3V to 5V supply, referenced to the GND pin, that powers the logic circuits in the TB6612 chip.

Vmotor line supplies the current to each of the motors The Vcc line uses a relatively small amount of current.

From the Adafruit tutorial:

  • Vmotor - This is the voltage for the motors, not for the logic level. Keep this voltage between 4.5V and 13.5V. This power supply will get noisy so if you have a system with analog readings or RF other noise-sensitive parts, you may need to keep the power supplies seperate (or filtered!)

  • Vcc - this is the voltage for the logic levels. Set to the voltage logic you'll be using on your microcontroller. E.g. for Arduinos, 5V is probably what you want. Can be 2.7V to 5.5V so good for 3V or 5V logic

  • GND - This is the shared logic and motor ground. All grounds are connected

Signal Logic Pins

The Signal Logic Pins are Vcc level (i.e. 3.3V or 5V) voltage signals that control how the TB6612 sends power to the two motors.

Refer to the logic control table at the bottom of the page and the code in MMEmotor.cpp in the MMEmotor library to see how combinations of HIGH and LOW on the signal logic pins control the rotation of the motors.

From the Adafruit tutorial:

  • AIN1, AIN2 - these are the two inputs to the Motor A H-bridges

  • PWMA - this is the PWM input for the Motor A H-bridges, if you don't need PWM control, connect this to logic high.

  • BIN1, BIN2 - these are the two inputs to the Motor B H-bridges

  • PWMB - this is the PWM input for the Motor B H-bridges, if you don't need PWM control, connect this to logic high.

  • STBY - this is the standby pin for quickly disabling both motors, pulled up to Vcc thru a 10K resistor. Connect to ground to disable.

Motor Out Pins

These are power outputs that should be compatible with the voltage requirements of the motor. The level of Vmotor from the external supply will set the maximum voltage supplied to the motors. PWM is used to control the effective power/voltage to the motors.

From the Adafruit tutorial:

  • MOTORA - these are the two outputs for motor A, controlled by AIN1, AIN2 and PWMA

  • MOTORB - these are the two outputs for motor B, controlled by BIN1, BIN2 and PWMB

Logic Signals to Control Brushed DC Motors

Refer to the TB6612FNG Hookup Guide by Sparkfun, and the TB6612FNG datasheet.

Here is the logic control table from the datasheet:

TB6612 logic table


Document updated 2016-11-26.