Problems configuring the driver

Below is a long version of my post but basically I have hard time reading the datasheet - it is like a foreign language to me. please help figure out what pins need what kind of input in order to connect the driver to step/dir input and have the motors running. I am guessing these pins are sense, reset, etc. but not sure. thank you!

I am trying to reuse the microstepping driver A3977SLP-T that is installed on a PCB and exhausted my intellectual abilities - I am mechanically inclined but coming to realization that electronics is not my suite. Still need to move forward with my project and please help get this working. Here is the datasheet: (diagram is on the third page - rectangular, not square on the first page)
This is where I have come so far - I am loading the current, sending 2.6v to “enable” (pin 26) and grounded and powered everything. I do not worry about microstepping or direction for now (will address these once connected to Arduino).

A stepping motor is connected and get energized (locks up) when power is turned on from both sides (explained below). I tapped on “step” (Pin 19) with 3.5v and it moved once but that is about it. Nothing else is happening with repeated attempts. Probably some other pins (reset, home, PFD,supply logic, etc.) need something but I am clueless. Please advice how to control the current and what else I need to do. Here is the voltages I am getting:

the left column is when powering with 24 volts only. the right column is when powering with the 24 volts and also 5 volt connector (this is all on PCB and not sure what happens with the connections and how these are connected to each other). The motor gets energized with both 24v and 5v are connected. If I have an idea what all pins should be set at, then I can disable the 5V (since I do not know how it connects) and manually connect right voltages to the right pins. thank you!.

24v 24v + 5v Pin names
Pin 1 - n Pin 1 - n SENSE
Pin 2 - n Pin 2 - n HOME
Pin 3 - .5 Pin 3 - 3.7 DIR
Pin 4 - .2 Pin 4 - 5.9 OUT 1A
Pin 5 - .2 Pin 5 - 1.8 PFD
Pin 6 - n Pin 6 - 1.5 RC1
Pin 7 - n Pin 7 - n AGND
Pin 8 - .3 Pin 8 - 1.5 REF
Pin 9 - n Pin 9 - 1.7 RC2
Pin 10 - .5 Pin 10 - 1.5 LOGIC SUPPLY
Pin 11 - n Pin 11 - 5.9 OUT 2A
Pin 12 - n Pin 12 - n MS2
Pin 13 - .5 Pin 13 - 3.7 MS1
Pin 14 - n Pin 14 - n SENSE2
Pin 15 - 24v Pin 15 - 24v LOAD SUPPLY 2
Pin 16 - none Pin 16 - none SR
Pin 17 - 0.5 Pin 17 - 3.5 RESET
Pin 18 - n Pin 18 - 0.3 OUT 2B
Pin 19 - n Pin 19 - 0.3 STEP
Pin 20 - n Pin 20 - 7.5 VREG
Pin 21 - n Pin 21 PGND
Pin 22 -24 Pin 22 31 VCP
Pin 23 - 20 Pin 23 CP1
Pin 24 - 24 Pin 24 CP2
Pin 25 - n Pin 25 OUT18
Pin 26 - n Pin 26 ENABLE
Pin 27 - .5 Pin 27 - 3.8 SLEEP
Pin 28 - 24 Pin 28 LOAD SUPPLY 1

1- do you understand HOW stepper drivers work ? (in general)
2- where is your code ?
3- Where is your schematic ? (If you have to draw one by hand do it with a dark ink pen on printer paper and post a photo of it.
Do not try to operate you hardware for now. Turn the power off and leave it off until you understand what you are doing.
We already had one stepper driver blown up today, don’t be the second.
see attached datascheet.
Post a link for the vendor of the breakout board you are using.

A3977-T.pdf (564 KB)

Hi Raschemmel,
Yes, I know how it works from the off-the-shelf drivers (using both through Arduino and Mach3). the question here is about “hacking” a driver IC A3977SLP-T from an old printer PCB. I am just trying to understand the datasheet to configure all the pins in a way that I am able to send step/dir commands (and, like I said, microstepping settings are self-explanatory can easily set them up). I just cannot understand what should be “enable”, “sleep”, “reset” and other pins at. I tried providing 2.7v to “enable” but did not make a difference. I am just too new figure out the datasets.

I cannot send any code to it unless I am able to turn the IC “on” so that it can “energize” the motors once power supply is provided. Not sure why the link from here does not work (it works Evernote). Enclosing the PDF of the chip. thanks in advance

0u70aoqy5cjq9wokpi569gxjfoky.pdf (570 KB)

mvoltin: Please advice how to control the current and what else I need to do.

I suspect you need to ask this question elsewhere. Not knowing all that stuff is the reason I bought stepper drivers already installed on a board ready for use with the Arduino. I had considered making my own board but I concluded it would be so much trouble to learn how to do it that it wasn't worth the small saving.

Have you searched the Allegro website to see if they have more info - they may have pcb designs etc.

It is interesting that those chips appear to be able to control larger motor currents than the A4988.


Thank you! I guess I have to be more specific in my question. Sorry, I am asking for lots of handholding but, like I said, I am more mechanically inclined and exhausted my intellectual resources trying to figure this out. Plus, it may be also a matter of interpreting the datasheets (that I have never done). I tried several guides for datasheets but did not get far (listed at the bottom). I have 10+ drivers like this and figuring out one would help tremendously down the road.

Here is another link to the datasheet: and here are the specifics:

1) Page 4 Table - output drivers – I can ignore this since these drivers were coupled with the motors I have and should not matter for my purpose for now?

