Skip to main content
Simon Laporte
Associate
Jul 4, 2018 10:09 PM UTC
Solved

Stepper motor speed control with powerstep01 (X-NUCLEO-IHM03A1 )

Posted on July 05, 2018 at 00:09

I am using an X-NUCLEO-IHM03A1 board (powerstep01) to control a stepper motor (17HS24-0644S) speed.

When I use the command 'Run (DIR, SPD)' over SPI interface, I observed that the speed in step/s is not exactly the same as requested. (e.g requested 200 step/s, result is 198.4 step/s)

I have noticed that by changing slightly the voltage value of the powerstep01 pin VDDIO the speed of the motor changes as well for the same requested value.

For example:

VDD = 3.3V speed = 198.4 step/s,

VDD = 

3.4V gives 196 step/sVDD =

 3.2V = 201.6 step/s

My application requires to control the speed of several stepper motors precisely and currently this is an issue since the speed varies according to VDD and it is very sensitive.

Does anyone knows about this issue, is there a workaround 

Note: I used the library from 

https://os.mbed.com/teams/ST/code/IHM03A1_ExampleFor3Motors/

with the same initialization parameters.

Datasheet: 

https://www.st.com/resource/en/datasheet/powerstep01.pdf

 https://www.st.com/content/ccc/resource/technical/document/user_manual/group0/57/5a/60/c7/ff/a3/4d/21/DM00206777/files/DM00206777.pdf/jcr:content/translations/en.DM00206777.pdf

This topic has been closed for replies.
Simon Laporte
Simon LaporteBest answer
Associate
Jul 12, 2018 5:00 PM UTC
Posted on July 12, 2018 at 19:00

I found out the root cause of my problem. The internal oscillator frequency as a +- 5% tolerance. I have fixed the problem by adding an external clock source.

3 replies

Simon Laporte
Simon LaporteAuthorBest answer
Associate
Jul 12, 2018 5:00 PM UTC
Posted on July 12, 2018 at 19:00

I found out the root cause of my problem. The internal oscillator frequency as a +- 5% tolerance. I have fixed the problem by adding an external clock source.

dungeonlords789
Associate III
Apr 24, 2019 8:33 PM UTC

How many powerstep01 I can use in daisy chain? I know that i can use up to 3 ihm03a1 boards with nucleo. Why 3?

Simon Laporte
Associate
Apr 26, 2019 3:30 PM UTC

I think theoretically you can use up to 255 powerstep01 in daisy chain. You cannot stack more than 3 ihm03a1boards because of the way the MISO and MOSI signal are wired inside the board.

CPU MOSI -> PS1 MOSI -> PS1MISO->PS2 MOSI-> PS2 MISO -> PS3 MOSI -> PS3 MISO -> CPU MISO.

If you want to use more than 3 ihm03a1 boards you cannot stack them on your nucleo board and cannot stack more than 3 together. In my project I used 7 ihm03a1 in daisy chain. I had 2 stacks of 3 boards and 1 board independent and it was working perfectly.