cancel
Showing results for 
Search instead for 
Did you mean: 

L6470 absolute position counter

MT.1
Associate

Hi all,

I have questions about L6470 absolute position counter:

  1. Can it be used reliably to count how many steps (or micro steps) the motor actually spins? For example, when at ABS_POS 0, if executing GoTo_DIR(1, 25600) (1/128 micro step mode), does it spin exactly one revolution (200 full steps)?
  2. How do they compare when reading absolute position from encoder vs. reading from L6470 absolute position counter?
  3. After a GoTo_DIR(1, 10000) is executed, can the value of absolute position counter be different from 10000 (lesser or greater)? What may cause this?

Thank you,

MT

2 REPLIES 2
Kurtnelle
Associate III

Hello MT,

  1. Can it be used reliably to count how many steps the motor turned? Yes it can. If in 1/128 microstep mode and you command it to go 25600 steps in a direction, then yes it output shaft of a 200 step per turn motor would have rotated once. The GoTo_Dir command however is different. GoTo means to go to an absolute position. Ergo the shaft may rotate several hundred times before it reaches position 25600 ;)
  2. How do they compare when reading absolution position from an encoder? They will read the same. The only time it will be different is if there are step losses. Step losses can be induced when the rotor is being commanded to rotate to quickly for the load or for the amount of power applied.
  3. After a GoTo_Dir is executed, can the value of the absolute position counter be different from the 10000? It is unlikely since the motor will keep going until the value in the position counter is the same as the one given in the command. The only thing that may cause them to be different is if the data over the SPI bus got corrupted during the SPI transaction.

Welcomes!

Kurtnelle.

Hi Kurtnelle,

Thank you for the answers.

For 3, I have seen these two situations that ABS_POS is different from what GoTo_Dir() specifies:

A. Run GoTo_Dir() in reverse direction to 0. Occasionally, the ABS_POS is greater than 0 (but not too far off) after execution.

B. ABS_POS does not seem to change after GoTo_Dir() executed, although the load does move to the desired location. This happens rarely.

SPI clock is 5MHz. Step-mode is 1/128 micro steps.

Since the values of ABS_POS are not random (at least somehow correlated), it does not seem like a data corruption situation to me.

I wonder what may cause these? Can you or others please give some suggestions?

Thank you,

MT