# Allegro 3967 Stepper Driver Circuit

I'm hoping someone out there can help me figure out what is wrong with my driver circuit. I'm an undergraduate student, and my electrical engineering
skills apparently suck. =/
The chip is the Allegro 3967. It's a chopper driver. A simple google search yields a schematic and parts list that I've attempted to model on a breadboard. Before I get into the details of the mess I've made with the circuit design, let me say that the problem I'm experiencing - and hence the numerous hours spent tweaking things - is the motor output seems to draw less than .06 Amps.
The motor I have is rated at 4.6V and .350A current per phase. Testing the leads shows the motor windings have a resistance of 13ohms, which seems to be fine mathematically. Applying 4.6V straight to the motor draws .350A, so everything seems fine with the motor electrically.
The circuit, on the other hand, does not do what I want it to do.
I'm using a power supply in my school's lab, I've set it to 10V and I am using a 5V regulator to supply power to a 555 timer (to drive the steps) and the logic inputs for the 3967 chip. The 555 happily sends about 4.5V pulses to the step input, and with the step motor disconnected I see the voltage of the motor output lines from the chip fluctuating as if they are attempting to step the motor.
I have a 10K potentiometer in series with a 30K resistor to adjust the reference voltage levels. I've tried slowly sweeping the potentiometer across its whole range in conjunction with .47 ohm, or a 10 ohm, or a 560 ohm resistor with little effect on current draw, but I get different voltage levels on the motor output lines.
When I use a .5ohm 5W resistor for the sense resistor my voltmeter indicates the voltage is about .04 volts. It fluctuates a little bit, but not much. If I put on a 560ohm resistor the voltmeter reads 3.4V and varies from 0 to 3.4 as the chip recieves step inputs. As soon as I connect the motors in any resistor configuration the voltage no longer fluctuates, but the motors don't do anything particularly impressive. With no power applied the motors free spin easily, with the power applied its a little sticky to spin. The power supply has a digital output for the voltage and amps drawn, and indicates that no matter what I do it is drawing .06Amps. Even when the motors are not connected.
Can anyone suggest why my configuration is drawing such a tiny amount of current?
Something to mention is the chip is a surface mount chip which I've brutally soldered tinned leads to and set in a 24pin DIP socket, which is then plugged into the breadboard. I've tested all the pins from the chip to the breadboard and there are no shorts or breaks. The resistances seem quite low. And despite the Allegro documentation suggesting not to use a socket adapter and to keep the sense resistor as close to the chip as possible, I really didn't have any other way to prototype an SMT chip. The ohmmeter can't really measure .5ohm resistances particualarly well. It says the .47 ohm resistor is 1.4 ohm when I directly test the resistor, and when I test the resistance from the chip's pin through the socket and across the other side of the .47 it still says 1.4ohm. I don't know how accurate this measurement is.
One thought I had was that soldering the leads onto the chip may have damaged the chip. But testing all the logic inputs produce the correct effect. For example, enabling the sleep mode results in the current draw to read 0 amps on the power supply. Disabling the 'enable' pin results in no voltage to the motor output. Step inputs change the motor output. etc. The chip seems to work fine. Except it couldn't power a nano-scale motor if it's life depended on it.
I appreciate anyone's input as to what is wrong, and suggestions on what I should do instead.
Michael Kurth
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
What you've done sounds reasonable. Is it possible that the power supply has a current limit which is set too low? You said you tested the motor by applying 4.6V. Did you test things by using the same power supply you are using with the 3967? 10V should be OK for a few seconds.
I doubt if you damaged the chip, but for this type of prototyping, SURFBOARDs are convenient, although I don't see a 24 pin version at Digikey.
Mitch Berkson
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Michael Kurth wrote:

