a4983 current setting


The current through the motors is set by the pot R7 or R9 on the two different A4983 driver boards. Can you tell us what the value of that Pot is?

Much of the heating problem associated with this design is due to the fact that the current goes through the windings when the motor is not moving as well as when it is. However the voltage dropped across the motor windings is high when the motor is running and low when it is not. That means that the voltage across the internal driver is highest when the motor is not running(if the driver is not disabled but is used to hold the motor still)

A good practice used in many commercial drivers is to drop the holding current (when the motor is not stepping) to a much lower level to keep the power dissipation in the chip to a reasonable level, then upping the current when actually running. This trick allows using high voltages for the motor, which results in better torque over a wider speed range, without causing the driver chip to overheat when the motor is not moving.

This kind of control is easy to implement on the 1202 product by manipulating the reference pin on the card with a digital signal that drives a transistor the turns on to connect a resistor to ground in parallel with the pot when the motor does not generate step pulses for some short time period like 1 sec or so. This can drop the current through the motor to a lower level and keep everything cool. When running, the back emf of the motor effectively reduces the voltage that is dissipated across the driver transistor to a low level and that lets the Driver chip stay cool while driving high currents through the motor windings.

To fix specific values we need to know the value of the pot.
The same thing can work on the 1201 board, but the ref signal is not brought out to a pin, so we need to find an easy place to add a wire to the board to the junction of R5 and R9


Our A4983 and A4988 carrier boards use 10k pots to set the current limit. On the versions without regulators (products 1201 and 1182), the ref pin voltage is accessible on a via that is circled on the bottom silkscreen of the circuit board.

- Ben


Lowering the current when you don’t need the holding torque sounds fine, but I think you’re wrong about the “voltage across the internal driver is highest when the motor is not running” line of thought, which makes it sound like you’re thinking of this in terms of some kind of linear driver. The efficiency might change some at lower duty cycles (higher input voltage to stepper motor voltage ratio), but the heat in the H-bridges is coming from switching losses and resistive losses based on the current, and both of those should be basically the same in the two scenarios you are talking about.

- Jan

Thanks for the information Ben. I thought that 10K might be the number. If you do the calculations the current if the resistors are the stated values then the max current which can be set it actually 2.75 amps, which is higher than the 2.1 amp self limiting current in the chip. I would expect that this pot is factory set to give a Vref value of .8 volts which would set the current limit to 2 amps. Users should be careful to not diddle with this pot without a voltmeter to read the Vref value and set it to a value for the motor current they want. The formula is in the A4983 spec.

Jan comments I think are incorrect. As I mentioned initially a running motor generates a back emf and that subtracts from the supply voltage from the perspective of the drive transistor. The drive transistor that is on will have to dissipate the voltage it sees time the current it sees. When the motor is stopped,voltage the drive transistor sees is the supply voltage minus the drop across the motor winding resistance, which is typically small. The internal circuitry will turn the driver on and off to limit the current. but the voltage across the device will be high, hence the higher power dissipation. When running, the effective resistance of the windings go up (due to the back emf) and so more of the supply voltage is dropped across the windings. This results in a lower voltage drop across the driver transistor and hence lower power dissipation in the driver transistor. When micro-stepping, the current is divided across both motor windings so the total dissipation for the chip is not affected by full or micro stepping.

The current thru the driver is by design a constant set by the reference voltage.
The voltage the driver sees is a function of how fast the motor is turning and the back emf it generates. So the slower the motor speed, the higher the power that gets dissipated in the driver. P=Vi
There should be no significant switching losses since the chip has circuitry internally to make sure there is a dead time between when the high leg turns on or off and the low leg turns off or on. This prevents them from turning on simultaneously which would cause real problems in the chip.
Hope this clears things up.

Without getting into the back EMF stuff (which I suspect is not that relevant in steppers; I have not looked into it much), this part is definitely incorrect:

The voltage on the MOSFET will be the current times the MOSFET’s resistance; the vast majority of the supply voltage still gets applied to the motor. (That’s what makes the current go up quickly, and as soon as it’s past the threshold, the high-side MOSFET will turn off again. The faster rise time will make the PWM frequency a bit faster, which is going to make the switching losses a bit worse, but that should not be very significant.)

By the way, the idea with the pot is that the users set it to the point they want, not for it to be set to 2A. In most applications we intend it for, it should be a lot lower, and we do not set it to any particular value.

- Jan

Jan, You are right!! The internal circuitry turns the drivers on and off to maintain the set current. The comments I made would be valid for a non current controlled driver and shows the reason more sophisticated driver circuits are needed for stepper motors.

That said, it still is true that the highest power dissipation state is when the motor is being held in position with power applied, and not when the motor is running. So the suggestion to reduce the holding current when the motor is not disabled, but is also not running is a good one and it is relatively easy to implement as described above. Particularly if you are running near the current limits of the device.

For people using these drivers, it is important to set the current to the level you need for your motor in the application you are running.

In general the drivers will run cool. But a heat sink is almost always a good idea because of the small thermal mass of the chip and board.

The package is thermally connected to the small PC board, but the spec on the device shows a 32 degree C temp rise per watt of dissipation in the chip. Heat sinking will reduce that.

It is actually amazing that these little devices on a small board can drive stepper motors that are very large and powerful at current levels of up to 2 amps and voltages on the motor of up to 35 volts. They have a really wide range of application possibilities.