2) Page 4 Table – Control logic – Logic Input Voltage/current – Has two Vin(1) and Vin (0). There is only one pin for each logic input (dir, step, etc.). What is the implication of these two types of logic input? I cannot find another reference in the datasheet and not sure if this needs to be set or not. I think Arduino would output closer to 5v that should be fine but not sure if its current falls under these parameters (-20 to 20 uA). Similarly, in the same table there are two settings OH and OL for HOME output voltage and not sure what the implications are. Page 8 talks about SR input being low and how the driver enters Active Mode with synchronous rectification – is this relevant for my purpose?

3) Page 5 table – Mixed Decay Trip Point – there are specific voltages for H and L but no min and maximum. Do I have to provide this exact voltage to the respective pin 5 (PFD)? I found the answer to this on page 14 (it is either over -0.6V or under 0.21V but that was not clear in the table – it was not listed as max and min.

4) Page 5 table - Reference Input Voltage/Current – this is supposed to be whatever Vdd is but the current should be 0 (+3.0) uA. Is this a correct interpretation? How do I do that – apply voltage without the current?

5) Vsense is rated as .5V on the first page but there is not mention anywhere else (as far as input parameters). So, do I have to supply this to the SENSE1 and SENSE2 pins? The Page 5 talks about Gain error with a formula further below and table with Vref=2 and current percent. What does this mean? Is this a way to control current? I put in different numbers in the formula and, for example, with 12V supply, I was getting 66% when Vsense was 0.5 and 100% when Vsense was 0. This could be for controlling the current but why does it say Vref =2V when Vref is supposed to be the actual voltage provided?

6) Page 6 – RESET – this is active low and turns off all DMOS outputs. So, it has to be kept HIGH with 5V all the time?

7) Page 6 – HOME – this is an output but do not understand the purpose. The first page states that specific startup sequence is not needed but how is this output is used?

8 ) Page 7 – Vreg – it is internally generated (output) and it should be decoupled with 0.22uF capacitor to the ground. Do I need to do anything else with this?

9) Page 7 – CP1 and CP2 – goes completely over my head. Should I do anything with these? Should I just ground them?

10) Page 7 ENABLE – This is active low and should be grounded all the time. How it relates to RESET that should be kept HIGH. They seem to be doing exactly the same thing (with opposite active states). Just wanted to make sure I was not missing anything.

11) Page 7 SLEEP – shall be kept HIGH because it is active low.

12) Page 8 – Timing requirements – the last is “Maximum Wake-Up Time .. 1.0 ms”. What are the implications for this, if any? The others seem fine but do not understand if this is something I need to consider when sending pulses to the driver.

13) In general, there are lots of subscripts (bb, cp, dd, ds, dss, etc.). is there a reference for these. Some of them can be self-explanatory: OH – output high, OL – output low, REF – reference, IN, etc. but others are not.

P.S. considering my limited supra-tentorial capabilities, ideally, just knowing what I need to get the motor working (these came coupled with the driver) would be great to start with (i.e. learning to steer the car without understanding the steering mechanisms, etc.). Otherwise, I may get confused further ;-)

Here are some guides for reading datasheets:

I can't imagine being able to answer all your questions without spending at least an hour (maybe 2 or 3) studying the datasheet and looking at other Allegro documentation for the part. And, sorry, I'm too lazy to do that.

What you need to find is a diagram showing a typical implementation / application of the device. Allegro almost certainly has one. It will give all the details of necessary auxiliary components and probably a suitable PCB layout. The correct PCB layout is probably essential to provide sufficient cooling for the device.


Ok. Thank you, Robin, will explore their site for PCB design. Hope to come up with something clearer.

"sleep" & "reset" are normally tied together on the A4988. Enable can be hardwired or output controlled.