2020-06-16 08:36 AM
Dear community,
Scope of the work: I'm trying to measure the back EMF of a stepper motor. I'm following the ST application note AN3327, which suggests that the back EMF is measured as the residual voltage on the coil when i_coil = 0.
Problem: when measuring the voltage in the zero current state (power bridge disabled), an oscillation typical of an underdamped system is observed, which disturb the actual measure.
(1) How can I get rid of the oscillation?
(2) is the oscillation related to a capacitive load on the X-NUCLEO-IHM14A1 board? or is it the capacitance of the power mosfet in the STSPIN820? If the latter I expect it to be very small, but there is no info on the datasheet of typical value so to use for debug.
(3) I measured a demagnatization time of ~0.78msec.. Is that a typical value for the STSPIN820? No value in the datasheet. On what depends the demagnatization time? How can I shorten it?
My setup: I have connected an ST X-NUCLEO-IHM14A1, mounting an STSPIN820, to an hybrid stepper motor with impedance of L_coil = 33mH and R_coil = 34 Ohm.
Set the slow decay and half-step config. Step clock set to freq = 20Hz.
Added a partition resistors as suggested in AN3327 (see pic) on which I measured the voltage for back-EMF. Motor was running unloaded.
2020-07-31 08:40 AM
Hi @SFurl.1 ,
I am sorry you had to wait, I hope my answer can be still helpful for you project.
Looking at the screenshot you posted, I think that the oscillation you see is not related to the capacitive load of the board or any other electrical reason.
I think it is related to mechanical vibrations in your system/motor.
In case you use too much torque, after each step clock, the rotor will not set smoothly on the next step but it will “ resonate�? around it before settling.
This creates an oscillation of the rotor and its magnetic field, which is sensed by the motor winding and translated into a back EMF.
I think this is what you are measuring.
So you can get rid of the oscillations by increasing the smoothness of the motor movement.
To do this you can try one or more of the following tips:
- reduce the current you are using (reduce REF pin voltage on the X-NUCLEO-IHM14A1)
- try to load the motor with a mechanical load (this should damp the mechanical oscillation)
- try to increase the Microstep mode to 1/4th, this should improve the rotor smoothness and decrease the mechanical oscillations.
Using the fast decay allows to better control the current in the motor, and so the movement.
Increasing the microstepping resolution increases the smoothness but it decreases the window you have for the BEMF reading , so find a good trade-off
Just let me provide an additional note: at the speeds you are working the BEMF signal due to rotation is very small, so it can be harder to be detected.
Even small vibrations on the rotor can alter the measurement.
About the demagnetization: it mainly depends on the motor (phase inductance and resistance), the supply voltage and the current in the motor phase.
It is not related to the driver and for this reason it is not indicated on the datasheet.
Demagnetization is when the energy stored in the motor coil needs to discharge.
Even if you set in high impedance the drive, some current has to discharge; this happens through the body diodes of the power MOSFETs, and changes the voltage on the OUT pins of the driver.
If this reply is still in your interest and you want to try my suggestions, please let me know the results of these experiments.
Have a good weekend !