cancel
Showing results for 
Search instead for 
Did you mean: 

How to control multiple powerSTEP01 instances to move in synchronization?

Jacky_flex
Associate II

I have recently purchased 4 X-Nucleo-IHM03A1 stepper motor driver expansion board. In my current project I am planning to use an FPGA to send SPI commands to the 4 boards to control 4 stepper motors to move simultaneously. May I know if there is any recommended method for us to synchronize the movement of all the 4 motors?

1 ACCEPTED SOLUTION

Accepted Solutions
Peter BENSCH
ST Employee

The X-NUCLEO-IHM03A1 are based on the powerSTEP01.

With high requirements on the synchronicity, one possibility would be to supply all boards with the same clock via the OSCIN pin of the powerSTEP01 instead of the internal generated clock.

If you use the step clock mode, you should of course drive all STCK pins at the same time, which shouldn't be a problem with an FPGA.

Regards

/Peter

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

View solution in original post

4 REPLIES 4
Peter BENSCH
ST Employee

The X-NUCLEO-IHM03A1 are based on the powerSTEP01.

With high requirements on the synchronicity, one possibility would be to supply all boards with the same clock via the OSCIN pin of the powerSTEP01 instead of the internal generated clock.

If you use the step clock mode, you should of course drive all STCK pins at the same time, which shouldn't be a problem with an FPGA.

Regards

/Peter

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Hi Sir,

Thank you for the kind response. The step clock mode is not our design intent.

Given that the same reference clock is connected to all of the powerSTEP01's OSCIN pin, but in the program we are still sending SPI commands (i.e. move(dir, n_step) ) to the 4 powerSTEP01 ICs in sequential order. Is there any method for us to synchronize between the 4 powerSTEP01 instances?

Regards

Please keep in mind that not only the time to transfer the 4 bytes of the move command must be taken into account, but also the subsequent decoding time. When the move command is then executed, the command for the next motor comes at the same time, not to mention the latency for the fourth motor.

Therefore it is, among other things, a question of the speed of rotation (step frequency) and the requirement for synchronicity (time difference). If the speed is very high and/or the time difference (phase shift) should be as zero as possible, the only thing left is to control with separate SPI channels, i.e. in parallel, not daisy chained.

Regards

/Peter

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Hi Sir,

Thank you for your suggestions.

Regards

Jacky