Library to handle the X-NUCLEO-IHM01A1 Motor Control Expansion Board based on the L6474 component.


Dependents:   Stepper_Matlab_Control SunTracker_BLE Stepper_Matlab_Control MemsMotorControl ... more

Fork of X_NUCLEO_IHM01A1 by ST Expansion SW Team

Motor Control Library


Library to handle the X-NUCLEO-IHM01A1 Motor Control Expansion Board based on the the L6474 component.

Daisy-Chain Configuration

This board can be stacked up to three times so that the L6474 components will be connected in daisy-chain configuration. For this purpose, some resistors must be correctly connected on the boards as depicted here below:


Platform compatibility

  • NUCLEO boards have been tested with the default configuration provided by the HelloWorld_IHM01A1 example.
  • LPCXpresso11U68 board has been tested with the following patch:
    • to connect with a wire from the LPCX’s D4 pin to the IHM01A1’s D9 pin;
    • to initialize the pwm PinName variable with D4 rather than D9.
  • FRDM-K64F board has been tested with the following patch:
    • to connect with a wire from the FRDM’s D4 pin to the IHM01A1’s D8 pin;
    • to initialize the standby_reset PinName variable with D4 rather than D8.

Example Applications


RevisionDateWhoCommit message
35:974ca699c792 2017-03-13 Davidroid Typo corrected. default tip
34:27da297c361c 2017-03-10 Davidroid Including ST_INTERFACES library aligned to ARM mbed coding style.
33:8daea0279301 2017-03-10 Aligning to ARM mbed coding style.
32:6e5198e46287 2017-02-28 Davidroid Fitting mbed coding style.
31:c4d0fee5ce75 2016-10-28 Davidroid Restore default parameters.
30:a05820cfdba9 2016-10-28 Davidroid Removed a warning due to changes in mbed's Ticker class.
29:cc8d254e21bd 2016-09-27 Davidroid Updated with the official ST_INTERFACES library.
28:f6093f7cdc09 2016-09-27 Davidroid ST_INTERFACES added.
27:990963ed581b 2016-09-08 Davidroid Initialization function updated.
26:fd83fecf1ef5 2016-04-08 Davidroid + Some comments updated.
25:1c3146315f16 2016-04-07 Davidroid + StepperMotor interface updated: step-modes added, getter/setter methods for parameters removed.
24:258f0f60d30c 2016-03-11 Davidroid + Updated with the new version of common libraries.
23:58264db10a17 2016-02-15 Davidroid + Updated some comments.
22:ed3a6990a6eb 2016-02-09 Davidroid + Updated with the new template's syntax.
21:83138e702683 2016-01-19 Davidroid + Changed "L6474_Init()" function's prototype, to be consistent with the "MOTOR_DrvVTableTypeDef" type.
20:a8e81b65f0af 2016-01-15 Davidroid + Added comments within the "L6474_class.h" header file.
19:5f0b00a1e38d 2016-01-13 Davidroid + Enabled methods accidentally left commented within the "StepperMotor" interface.
18:2d6ab2b93685 2016-01-13 Davidroid + Initialization structure added.; + StepperMotor's GetParameters()/SetParameters() methods updated to handle floating-point numbers.; + L6474's GetParameters()/SetParameters() methods updated to re-format parameters.;
17:35b9ca8c4bd6 2016-01-04 Davidroid + Added check on component's stackability.
16:bec7dd79f328 2015-12-14 Davidroid + Default initialization structure set to NULL.
15:40470df81d9a 2015-12-10 Davidroid + Comments related to the component updated.
14:73823a4344be 2015-12-09 Davidroid + Correction of a typo.
13:ba2728afe4c2 2015-12-01 Davidroid + Modified SoftStop() and HardStop() to not to disable the power bridge;; + Added SoftHiz() and HardHiz() to disable the power bridge.
12:9f4b9540ff3e 2015-11-27 Davidroid + Updated to initialize the motor to 1/16 Microstepping mode.
11:b4d365138c21 2015-11-27 Davidroid + Initialization of the component updated to FULL STEP mode.
10:c3824af0caf4 2015-11-26 Davidroid + Updated comments to the new structure generated by the Stm32CubeTOO tool.
9:6f116ce8e314 2015-11-25 Davidroid + Minor changes to align to the StepperMotor interface.
8:42e0b00b1e4d 2015-11-23 Davidroid + Doxygen documentation completed.
7:f7e0c3621f77 2015-11-20 Davidroid + FLAG interrupt handling added.; + Doxygen documentation ongoing.
6:a47569fc7534 2015-11-19 Davidroid Set ISR flags as static members.
5:d3c78f12a78d 2015-11-18 Davidroid + SPI registers set as static variables and as arrays of MAX_NUMBER_OF_DEVICES, in order to support daisy-chain configuration.; + Direction type "StepperMotor::direction_t" modified.
4:83a1eb397a65 2015-11-13 Davidroid "StepperMotor" abstract class defined.
3:b14869784215 2015-10-28 Davidroid NTR
2:de6d31fa3709 2015-10-28 Davidroid + Added support for LSM6DS0, other than the LSM6DS3 within the main program.; + Increased the maximum motor frequency to 20000Hz rather than 10000Hz within the X_NUCLEO_IHM01A1 library (modification just for the purpose of this demo).
1:b38ebb8ea286 2015-10-16 Davidroid + Removed Timer Serivce Routine's flag and restored direct callback.; + Restored "L6474_WaitWhileActive()" function.;
0:2887415a46cd 2015-10-14 Davidroid Library to handle the X_NUCLEO_IHM01A1 Motor Control Expansion Board.