BTN7970 Motor Driver

I got the parts in I need but the Pin spacing on the chip is much smaller then what would fit into a breadboard… something I did not expect! Does anybody know how to overcome this? I have wanted to make a PCB board through one of those online places for a long time, but for this project it would take to long for me to learn how to make a PCB design on eagle. Do they sell standard breakout boards? Any Ideas would be awesome!

Thanks!

Well, you did say you wanted to learn! I don't know of any breakout boards for that chip, also good layout and short wiring is important for high-current switching ICs. So you can either download Eagle and design your own pcb, or buy a ready made BTN7970-based module via eBay, Or perhaps both - start with the eBay module, and later on design your own pcb, perhaps with the microcontroller integrated so you don't need an Arduino.

Well as it appears that their is no easy way I will take your suggestion, and buy one from eBay while working on my own PCB design.

Thanks for the help!

I started working on the design but I have looked all over and can't find a library that has a BTN7970 driver in it. I also could not find anything that has the same pinout (TO263). Any ideas?

Thanks!

It should be straightforward to drive a bridge made from two BTS7970s from an Arduino. Connect the IN pin of each BTS7970 to an Arduino output pin with PWM capability (two separate pins) and a 10K resistor to ground. Connect the two INH pins to Vcc if you want the bridge to be active all the time; alternatively, connect it to a digital output pin (one pin can drive both INH inputs) and a 10K resistor to ground.

To drive the motor in one direction, digitalWrite LOW to the first IN pin, analogWrite to the second IN pin, and set the INH pin high. To brake the motor, digitalWrite LOW to both pins. To run the motor in the other direction, write LOW to the second IN pin and PWM the first. To let the motor coast, write LOW to the INH pins.

Optionally, connect a current sense resistor between each IS pin and ground, and feed it to an Arduino analog input via an R-C filter.

Thank you for the info, but I have gotten through the data sheet and I understand how to hook it up. I'm trying to make a PCB on eagle but according to the youtube videos i'm watching I should make the schematic on eagle first. The problem is I can't find anything to represent the BTS7970. Should I start with the PCB instead?

Thank you so much for helping me! Your info has always been very accurate and I would trust your opinion over the youtube videos…

OK, I thought you meant an Arduino library, but you meant an Eagle library. If it's the pad outline for the SMD version you want, try searching for "to263-7 eagle library".

I have been looking all day but I'm unable to find a library that has the driver or the TO263-7 package . Is there any way to make the schematic/PCB without it?

Thanks!

You didn't try hard enough then - I just found one at http://sparkle.tribbeck.com/eaglesearch/packinfo.php?id=4328.

Thank you so much! I have stared working on my design.

How does this schematic look… it's my first one!

You appear to have the wrong pin numbers in your schematic. According to the datasheet:

1 GND - Ground
2 IN I Input Defines whether high- or lowside switch is activated
3 INH I Inhibit When set to low device goes in sleep mode
4,8 OUT O Power output of the bridge
5 SR I Slew RateThe slew rate of the power switches can be adjusted by connecting a resistor between SR and GND
6 IS O Current Sense and Diagnostics
7 VS - Supply

The pins on eagle don't match the pins of the motor driver since it was a different component. I just ignored the pin names, and went by the shape of the component. Sorry for not explaining that. I have attached the diagram provided by Infineon Technologies.

I wasn't looking at the pin names (which I realized were for a different component), I was looking at the pin numbers on your schematic and comparing them with the pin numbers from the datasheet.

After correcting the pin numbers, I recommend you add a pulldown resistor from the Arduino pin 4 input (which is the pin that I assume you intend to use to drive both INH pins) and ground. This is to ensure that the bridges don't activate their outputs before the Arduino has initialized that pin to be an output.

I believe that I fixed all the problems you mentioned. Thank you so much... this would be impossible without your help!

Screen Shot 2013-08-04 at 11.11.27 AM.png

The chip has current sinks on logic inputs so pull-down resistors are redundant, they
read LOW if disconnected.

Although the datasheet claims good to 25kHz PWM, its clear it'll perform very poorly at that
speed due to the large switching times of the output stages. I'd limit to 4kHz.

MarkT:
The chip has current sinks on logic inputs so pull-down resistors are redundant, they
read LOW if disconnected.

Mark it correct. When I read the datasheet, I assumed the low-level input current of 25uA typical was current that the device driving it had to sink; but on closer reading, I see that the measurement is taken at 0.4V input and the pin itself is sinking current.

dc42:

MarkT:
The chip has current sinks on logic inputs so pull-down resistors are redundant, they
read LOW if disconnected.

Mark it correct. When I read the datasheet, I assumed the low-level input current of 25uA typical was current that the device driving it had to sink; but on closer reading, I see that the measurement is taken at 0.4V input and the pin itself is sinking current.

That and the schematic of the device showing current sinks on IN and INH :slight_smile:

Having said that, pulldowns can't hurt (and if a very noisy environment might help). When laying out
the driver keep the high current paths away from the logic circuitry as much as possible to reduce
interference.

I'm glad I did it right! I will start working on the PCB. Thanks for all the help. I will try and keep the traces for the motor away from the other traces.

What do you think of the PCB? If I did it right what place should I order it from?

Thanks!