cancel
Showing results for 
Search instead for 
Did you mean: 

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

Simon Laporte
Associate II

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

1 ACCEPTED SOLUTION

Accepted Solutions
Simon Laporte
Associate II
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.

View solution in original post

3 REPLIES 3
Simon Laporte
Associate II
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
Senior III

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

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.