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

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Dependents:   Stepper_Matlab_Control SunTracker_BLE Stepper_Matlab_Control MemsMotorControl ... more

Fork of X_NUCLEO_IHM01A1 by ST Expansion SW Team

Motor Control Library

Introduction

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:

/media/uploads/Davidroid/daisychaintable.png

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

Revision:
1:b38ebb8ea286
Parent:
0:2887415a46cd
Child:
5:d3c78f12a78d
diff -r 2887415a46cd -r b38ebb8ea286 Components/l6474/l6474.h
--- a/Components/l6474/l6474.h	Wed Oct 14 15:12:18 2015 +0000
+++ b/Components/l6474/l6474.h	Fri Oct 16 13:30:06 2015 +0000
@@ -455,30 +455,24 @@
 } L6474_DrvDataTypeDef;
 
 
-/* Functions -----------------------------------------------------------------*/
+/* Exported functions --------------------------------------------------------*/
 
-/** @addtogroup BSP
- * @{
- */
-
-/** @addtogroup Components
- * @{
- */
+/** @defgroup L6474_Exported_Functions
+  * @{
+  */   
 
-/** @addtogroup L6474
- * @{
- */
-
-/** @defgroup L6474_IO_Functions L6474_IO_Functions
- * @{
- */
 /* ACTION --------------------------------------------------------------------*
- * Declare here extern I/O functions you need and implemented them in a glue  *
- * logic file on the target environment, for example within the expansion     *
- * board "*.c" file. E.g.:                                                    *
+ * Declare here extern I/O and interrupt related functions you might need,    *
+ * and implemented then in a glue logic file on the target environment, for   *
+ * example within the "x_nucleo_<board>.c" file., e.g.:                       *
+ *   extern DrvStatusTypeDef COMPONENT_IO_Init (void *handle);                *
  *   extern DrvStatusTypeDef COMPONENT_IO_Read (handle, buf, regadd, bytes);  *
  *   extern DrvStatusTypeDef COMPONENT_IO_Write(handle, buf, regadd, bytes);  *
+ *   extern void COMPONENT_IO_ITConfig(void);                                 *
  *----------------------------------------------------------------------------*/
+/** @defgroup MotorControl_Board_Linked_Functions
+  * @{
+  */   
 ///Delay of the requested number of milliseconds
 extern void L6474_Delay(void *handle, uint32_t delay);     
 ///Enable Irq