L6470 with a small stepper (75mA Phase Current) and a linear stage.
We need to extend the movement Interface of the IC of +-2^21, to do long movements but have smoother movement in microstep mode.
Therefore our planned algorithm is like following:
Setup is Microstepmode128.
If the movement exceeds 2^21 ->
Switch to lower microstep mode (e.g. 1/64).
Do 99% of the required movement with microstepmode 1/64.
Switch to microstepmode 1/128 again
Move the remaining 1% with 1/128 again.
Note: Movement is always in the granularity of FullSteps. So Resting Positions are always at a Full step position to not run into problems in that direction.)
This works most of the time, but we encoutered some problems, most likely resulting from the point while switching to a new step Mode.
We start at microstepmode128
Electrical position is 0.
We move 384 microsteps.
Electrical position is 384 (is correct, it's 3 fullsteps - we are in a valid fullStepPosition)
I change the stepmode to 1/2.
Now we can see a small movement on the linear stage with a MicrometerClock. -> This is not expected / and should not happen imho.
electrical Position changes to 128, which we also can't explain.
The Datasheet states that on changing step mode the ElectricalPosition is changed to the first microstep. But as we are always in a fullStep, there should not be a movement at all.