How to wire Arduino UNO to a TB67H303HG motor IC

I would like to control the TB67H303HG (a full bridge driver IC for DC motor adopting MOS in output transistor) with my Arduino UNO.

I was thinking to connect:

PIN 3 INPUT to Arduino Digital Output 13 and set it to LOW to use the direct PWM mode
PIN 5 Vref to 24VDC
PIN 6 Vcc to 24VDC
PIN 7 STBY to Arduino pin 8
PIN 8 IN1 to Arduino Pin 12
PIN 9 IN2 to Arduino Pin 11
PIN 16 OUT1A and 12 OUT1B in parallel to the Motor
PIN 14 OUT2A and 10 OUT2B in parallel to the Motor
PIN 13 and 17 to GND
PIN 20 Vcc to 24VDC
PIN 22 PWM to Arduino PWM 10

I do not know if I’m wrong, but I think I should use IN1 and IN2 to select the motor spin rotation and the Pin 12 PWM to change the velocity by setting the Arduino pin 10 with the PWM output from 0 to 255. Is it correct?

Can you tell me if the wiring is correct? Thank you a lot!

TB67H303HG_datasheet_en_20160607.pdf (876 KB)

See the Application Circuit diagrams pg. 16 ff.

I already read the application circuit on the datasheet, it's for this reason that I posted that wiring: I would like to know if it is correct or not.

If the circuits were not correct, who can know before trying out himself?

Your listing contains several significant differences, so why do you think that you should not use the suggested circuits? I think that you'll kill the chip by e.g. applying 24V to Vref.


Can you please post a copy of your proposed circuit, in CAD or a picture of a hand drawn circuit in jpg, png?

A picture is worth a thousand words.

Thanks… Tom… :slight_smile:

I finally finished to design the circuit, so now I can post it.

I'm using the PCA9685 i2c controller since I need to handle multiple devices.

You can skip the atmega328, the power supply with the THL and the FT232 part since I used them from one of my previous working projects.

I never used the TB67H303 and the PCA9685 chips before, so I would like to know if I made errors in my scheme.

By considering the TB67H303 datasheet, as reported in the Application Circuit (page 16) for Direct PWM mode, I tried to connect:

pin 3 SELECT to LOW pin 7 STBY to the pin 6 of the PCA9685 pins 8, 9 and 22 to pins 7, 8, 9 of the PCA9685 for motor control pin 5 Vref to pin 2 SGND as reported in the application circuit pin RSA, RSB, PGNDA, PGNDB to GND(12V) pin 6 VCC to +12V


I connected Pins A0 to A5 of the PCA9685 to a 5 way header so I can set the address by short-circuiting the related pins to +5V. I also connected pin 23 OE and pin 25 EXTCLK to GND. Is it correct?

This is the scheme I made in Eagle (right click with the mouse and open in a new window to zoom it).


What does the data sheet say about those pins, their purpose and settings? Do you have use for those features? If no, why are you sure?

Can you clarify your questions please? Which pins?

marcusbarnet: I also connected pin 23 OE and pin 25 EXTCLK to GND. Is it correct?

How can anybody know whether this is correct without knowing your detailed needs?

The datasheet says to ground pin 25 EXTCLK when it is not used. Since I do not know it's function I connected it to ground.

About the OE pin, I've read in the datasheet, page 26:

"When a LOW level is applied to OE pin, all the LED outputs are enabled and follow the output state defined in the LEDn_ON and LEDn_OFF registers with the polarity defined by INVRT bit (MODE2 register)."

So I connected it to ground.

However, in general, I want to use the outputs of the i2c controller to control the driver input IN1, IN2, PWM. I will use the outputs 7, 8 and 9 of the PCA9685 to enable the motor direction with pins 8, 9 and the PWM pin 22 to change the velocity.

Hi, Have you actually bread-boarded your circuit and checked to see if it is workable?

The questions you are asking should be answered on the bread-board.

I hope you are not expecting to make the PCB and write the entire code, slap them together and they should work?

If you have no hardware set up, then get your hands dirty and bread-board your circuit in stages along with your code IN STAGES to work out any bugs.

Tom... :)

Obviously I need to test it on a breadboard.
Here, I am asking if the wiring is correct so I can reproduce it on the breadboard.

No suggestions? :confused: I can understand that it is not easy to get suggestions since the TB67H303HG is not a common component used with Arduino and so it can be difficult to understand how to wire it.

Nobody but you can guarantee that your circuit matches the preceding suggestions.

Except for the vref value, I didn't receive any other suggestion unfortunately. However, it's ok I'll find a solution somehow.