Personal fork of the library for direct control instead of library control

Dependencies:   X_NUCLEO_COMMON

Dependents:   Thesis_Rotating_Platform

Fork of X_NUCLEO_IHM01A1 by Arkadi Rafalovich

Committer:
Davidroid
Date:
Wed Jan 13 14:35:59 2016 +0000
Revision:
18:2d6ab2b93685
Parent:
0:2887415a46cd
Child:
22:ed3a6990a6eb
+ Initialization structure added.; + StepperMotor's GetParameters()/SetParameters() methods updated to handle floating-point numbers.; + L6474's GetParameters()/SetParameters() methods updated to re-format parameters.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Davidroid 0:2887415a46cd 1 /**************************************************************************//**
Davidroid 0:2887415a46cd 2 * @file l6474_target_config.h
Davidroid 0:2887415a46cd 3 * @author IPC Rennes
Davidroid 0:2887415a46cd 4 * @version V1.5.0
Davidroid 0:2887415a46cd 5 * @date November 12, 2014
Davidroid 0:2887415a46cd 6 * @brief Predefines values for the L6474 registers
Davidroid 0:2887415a46cd 7 * and for the devices parameters
Davidroid 0:2887415a46cd 8 * @note (C) COPYRIGHT 2014 STMicroelectronics
Davidroid 0:2887415a46cd 9 ******************************************************************************
Davidroid 0:2887415a46cd 10 * @attention
Davidroid 0:2887415a46cd 11 *
Davidroid 0:2887415a46cd 12 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
Davidroid 0:2887415a46cd 13 *
Davidroid 0:2887415a46cd 14 * Redistribution and use in source and binary forms, with or without modification,
Davidroid 0:2887415a46cd 15 * are permitted provided that the following conditions are met:
Davidroid 0:2887415a46cd 16 * 1. Redistributions of source code must retain the above copyright notice,
Davidroid 0:2887415a46cd 17 * this list of conditions and the following disclaimer.
Davidroid 0:2887415a46cd 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
Davidroid 0:2887415a46cd 19 * this list of conditions and the following disclaimer in the documentation
Davidroid 0:2887415a46cd 20 * and/or other materials provided with the distribution.
Davidroid 0:2887415a46cd 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
Davidroid 0:2887415a46cd 22 * may be used to endorse or promote products derived from this software
Davidroid 0:2887415a46cd 23 * without specific prior written permission.
Davidroid 0:2887415a46cd 24 *
Davidroid 0:2887415a46cd 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Davidroid 0:2887415a46cd 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Davidroid 0:2887415a46cd 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Davidroid 0:2887415a46cd 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Davidroid 0:2887415a46cd 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Davidroid 0:2887415a46cd 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Davidroid 0:2887415a46cd 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Davidroid 0:2887415a46cd 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Davidroid 0:2887415a46cd 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Davidroid 0:2887415a46cd 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Davidroid 0:2887415a46cd 35 *
Davidroid 0:2887415a46cd 36 ******************************************************************************
Davidroid 0:2887415a46cd 37 */
Davidroid 0:2887415a46cd 38
Davidroid 0:2887415a46cd 39 /* Define to prevent recursive inclusion -------------------------------------*/
Davidroid 0:2887415a46cd 40 #ifndef __L6474_TARGET_CONFIG_H
Davidroid 0:2887415a46cd 41 #define __L6474_TARGET_CONFIG_H
Davidroid 0:2887415a46cd 42
Davidroid 0:2887415a46cd 43 #ifdef __cplusplus
Davidroid 0:2887415a46cd 44 extern "C" {
Davidroid 0:2887415a46cd 45 #endif
Davidroid 0:2887415a46cd 46
Davidroid 0:2887415a46cd 47 /** @addtogroup BSP
Davidroid 0:2887415a46cd 48 * @{
Davidroid 0:2887415a46cd 49 */
Davidroid 0:2887415a46cd 50
Davidroid 0:2887415a46cd 51 /** @addtogroup L6474
Davidroid 0:2887415a46cd 52 * @{
Davidroid 0:2887415a46cd 53 */
Davidroid 0:2887415a46cd 54
Davidroid 0:2887415a46cd 55 /** @addtogroup L6474_Exported_Constants
Davidroid 0:2887415a46cd 56 * @{
Davidroid 0:2887415a46cd 57 */
Davidroid 0:2887415a46cd 58
Davidroid 0:2887415a46cd 59 /** @defgroup Predefined_L6474_Registers_Values
Davidroid 0:2887415a46cd 60 * @{
Davidroid 0:2887415a46cd 61 */
Davidroid 0:2887415a46cd 62
Davidroid 0:2887415a46cd 63 /// The maximum number of devices in the daisy chain
Davidroid 0:2887415a46cd 64 #define MAX_NUMBER_OF_DEVICES (3)
Davidroid 0:2887415a46cd 65
Davidroid 0:2887415a46cd 66 /************************ Speed Profile *******************************/
Davidroid 0:2887415a46cd 67
Davidroid 0:2887415a46cd 68 /// Acceleration rate in step/s2 for device 0 (must be greater than 0)
Davidroid 0:2887415a46cd 69 #define L6474_CONF_PARAM_ACC_DEVICE_0 (160)
Davidroid 0:2887415a46cd 70 /// Acceleration rate in step/s2 for device 1 (must be greater than 0)
Davidroid 0:2887415a46cd 71 #define L6474_CONF_PARAM_ACC_DEVICE_1 (160)
Davidroid 0:2887415a46cd 72 /// Acceleration rate in step/s2 for device 2 (must be greater than 0)
Davidroid 0:2887415a46cd 73 #define L6474_CONF_PARAM_ACC_DEVICE_2 (160)
Davidroid 0:2887415a46cd 74
Davidroid 0:2887415a46cd 75 /// Deceleration rate in step/s2 for device 0 (must be greater than 0)
Davidroid 0:2887415a46cd 76 #define L6474_CONF_PARAM_DEC_DEVICE_0 (160)
Davidroid 0:2887415a46cd 77 /// Deceleration rate in step/s2 for device 1 (must be greater than 0)
Davidroid 0:2887415a46cd 78 #define L6474_CONF_PARAM_DEC_DEVICE_1 (160)
Davidroid 0:2887415a46cd 79 /// Deceleration rate in step/s2 for device 2 (must be greater than 0)
Davidroid 0:2887415a46cd 80 #define L6474_CONF_PARAM_DEC_DEVICE_2 (160)
Davidroid 0:2887415a46cd 81
Davidroid 0:2887415a46cd 82 /// Maximum speed in step/s for device 0 (30 step/s < Maximum speed <= 10 000 step/s )
Davidroid 0:2887415a46cd 83 #define L6474_CONF_PARAM_MAX_SPEED_DEVICE_0 (1600)
Davidroid 0:2887415a46cd 84 /// Maximum speed in step/s for device 1 (30 step/s < Maximum speed <= 10 000 step/s )
Davidroid 0:2887415a46cd 85 #define L6474_CONF_PARAM_MAX_SPEED_DEVICE_1 (1600)
Davidroid 0:2887415a46cd 86 /// Maximum speed in step/s for device 2 (30 step/s < Maximum speed <= 10 000 step/s )
Davidroid 0:2887415a46cd 87 #define L6474_CONF_PARAM_MAX_SPEED_DEVICE_2 (1600)
Davidroid 0:2887415a46cd 88
Davidroid 0:2887415a46cd 89 /// Minimum speed in step/s for device 0 (30 step/s <= Minimum speed < 10 000 step/s)
Davidroid 0:2887415a46cd 90 #define L6474_CONF_PARAM_MIN_SPEED_DEVICE_0 (800)
Davidroid 0:2887415a46cd 91 /// Minimum speed in step/s for device 1 (30 step/s <= Minimum speed < 10 000 step/s)
Davidroid 0:2887415a46cd 92 #define L6474_CONF_PARAM_MIN_SPEED_DEVICE_1 (800)
Davidroid 0:2887415a46cd 93 /// Minimum speed in step/s for device 2 (30 step/s <= Minimum speed < 10 000 step/s)
Davidroid 0:2887415a46cd 94 #define L6474_CONF_PARAM_MIN_SPEED_DEVICE_2 (800)
Davidroid 0:2887415a46cd 95
Davidroid 0:2887415a46cd 96
Davidroid 0:2887415a46cd 97 /************************ Phase Current Control *******************************/
Davidroid 0:2887415a46cd 98
Davidroid 0:2887415a46cd 99 // Current value that is assigned to the torque regulation DAC
Davidroid 0:2887415a46cd 100 /// TVAL register value for device 0 (range 31.25mA to 4000mA)
Davidroid 0:2887415a46cd 101 #define L6474_CONF_PARAM_TVAL_DEVICE_0 (250)
Davidroid 0:2887415a46cd 102 /// TVAL register value for device 1 (range 31.25mA to 4000mA)
Davidroid 0:2887415a46cd 103 #define L6474_CONF_PARAM_TVAL_DEVICE_1 (250)
Davidroid 0:2887415a46cd 104 /// TVAL register value for device 2 (range 31.25mA to 4000mA)
Davidroid 0:2887415a46cd 105 #define L6474_CONF_PARAM_TVAL_DEVICE_2 (250)
Davidroid 0:2887415a46cd 106
Davidroid 0:2887415a46cd 107 /// Fall time value (T_FAST field of T_FAST register) for device 0 (range 2us to 32us)
Davidroid 0:2887415a46cd 108 #define L6474_CONF_PARAM_FAST_STEP_DEVICE_0 (L6474_FAST_STEP_12us)
Davidroid 0:2887415a46cd 109 /// Fall time value (T_FAST field of T_FAST register) for device 1 (range 2us to 32us)
Davidroid 0:2887415a46cd 110 #define L6474_CONF_PARAM_FAST_STEP_DEVICE_1 (L6474_FAST_STEP_12us)
Davidroid 0:2887415a46cd 111 /// Fall time value (T_FAST field of T_FAST register) for device 2 (range 2us to 32us)
Davidroid 0:2887415a46cd 112 #define L6474_CONF_PARAM_FAST_STEP_DEVICE_2 (L6474_FAST_STEP_12us)
Davidroid 0:2887415a46cd 113
Davidroid 0:2887415a46cd 114 /// Maximum fast decay time (T_OFF field of T_FAST register) for device 0 (range 2us to 32us)
Davidroid 0:2887415a46cd 115 #define L6474_CONF_PARAM_TOFF_FAST_DEVICE_0 (L6474_TOFF_FAST_8us)
Davidroid 0:2887415a46cd 116 /// Maximum fast decay time (T_OFF field of T_FAST register) for device 1 (range 2us to 32us)
Davidroid 0:2887415a46cd 117 #define L6474_CONF_PARAM_TOFF_FAST_DEVICE_1 (L6474_TOFF_FAST_8us)
Davidroid 0:2887415a46cd 118 /// Maximum fast decay time (T_OFF field of T_FAST register) for device 2 (range 2us to 32us)
Davidroid 0:2887415a46cd 119 #define L6474_CONF_PARAM_TOFF_FAST_DEVICE_2 (L6474_TOFF_FAST_8us)
Davidroid 0:2887415a46cd 120
Davidroid 0:2887415a46cd 121 /// Minimum ON time (TON_MIN register) for device 0 (range 0.5us to 64us)
Davidroid 0:2887415a46cd 122 #define L6474_CONF_PARAM_TON_MIN_DEVICE_0 (3)
Davidroid 0:2887415a46cd 123 /// Minimum ON time (TON_MIN register) for device 1 (range 0.5us to 64us)
Davidroid 0:2887415a46cd 124 #define L6474_CONF_PARAM_TON_MIN_DEVICE_1 (3)
Davidroid 0:2887415a46cd 125 /// Minimum ON time (TON_MIN register) for device 2 (range 0.5us to 64us)
Davidroid 0:2887415a46cd 126 #define L6474_CONF_PARAM_TON_MIN_DEVICE_2 (3)
Davidroid 0:2887415a46cd 127
Davidroid 0:2887415a46cd 128 /// Minimum OFF time (TOFF_MIN register) for device 0 (range 0.5us to 64us)
Davidroid 0:2887415a46cd 129 #define L6474_CONF_PARAM_TOFF_MIN_DEVICE_0 (21)
Davidroid 0:2887415a46cd 130 /// Minimum OFF time (TOFF_MIN register) for device 1 (range 0.5us to 64us)
Davidroid 0:2887415a46cd 131 #define L6474_CONF_PARAM_TOFF_MIN_DEVICE_1 (21)
Davidroid 0:2887415a46cd 132 /// Minimum OFF time (TOFF_MIN register) for device 2 (range 0.5us to 64us)
Davidroid 0:2887415a46cd 133 #define L6474_CONF_PARAM_TOFF_MIN_DEVICE_2 (21)
Davidroid 0:2887415a46cd 134
Davidroid 0:2887415a46cd 135 /******************************* Others ***************************************/
Davidroid 0:2887415a46cd 136
Davidroid 0:2887415a46cd 137 /// Overcurrent threshold settings for device 0 (OCD_TH register)
Davidroid 0:2887415a46cd 138 #define L6474_CONF_PARAM_OCD_TH_DEVICE_0 (L6474_OCD_TH_750mA)
Davidroid 0:2887415a46cd 139 /// Overcurrent threshold settings for device 1 (OCD_TH register)
Davidroid 0:2887415a46cd 140 #define L6474_CONF_PARAM_OCD_TH_DEVICE_1 (L6474_OCD_TH_750mA)
Davidroid 0:2887415a46cd 141 /// Overcurrent threshold settings for device 2 (OCD_TH register)
Davidroid 0:2887415a46cd 142 #define L6474_CONF_PARAM_OCD_TH_DEVICE_2 (L6474_OCD_TH_750mA)
Davidroid 0:2887415a46cd 143
Davidroid 0:2887415a46cd 144 /// Alarm settings for device 0 (ALARM_EN register)
Davidroid 0:2887415a46cd 145 #define L6474_CONF_PARAM_ALARM_EN_DEVICE_0 (L6474_ALARM_EN_OVERCURRENT |\
Davidroid 0:2887415a46cd 146 L6474_ALARM_EN_THERMAL_SHUTDOWN |\
Davidroid 0:2887415a46cd 147 L6474_ALARM_EN_THERMAL_WARNING |\
Davidroid 0:2887415a46cd 148 L6474_ALARM_EN_UNDERVOLTAGE |\
Davidroid 0:2887415a46cd 149 L6474_ALARM_EN_SW_TURN_ON |\
Davidroid 0:2887415a46cd 150 L6474_ALARM_EN_WRONG_NPERF_CMD)
Davidroid 0:2887415a46cd 151
Davidroid 0:2887415a46cd 152 ///Alarm settings for device 1 (ALARM_EN register)
Davidroid 0:2887415a46cd 153 #define L6474_CONF_PARAM_ALARM_EN_DEVICE_1 (L6474_ALARM_EN_OVERCURRENT |\
Davidroid 0:2887415a46cd 154 L6474_ALARM_EN_THERMAL_SHUTDOWN |\
Davidroid 0:2887415a46cd 155 L6474_ALARM_EN_THERMAL_WARNING |\
Davidroid 0:2887415a46cd 156 L6474_ALARM_EN_UNDERVOLTAGE |\
Davidroid 0:2887415a46cd 157 L6474_ALARM_EN_SW_TURN_ON |\
Davidroid 0:2887415a46cd 158 L6474_ALARM_EN_WRONG_NPERF_CMD)
Davidroid 0:2887415a46cd 159
Davidroid 0:2887415a46cd 160 /// Alarm settings for device 2 (ALARM_EN register)
Davidroid 0:2887415a46cd 161 #define L6474_CONF_PARAM_ALARM_EN_DEVICE_2 (L6474_ALARM_EN_OVERCURRENT |\
Davidroid 0:2887415a46cd 162 L6474_ALARM_EN_THERMAL_SHUTDOWN |\
Davidroid 0:2887415a46cd 163 L6474_ALARM_EN_THERMAL_WARNING |\
Davidroid 0:2887415a46cd 164 L6474_ALARM_EN_UNDERVOLTAGE |\
Davidroid 0:2887415a46cd 165 L6474_ALARM_EN_SW_TURN_ON |\
Davidroid 0:2887415a46cd 166 L6474_ALARM_EN_WRONG_NPERF_CMD)
Davidroid 0:2887415a46cd 167
Davidroid 0:2887415a46cd 168 /// Step selection settings for device 0 (STEP_SEL field of STEP_MODE register)
Davidroid 0:2887415a46cd 169 #define L6474_CONF_PARAM_STEP_SEL_DEVICE_0 (L6474_STEP_SEL_1_16)
Davidroid 0:2887415a46cd 170 /// Step selection settings for device 1 (STEP_SEL field of STEP_MODE register)
Davidroid 0:2887415a46cd 171 #define L6474_CONF_PARAM_STEP_SEL_DEVICE_1 (L6474_STEP_SEL_1_16)
Davidroid 0:2887415a46cd 172 /// Step selection settings for device 2 (STEP_SEL field of STEP_MODE register)
Davidroid 0:2887415a46cd 173 #define L6474_CONF_PARAM_STEP_SEL_DEVICE_2 (L6474_STEP_SEL_1_16)
Davidroid 0:2887415a46cd 174
Davidroid 0:2887415a46cd 175 /// Synch. selection settings for device 0 (SYNC_SEL field of STEP_MODE register)
Davidroid 0:2887415a46cd 176 #define L6474_CONF_PARAM_SYNC_SEL_DEVICE_0 (L6474_SYNC_SEL_1_2)
Davidroid 0:2887415a46cd 177 /// Synch. selection settings for device 1 (SYNC_SEL field of STEP_MODE register)
Davidroid 0:2887415a46cd 178 #define L6474_CONF_PARAM_SYNC_SEL_DEVICE_1 (L6474_SYNC_SEL_1_2)
Davidroid 0:2887415a46cd 179 /// Synch. selection settings for device 2 (SYNC_SEL field of STEP_MODE register)
Davidroid 0:2887415a46cd 180 #define L6474_CONF_PARAM_SYNC_SEL_DEVICE_2 (L6474_SYNC_SEL_1_2)
Davidroid 0:2887415a46cd 181
Davidroid 0:2887415a46cd 182 /// Target Swicthing Period for device 0 (field TOFF of CONFIG register)
Davidroid 0:2887415a46cd 183 #define L6474_CONF_PARAM_TOFF_DEVICE_0 (L6474_CONFIG_TOFF_044us)
Davidroid 0:2887415a46cd 184 /// Target Swicthing Period for device 1 (field TOFF of CONFIG register)
Davidroid 0:2887415a46cd 185 #define L6474_CONF_PARAM_TOFF_DEVICE_1 (L6474_CONFIG_TOFF_044us)
Davidroid 0:2887415a46cd 186 /// Target Swicthing Period for device 2 (field TOFF of CONFIG register)
Davidroid 0:2887415a46cd 187 #define L6474_CONF_PARAM_TOFF_DEVICE_2 (L6474_CONFIG_TOFF_044us)
Davidroid 0:2887415a46cd 188
Davidroid 0:2887415a46cd 189 /// Slew rate for device 0 (POW_SR field of CONFIG register)
Davidroid 0:2887415a46cd 190 #define L6474_CONF_PARAM_SR_DEVICE_0 (L6474_CONFIG_SR_320V_us)
Davidroid 0:2887415a46cd 191 /// Slew rate for device 1 (POW_SR field of CONFIG register)
Davidroid 0:2887415a46cd 192 #define L6474_CONF_PARAM_SR_DEVICE_1 (L6474_CONFIG_SR_320V_us)
Davidroid 0:2887415a46cd 193 /// Slew rate for device 2 (POW_SR field of CONFIG register)
Davidroid 0:2887415a46cd 194 #define L6474_CONF_PARAM_SR_DEVICE_2 (L6474_CONFIG_SR_320V_us)
Davidroid 0:2887415a46cd 195
Davidroid 0:2887415a46cd 196 /// Over current shutwdown enabling for device 0 (OC_SD field of CONFIG register)
Davidroid 0:2887415a46cd 197 #define L6474_CONF_PARAM_OC_SD_DEVICE_0 (L6474_CONFIG_OC_SD_ENABLE)
Davidroid 0:2887415a46cd 198 /// Over current shutwdown enabling for device 1 (OC_SD field of CONFIG register)
Davidroid 0:2887415a46cd 199 #define L6474_CONF_PARAM_OC_SD_DEVICE_1 (L6474_CONFIG_OC_SD_ENABLE)
Davidroid 0:2887415a46cd 200 /// Over current shutwdown enabling for device 2 (OC_SD field of CONFIG register)
Davidroid 0:2887415a46cd 201 #define L6474_CONF_PARAM_OC_SD_DEVICE_2 (L6474_CONFIG_OC_SD_ENABLE)
Davidroid 0:2887415a46cd 202
Davidroid 0:2887415a46cd 203 /// Torque regulation method for device 0 (EN_TQREG field of CONFIG register)
Davidroid 0:2887415a46cd 204 #define L6474_CONF_PARAM_TQ_REG_DEVICE_0 (L6474_CONFIG_EN_TQREG_TVAL_USED)
Davidroid 0:2887415a46cd 205 ///Torque regulation method for device 1 (EN_TQREG field of CONFIG register)
Davidroid 0:2887415a46cd 206 #define L6474_CONF_PARAM_TQ_REG_DEVICE_1 (L6474_CONFIG_EN_TQREG_TVAL_USED)
Davidroid 0:2887415a46cd 207 /// Torque regulation method for device 2 (EN_TQREG field of CONFIG register)
Davidroid 0:2887415a46cd 208 #define L6474_CONF_PARAM_TQ_REG_DEVICE_2 (L6474_CONFIG_EN_TQREG_TVAL_USED)
Davidroid 0:2887415a46cd 209
Davidroid 0:2887415a46cd 210 /// Clock setting for device 0 (OSC_CLK_SEL field of CONFIG register)
Davidroid 0:2887415a46cd 211 #define L6474_CONF_PARAM_CLOCK_SETTING_DEVICE_0 (L6474_CONFIG_INT_16MHZ)
Davidroid 0:2887415a46cd 212 /// Clock setting for device 1 (OSC_CLK_SEL field of CONFIG register)
Davidroid 0:2887415a46cd 213 #define L6474_CONF_PARAM_CLOCK_SETTING_DEVICE_1 (L6474_CONFIG_INT_16MHZ)
Davidroid 0:2887415a46cd 214 /// Clock setting for device 2 (OSC_CLK_SEL field of CONFIG register)
Davidroid 0:2887415a46cd 215 #define L6474_CONF_PARAM_CLOCK_SETTING_DEVICE_2 (L6474_CONFIG_INT_16MHZ)
Davidroid 0:2887415a46cd 216
Davidroid 0:2887415a46cd 217
Davidroid 0:2887415a46cd 218 #ifdef __cplusplus
Davidroid 0:2887415a46cd 219 }
Davidroid 0:2887415a46cd 220 #endif
Davidroid 0:2887415a46cd 221
Davidroid 0:2887415a46cd 222 #endif /* __L6474_TARGET_CONFIG_H */