Robotique FIP / X_NUCLEO_IHM01A1

Fork of X_NUCLEO_IHM01A1 by ST

Committer:
julientiron
Date:
Fri Mar 25 21:25:52 2016 +0000
Revision:
25:456a51498c6b
Parent:
22:ed3a6990a6eb
ez

Who changed what in which revision?

UserRevisionLine numberNew contents of line
julientiron 25:456a51498c6b 1 /**************************************************************************//**
julientiron 25:456a51498c6b 2 * @file l6474_target_config.h
julientiron 25:456a51498c6b 3 * @author IPC Rennes
julientiron 25:456a51498c6b 4 * @version V1.5.0
julientiron 25:456a51498c6b 5 * @date November 12, 2014
julientiron 25:456a51498c6b 6 * @brief Predefines values for the L6474 registers
julientiron 25:456a51498c6b 7 * and for the devices parameters
julientiron 25:456a51498c6b 8 * @note (C) COPYRIGHT 2014 STMicroelectronics
julientiron 25:456a51498c6b 9 ******************************************************************************
julientiron 25:456a51498c6b 10 * @attention
julientiron 25:456a51498c6b 11 *
julientiron 25:456a51498c6b 12 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
julientiron 25:456a51498c6b 13 *
julientiron 25:456a51498c6b 14 * Redistribution and use in source and binary forms, with or without modification,
julientiron 25:456a51498c6b 15 * are permitted provided that the following conditions are met:
julientiron 25:456a51498c6b 16 * 1. Redistributions of source code must retain the above copyright notice,
julientiron 25:456a51498c6b 17 * this list of conditions and the following disclaimer.
julientiron 25:456a51498c6b 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
julientiron 25:456a51498c6b 19 * this list of conditions and the following disclaimer in the documentation
julientiron 25:456a51498c6b 20 * and/or other materials provided with the distribution.
julientiron 25:456a51498c6b 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
julientiron 25:456a51498c6b 22 * may be used to endorse or promote products derived from this software
julientiron 25:456a51498c6b 23 * without specific prior written permission.
julientiron 25:456a51498c6b 24 *
julientiron 25:456a51498c6b 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
julientiron 25:456a51498c6b 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
julientiron 25:456a51498c6b 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
julientiron 25:456a51498c6b 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
julientiron 25:456a51498c6b 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
julientiron 25:456a51498c6b 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
julientiron 25:456a51498c6b 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
julientiron 25:456a51498c6b 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
julientiron 25:456a51498c6b 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
julientiron 25:456a51498c6b 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
julientiron 25:456a51498c6b 35 *
julientiron 25:456a51498c6b 36 ******************************************************************************
julientiron 25:456a51498c6b 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 */
julientiron 25:456a51498c6b 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 */
julientiron 25:456a51498c6b 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)
julientiron 25:456a51498c6b 69 #define L6474_CONF_PARAM_ACC_DEVICE_0 (500)
Davidroid 0:2887415a46cd 70 /// Acceleration rate in step/s2 for device 1 (must be greater than 0)
julientiron 25:456a51498c6b 71 #define L6474_CONF_PARAM_ACC_DEVICE_1 (500)
Davidroid 0:2887415a46cd 72 /// Acceleration rate in step/s2 for device 2 (must be greater than 0)
julientiron 25:456a51498c6b 73 #define L6474_CONF_PARAM_ACC_DEVICE_2 (500)
Davidroid 0:2887415a46cd 74
Davidroid 0:2887415a46cd 75 /// Deceleration rate in step/s2 for device 0 (must be greater than 0)
julientiron 25:456a51498c6b 76 #define L6474_CONF_PARAM_DEC_DEVICE_0 (500)
Davidroid 0:2887415a46cd 77 /// Deceleration rate in step/s2 for device 1 (must be greater than 0)
julientiron 25:456a51498c6b 78 #define L6474_CONF_PARAM_DEC_DEVICE_1 (500)
Davidroid 0:2887415a46cd 79 /// Deceleration rate in step/s2 for device 2 (must be greater than 0)
julientiron 25:456a51498c6b 80 #define L6474_CONF_PARAM_DEC_DEVICE_2 (500)
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 )
julientiron 25:456a51498c6b 83 #define L6474_CONF_PARAM_MAX_SPEED_DEVICE_0 (5000)
Davidroid 0:2887415a46cd 84 /// Maximum speed in step/s for device 1 (30 step/s < Maximum speed <= 10 000 step/s )
julientiron 25:456a51498c6b 85 #define L6474_CONF_PARAM_MAX_SPEED_DEVICE_1 (5000)
Davidroid 0:2887415a46cd 86 /// Maximum speed in step/s for device 2 (30 step/s < Maximum speed <= 10 000 step/s )
julientiron 25:456a51498c6b 87 #define L6474_CONF_PARAM_MAX_SPEED_DEVICE_2 (5000)
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)
julientiron 25:456a51498c6b 90 #define L6474_CONF_PARAM_MIN_SPEED_DEVICE_0 (2000)
Davidroid 0:2887415a46cd 91 /// Minimum speed in step/s for device 1 (30 step/s <= Minimum speed < 10 000 step/s)
julientiron 25:456a51498c6b 92 #define L6474_CONF_PARAM_MIN_SPEED_DEVICE_1 (2000)
Davidroid 0:2887415a46cd 93 /// Minimum speed in step/s for device 2 (30 step/s <= Minimum speed < 10 000 step/s)
julientiron 25:456a51498c6b 94 #define L6474_CONF_PARAM_MIN_SPEED_DEVICE_2 (2000)
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)
julientiron 25:456a51498c6b 101 #define L6474_CONF_PARAM_TVAL_DEVICE_0 (1000)
Davidroid 0:2887415a46cd 102 /// TVAL register value for device 1 (range 31.25mA to 4000mA)
julientiron 25:456a51498c6b 103 #define L6474_CONF_PARAM_TVAL_DEVICE_1 (1000)
Davidroid 0:2887415a46cd 104 /// TVAL register value for device 2 (range 31.25mA to 4000mA)
julientiron 25:456a51498c6b 105 #define L6474_CONF_PARAM_TVAL_DEVICE_2 (1000)
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)
julientiron 25:456a51498c6b 138 #define L6474_CONF_PARAM_OCD_TH_DEVICE_0 (L6474_OCD_TH_3000mA)
Davidroid 0:2887415a46cd 139 /// Overcurrent threshold settings for device 1 (OCD_TH register)
julientiron 25:456a51498c6b 140 #define L6474_CONF_PARAM_OCD_TH_DEVICE_1 (L6474_OCD_TH_3000mA)
Davidroid 0:2887415a46cd 141 /// Overcurrent threshold settings for device 2 (OCD_TH register)
julientiron 25:456a51498c6b 142 #define L6474_CONF_PARAM_OCD_TH_DEVICE_2 (L6474_OCD_TH_3000mA)
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
julientiron 25:456a51498c6b 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 */