cancel
Showing results for 
Search instead for 
Did you mean: 

L6470 reversing problem

fbasso
Associate
Posted on August 28, 2013 at 20:21

We are using the L6470 in a new design. We have found that when we move to a position then reverse direction we find that the new position comes up short by 2 or 3 steps. After this initail error all future moves in the same direction are correct. If the direction is reversed again we lose the 2 or 3 steps again on the first move. We have an encoder mounted on the stepper shaft which confirms this action. Also we have placed a dial indicator on the belt and confirmed that we are indeed missing these 2 or 3 steps. ST engineers pleas reply as we are out of ideas on how to fix this issue.

7 REPLIES 7
charlie
Associate II
Posted on August 28, 2013 at 20:41

I am experiencing a similar problem.  Here is what I am seeing:

I am using the GoTo commands to control a stepper motor that is driving a rotary wafer switch.  The rotary switch is indexed at 30 degree rotational increments and I am using a 1.8 degree stepper motor, so I have to use slightly varying GoTo step increments in order to get the switch to always step to the proper switch position (+/- 0.6 degrees). 

When I send the following commands to the L6470, the stepper motor steps clockwise to each specified rotational position and each step is indexed properly (i.e., the rotating switch contact is properly centered on the fixed switch contact):

-  GoTo(144)

-  GoTo(272)

-  GoTo(400)

-  GoTo(536)

-  GoTo(672)

-  GoTo(808)

-  GoTo(944)

Next, I want to step back counterclockwise to each switch position, so I send the following commands:

-  GoTo(808)

-  GoTo(672)

-  GoTo(536)

-  GoTo(400)

-  GoTo(272)

-  GoTo(144)

-  GoTo(0)

When these commands are executed, the switch indexing is off of center by approximately 3-8 degrees on every step except the last step (the 0 position of the switch) which is always perfectly indexed.

I thought the stepper might be losing steps due to the rotational torque load of the switch, so I removed the rotary switch and connected a 10 turn potentiometer to the stepper motor ( a very low torque load).  Looking at the resistance readings of the potentiometer at each step of the motor, I see the same behavior, with the indexing being slightly off at each intermediate step when turning in the CCW direction but always perfectly indexed at the 0 position.

The only solution I have found that works is to use the GoTo commands to step clockwise to the desired switch position, but if I want to step CCW to a previous switch position, I have to reset the switch to 0 by issuing a GoTo(0) command and then issue a GoTo(X) command to step to the desired switch position.

Also, I have verified that the L6470 thinks it has stepped the motor to the proper position by reading the ABS_POS register after each step command has executed.

Can anyone provide some ideas about why I am seeing this behavior and what I can do to correct it? 

Thanks,

Charlie

Enrico Poli
ST Employee
Posted on September 04, 2013 at 16:54

Hello,

This kind of behavior was never reported before.

I suggest you to check the following points:

- Are the output currents the expected ones?

- Is the EL_POS value the expected one?

Meanwhile we will try to reproduce this issue in our labs.

Best Regards

Enrico

Enrico Poli
ST Employee
Posted on September 22, 2013 at 11:08

We tried to reproduce the issue in our labs without results.

The driving sequence is correctri performend in both the directions an from the electical point of view (current pairs) the position is not affected by the change of direction.

Also from the mechanical point of view, according to our test bench, there is no positioning error.

Do you have any further detail which could help to identify the cause of this anomalous behavior?

Enrico

charlie
Associate II
Posted on September 23, 2013 at 18:58

Hi Enrico,

I just returned from a three week trip and have not yet had a chance to get back to this problem.  I will begin working on it tomorrow and I will send any data and results I obtain back to you for your analysis.

Thank you.

Charlie Myers

charlie
Associate II
Posted on October 25, 2013 at 22:03

Fred,

Did you ever find a solution to your problem?  I am still experiencing the same issue and I have not been able to resolve it yet.  I really have gathered no new or different data about the problem.  Even when I am only driving a ten turn potentiometer, the readings on the potentiometer resistance indicate that the stepper motor is not driving the potentiometer to the same positions in the CCW direction that it does in the CW direction.  It is off by roughly 1-2 full steps when it reverses direction, but it always comes back to the precise starting position in the CCW direction.  That is what is really stumping me.

Thanks,

Charlie

trakht
Associate
Posted on November 24, 2013 at 12:25

Hello,

I have similar problem.

My environment is:

L6470 Motor Driver

SANYO DENKI motor with 1A max current and 1.8 degree for step(200 steps/round)

AS5048 14bit Rotary Encoder(AMS)

I started with ABS_POS = 0 and Rotary Encoder Value=16300(+/-5).

When I sent command Move(FWD,25600),this is full turn of motor and encoder must show similar position like before, I had ABS_POS=25600 and my Encoder shows me 16300(+/-5) exactly what I expected. ( If I was continue to moving forward I was have same results.)

But if I will send command Move(BWD,25600) I will get ABS_POS=0 but Encoder will show me 16280(+/-5) . If I'll continue to move backward encoder will always show me 16280(+/-5).

And vice versa.

This is 0.439 degree of full turn and 31.4 steps of L6470 in 128 steps mode.

Best regards

Enrico Poli
ST Employee
Posted on December 16, 2013 at 11:12

Dear all,

Sorry for the long waiting. Let me answer to all your findings.

Charlie, the error of 1or 2 full steps is can olny be explainedby one of the following issues:

- The motor loses some step during the operation, however this failure usually causes and error of about 4 full steps.

- The potentiometer is in some way asymmetric. You should consider that an error of 2 full steps (3.6°) is equivalent to an error of the 10 turns potentiometer output of 3.6°/(10 x 360°)= 0.1%.

Trakht Pavel, a positioning error 0.44° is more resonable. It is probably due by minor missmatch in the approaching to the final position. You can improve the positioning performance setting the holding current equal to the running one (i.e. same KVAL) for few milliseconds after the end of the motion. In this way the rotor should be able well aligned.

After this time you can reduce the hold current and the motor is kept in position by the detent torque.

Kind Regards

Enrico