Simple test application for the STMicroelectronics X-NUCLEO-IHM02A1 Stepper Motor Control Expansion Board.

Dependencies:   X_NUCLEO_IHM02A1 mbed

Fork of HelloWorld_IHM02A1 by ST Expansion SW Team

Motor Control with the X-NUCLEO-IHM02A1 Expansion Board

This application provides a simple example of usage of the X-NUCLEO-IHM02A1 Stepper Motor Control Expansion Board.
It shows how to use two stepper motors connected in daisy chain configuration to the board, moving the rotors to specific positions, with given speed values, direction of rotations, etc.

Revision:
2:41eeee48951b
Parent:
1:9f1974b0960d
Child:
3:fd280b953f77
--- a/main.cpp	Wed Nov 25 12:00:34 2015 +0000
+++ b/main.cpp	Thu Nov 26 16:24:52 2015 +0000
@@ -1,7 +1,7 @@
 /**
  ******************************************************************************
  * @file    main.cpp
- * @author  Davide Aliprandi / AST
+ * @author  Davide Aliprandi, STMicrolectronics
  * @version V1.0.0
  * @date    November 4th, 2015
  * @brief   mbed test application for the STMicrolectronics X-NUCLEO-IHM02A1
@@ -76,12 +76,23 @@
 {
     /*----- Initialization. -----*/
 
+    /* Initializing SPI bus. */
+    DevSPI dev_spi(D11, D12, D13);
 
-    /* Initializing SPI bus. */
-    DevSPI dev_spi(D11, D12, D3);
+    /* Initializing Motor Control Expansion Board.
+
+       You can stack up to 4 expansion boards together, each one controlling
+       two stepper motors in daisy-chain configuration, so that motors will
+       be in daisy-chain configuration two-by-two.
 
-    /* Initializing Motor Control Expansion Board. */
-    x_nucleo_ihm02a1 = X_NUCLEO_IHM02A1::Instance(A4, A5, D4, A2, &dev_spi);
+       Concerning the SSEL pin of SPI communication, expansion boards must
+       be in one of the following configurations:
+         + SB_23 resistor connected only --> SSEL on pin A2;
+         + SB_7  resistor connected only --> SSEL on pin D2;
+         + SB_8  resistor connected only --> SSEL on pin D10;
+         + SB_9  resistor connected only --> SSEL on pin D5.
+    */
+    x_nucleo_ihm02a1 = new X_NUCLEO_IHM02A1(A4, A5, D4, A2, &dev_spi);
 
     /* Building a list of motor control components. */
     L6470 **motors = x_nucleo_ihm02a1->GetComponents();