I got the data sheet for the 3967 at: http://www.allegromicro.com/datafile/3967.pdf
It may be that you will never get this thing to work with the extended connections included in your adapter socket and breadboard layout. This chip contains both fast power switches and sensitive logic. A tough combination.
The most important bypass capacitors are the ones that connect as directly as possible between the VBB1 pin 20 and the grounded end of the current SENSE1 resistor on pin 17 and the similar capacitor between VBB2 pin 5 and the grounded end of current SENSE2 resistor on pin 8. These need to be pretty large capacitors to absorb the edges of the motor current pulses so that they don't bounce the supply lines all over the place.
You also need a bypass across the Vcc to ground pins, 14 to 6,7,18,19. The reference input should probably also have a bit of bypass. Any unused inputs need to be connected either low or high, rather than left floating.
--
John Popelish

P.S. rather than suggesting I Google to find what I guess to be your
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

Really? Well, then maybe I should make a copper board to test the circuit out. Its kind of funny that the Allegro documentation says not to use a socket adapter, but their protype board has a giant adapter in the middle of it.

As per the schematic I have a single pair of 47uf capacitor and a .1uf capacitor decoupling both of the supply inputs. HOWEVER, they are not particularly connected as directly as possible. Its not very easy to do that on a breadboard. I will try to rework the layout, add a seperate pair of caps for both supplies, and get them a little closer. Should the sense resistor be grounded as close to the supply caps as possible, as far away from the caps, or maybe as close to the battery as possible??

I don't have any bypass capacitors at those locations. The only caps are on the RC and VBB lines. I will add some capacitors as part of my rework. I haven't left any inputs floating, they are either tied to VCC or ground.

Eh, not too well I guess. I need more bypass, and shorter circuit traces.

I'm sorry, I wasn't trying to suggest that you do a search. I was mearly stating that I was using the circuit schematic that I found by doing a simple google search, as opposed to creating my own circuit design that had no basis in reality. But you are right, including the URL would have been a good idea.
http://www.allegromicro.com/demo/apek3967slb-01.htm http://www.allegromicro.com/demo/a3967slb/schematic.pdf http://www.allegromicro.com/datafile/3967.pdf
=)
Thanks for taking the time to help me out,
-michael
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Michael Kurth wrote:

Go back and read exactly what I just said. The details of the connection of the motor supply bypass caps is very specific.

--
John Popelish

<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
I decided to follow Johns suggestion about bypass capacitors, and shortening the circuit traces. In the process of rewiring my circuit I discovered that I had connect VCC to RC1 and RC2 !!!
The circuit works now that its setup properly. I actually rewired it once before, but apparently kept the same mistake when hooking it back up. Oops.
Thanks to everyone who took the time to answer my questions and gave suggestions.
-michael kurth
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Michael I haven't contribute with help to your project, but I was following it with interest and what I appreciated the most , was your decent attitude. At the end you admitted that you made an error and let everyone known the results of the common effort. People help each other not only because they are generous but because, like you, they want to learn. Being a electronics consultant is some times a very frustrating occupation. We only get feedback if the design doesn't work. I use to be a member of a group of designers and the ones that got the best trips around the world were the ones that did the worse designs. Usually an interface problem.
Regards
On Fri, 29 Aug 2003 15:25:07 -0700, "Michael Kurth"

<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

Thanks Vlad. I was actually nervous about making the first post. I see so many people arguing with each other over who thinks they are smarter I was afraid that people would slam me for not knowing enough about electronics. Sure enough, it was a wiring mistake, but surely everyone here made mistakes when they started out =) I'm just embarassed that I didn't catch it sooner....

Hmm. That's actually very interesting. Instead of punishing people for making mistakes, they get sent on an all expense paid "vacation". That would seem to encourage people to not put much care into their designs, knowing that once it was sent to the customer they would be able to fly out to fix it, and do some sightseeing while they were at it.
Thanks again,
-michael
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

mistakes
would
Just a little side note, to help you get more performance out of your motors: Don't use 5 volts for your motor power supply. The motor voltage is irrelevant unless you are using it in a very low-performance situation where you cannot afford current control. The 3967 is a chopping drive, which means it limits the current no matter what the voltage is. You'll want to power the chip with as high a voltage as you can supply, and the chip can stand (up to 30 volts). The reward will be drastically faster step rates and greater torque, as the higher voltage enables the motor to overcome the coil inductance much faster. This is what the 3967 was designed for.