2021-11-16 04:57 AM
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?
Solved! Go to Solution.
2021-11-16 05:34 AM
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
2021-11-16 05:34 AM
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
2021-11-16 10:22 PM
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
2021-11-18 06:04 AM
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
2021-11-23 02:30 AM
Hi Sir,
Thank you for your suggestions.
Regards
Jacky