Julien Tiron / X_NUCLEO_IHM01A1

Dependents:   1-DoorCloser

Fork of X_NUCLEO_IHM01A1 by Robotique FIP

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers l6474_target_config.h Source File

l6474_target_config.h

Go to the documentation of this file.
00001 /**************************************************************************//**
00002   * @file    l6474_target_config.h
00003   * @author  IPC Rennes
00004   * @version V1.5.0
00005   * @date    November 12, 2014
00006   * @brief   Predefines values for the L6474 registers
00007   * and for the devices parameters
00008   * @note    (C) COPYRIGHT 2014 STMicroelectronics
00009   ******************************************************************************
00010   * @attention
00011   *
00012   * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
00013   *
00014   * Redistribution and use in source and binary forms, with or without modification,
00015   * are permitted provided that the following conditions are met:
00016   *   1. Redistributions of source code must retain the above copyright notice,
00017   *      this list of conditions and the following disclaimer.
00018   *   2. Redistributions in binary form must reproduce the above copyright notice,
00019   *      this list of conditions and the following disclaimer in the documentation
00020   *      and/or other materials provided with the distribution.
00021   *   3. Neither the name of STMicroelectronics nor the names of its contributors
00022   *      may be used to endorse or promote products derived from this software
00023   *      without specific prior written permission.
00024   *
00025   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00026   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00027   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00028   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00029   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00030   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00031   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00032   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00033   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00034   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00035   *
00036   ******************************************************************************
00037   */
00038 
00039 /* Define to prevent recursive inclusion -------------------------------------*/
00040 #ifndef __L6474_TARGET_CONFIG_H
00041 #define __L6474_TARGET_CONFIG_H
00042 
00043 #ifdef __cplusplus
00044  extern "C" {
00045 #endif 
00046 
00047 /** @addtogroup BSP
00048   * @{
00049   */   
00050    
00051 /** @addtogroup L6474
00052   * @{
00053   */   
00054 
00055 /** @addtogroup L6474_Exported_Constants
00056   * @{
00057   */   
00058    
00059 /** @defgroup Predefined_L6474_Registers_Values
00060   * @{
00061   */   
00062    
00063 /// The maximum number of devices in the daisy chain
00064 #define MAX_NUMBER_OF_DEVICES                 (3)
00065 
00066 /************************ Speed Profile  *******************************/
00067 
00068 /// Acceleration rate in step/s2 for device 0 (must be greater than 0)
00069 #define L6474_CONF_PARAM_ACC_DEVICE_0        (500)
00070 /// Acceleration rate in step/s2 for device 1 (must be greater than 0)
00071 #define L6474_CONF_PARAM_ACC_DEVICE_1        (500)
00072 /// Acceleration rate in step/s2 for device 2 (must be greater than 0)
00073 #define L6474_CONF_PARAM_ACC_DEVICE_2        (500)
00074 
00075 /// Deceleration rate in step/s2 for device 0 (must be greater than 0)
00076 #define L6474_CONF_PARAM_DEC_DEVICE_0        (500)
00077 /// Deceleration rate in step/s2 for device 1 (must be greater than 0)
00078 #define L6474_CONF_PARAM_DEC_DEVICE_1        (500)
00079 /// Deceleration rate in step/s2 for device 2 (must be greater than 0)
00080 #define L6474_CONF_PARAM_DEC_DEVICE_2        (500)
00081 
00082 /// Maximum speed in step/s for device 0 (30 step/s < Maximum speed <= 10 000 step/s )
00083 #define L6474_CONF_PARAM_MAX_SPEED_DEVICE_0  (5000)
00084 /// Maximum speed in step/s for device 1 (30 step/s < Maximum speed <= 10 000 step/s )
00085 #define L6474_CONF_PARAM_MAX_SPEED_DEVICE_1  (5000)
00086 /// Maximum speed in step/s for device 2 (30 step/s < Maximum speed <= 10 000 step/s )
00087 #define L6474_CONF_PARAM_MAX_SPEED_DEVICE_2  (5000)
00088 
00089 /// Minimum speed in step/s for device 0 (30 step/s <= Minimum speed < 10 000 step/s)
00090 #define L6474_CONF_PARAM_MIN_SPEED_DEVICE_0  (2000)
00091 /// Minimum speed in step/s for device 1 (30 step/s <= Minimum speed < 10 000 step/s)
00092 #define L6474_CONF_PARAM_MIN_SPEED_DEVICE_1  (2000)
00093 /// Minimum speed in step/s for device 2 (30 step/s <= Minimum speed < 10 000 step/s)
00094 #define L6474_CONF_PARAM_MIN_SPEED_DEVICE_2  (2000)
00095 
00096 
00097 /************************ Phase Current Control *******************************/
00098 
00099 // Current value that is assigned to the torque regulation DAC
00100 /// TVAL register value for device 0 (range 31.25mA to 4000mA)
00101 #define L6474_CONF_PARAM_TVAL_DEVICE_0  (4000)
00102 /// TVAL register value for device 1 (range 31.25mA to 4000mA)
00103 #define L6474_CONF_PARAM_TVAL_DEVICE_1  (4000)
00104 /// TVAL register value for device 2 (range 31.25mA to 4000mA)
00105 #define L6474_CONF_PARAM_TVAL_DEVICE_2  (4000)
00106 
00107 /// Fall time value (T_FAST field of T_FAST register) for device 0 (range 2us to 32us)
00108 #define L6474_CONF_PARAM_FAST_STEP_DEVICE_0  (L6474_FAST_STEP_12us)
00109 /// Fall time value (T_FAST field of T_FAST register) for device 1 (range 2us to 32us)
00110 #define L6474_CONF_PARAM_FAST_STEP_DEVICE_1  (L6474_FAST_STEP_12us)
00111 /// Fall time value (T_FAST field of T_FAST register) for device 2 (range 2us to 32us)
00112 #define L6474_CONF_PARAM_FAST_STEP_DEVICE_2  (L6474_FAST_STEP_12us)
00113 
00114 /// Maximum fast decay time (T_OFF field of T_FAST register) for device 0 (range 2us to 32us)
00115 #define L6474_CONF_PARAM_TOFF_FAST_DEVICE_0  (L6474_TOFF_FAST_8us)
00116 /// Maximum fast decay time (T_OFF field of T_FAST register) for device 1 (range 2us to 32us)
00117 #define L6474_CONF_PARAM_TOFF_FAST_DEVICE_1  (L6474_TOFF_FAST_8us)
00118 /// Maximum fast decay time (T_OFF field of T_FAST register) for device 2 (range 2us to 32us)
00119 #define L6474_CONF_PARAM_TOFF_FAST_DEVICE_2  (L6474_TOFF_FAST_8us)
00120 
00121 /// Minimum ON time (TON_MIN register) for device 0 (range 0.5us to 64us)
00122 #define L6474_CONF_PARAM_TON_MIN_DEVICE_0 (3)
00123 /// Minimum ON time (TON_MIN register) for device 1 (range 0.5us to 64us)
00124 #define L6474_CONF_PARAM_TON_MIN_DEVICE_1 (3)
00125 /// Minimum ON time (TON_MIN register) for device 2 (range 0.5us to 64us)
00126 #define L6474_CONF_PARAM_TON_MIN_DEVICE_2 (3)
00127 
00128 /// Minimum OFF time (TOFF_MIN register) for device 0 (range 0.5us to 64us)
00129 #define L6474_CONF_PARAM_TOFF_MIN_DEVICE_0 (21)
00130 /// Minimum OFF time (TOFF_MIN register) for device 1 (range 0.5us to 64us)
00131 #define L6474_CONF_PARAM_TOFF_MIN_DEVICE_1 (21)
00132 /// Minimum OFF time (TOFF_MIN register) for device 2 (range 0.5us to 64us)
00133 #define L6474_CONF_PARAM_TOFF_MIN_DEVICE_2 (21)
00134 
00135 /******************************* Others ***************************************/
00136 
00137 /// Overcurrent threshold settings for device 0 (OCD_TH register)
00138 #define L6474_CONF_PARAM_OCD_TH_DEVICE_0  (L6474_OCD_TH_3000mA)
00139 /// Overcurrent threshold settings for device 1 (OCD_TH register)
00140 #define L6474_CONF_PARAM_OCD_TH_DEVICE_1  (L6474_OCD_TH_3000mA)
00141 /// Overcurrent threshold settings for device 2 (OCD_TH register)
00142 #define L6474_CONF_PARAM_OCD_TH_DEVICE_2  (L6474_OCD_TH_3000mA)
00143 
00144 /// Alarm settings for device 0 (ALARM_EN register)
00145 #define L6474_CONF_PARAM_ALARM_EN_DEVICE_0  (L6474_ALARM_EN_OVERCURRENT |\
00146                                              L6474_ALARM_EN_THERMAL_SHUTDOWN |\
00147                                              L6474_ALARM_EN_THERMAL_WARNING |\
00148                                              L6474_ALARM_EN_UNDERVOLTAGE |\
00149                                              L6474_ALARM_EN_SW_TURN_ON |\
00150                                              L6474_ALARM_EN_WRONG_NPERF_CMD)
00151 
00152 ///Alarm settings for device 1 (ALARM_EN register)
00153 #define L6474_CONF_PARAM_ALARM_EN_DEVICE_1  (L6474_ALARM_EN_OVERCURRENT |\
00154                                              L6474_ALARM_EN_THERMAL_SHUTDOWN |\
00155                                              L6474_ALARM_EN_THERMAL_WARNING |\
00156                                              L6474_ALARM_EN_UNDERVOLTAGE |\
00157                                              L6474_ALARM_EN_SW_TURN_ON |\
00158                                              L6474_ALARM_EN_WRONG_NPERF_CMD)
00159 
00160 /// Alarm settings for device 2 (ALARM_EN register)
00161 #define L6474_CONF_PARAM_ALARM_EN_DEVICE_2  (L6474_ALARM_EN_OVERCURRENT |\
00162                                              L6474_ALARM_EN_THERMAL_SHUTDOWN |\
00163                                              L6474_ALARM_EN_THERMAL_WARNING |\
00164                                              L6474_ALARM_EN_UNDERVOLTAGE |\
00165                                              L6474_ALARM_EN_SW_TURN_ON |\
00166                                              L6474_ALARM_EN_WRONG_NPERF_CMD)
00167 
00168 /// Step selection settings for device 0 (STEP_SEL field of STEP_MODE register)
00169 #define L6474_CONF_PARAM_STEP_SEL_DEVICE_0  (L6474_STEP_SEL_1_16)
00170 /// Step selection settings for device 1 (STEP_SEL field of STEP_MODE register)
00171 #define L6474_CONF_PARAM_STEP_SEL_DEVICE_1  (L6474_STEP_SEL_1_16)
00172 /// Step selection settings for device 2 (STEP_SEL field of STEP_MODE register)
00173 #define L6474_CONF_PARAM_STEP_SEL_DEVICE_2  (L6474_STEP_SEL_1_16)
00174 
00175 /// Synch. selection settings for device 0 (SYNC_SEL field of STEP_MODE register)
00176 #define L6474_CONF_PARAM_SYNC_SEL_DEVICE_0  (L6474_SYNC_SEL_1_2)
00177 /// Synch. selection settings for device 1 (SYNC_SEL field of STEP_MODE register)
00178 #define L6474_CONF_PARAM_SYNC_SEL_DEVICE_1  (L6474_SYNC_SEL_1_2)
00179 /// Synch. selection settings for device 2 (SYNC_SEL field of STEP_MODE register)
00180 #define L6474_CONF_PARAM_SYNC_SEL_DEVICE_2  (L6474_SYNC_SEL_1_2)
00181 
00182 /// Target Swicthing Period for device 0 (field TOFF of CONFIG register)
00183 #define L6474_CONF_PARAM_TOFF_DEVICE_0  (L6474_CONFIG_TOFF_044us)
00184 /// Target Swicthing Period for device 1 (field TOFF of CONFIG register)
00185 #define L6474_CONF_PARAM_TOFF_DEVICE_1  (L6474_CONFIG_TOFF_044us)
00186 /// Target Swicthing Period for device 2 (field TOFF of CONFIG register)
00187 #define L6474_CONF_PARAM_TOFF_DEVICE_2  (L6474_CONFIG_TOFF_044us)
00188 
00189 /// Slew rate for device 0 (POW_SR field of CONFIG register)
00190 #define L6474_CONF_PARAM_SR_DEVICE_0  (L6474_CONFIG_SR_320V_us)
00191 /// Slew rate for device 1 (POW_SR field of CONFIG register)
00192 #define L6474_CONF_PARAM_SR_DEVICE_1  (L6474_CONFIG_SR_320V_us)
00193 /// Slew rate for device 2 (POW_SR field of CONFIG register)
00194 #define L6474_CONF_PARAM_SR_DEVICE_2  (L6474_CONFIG_SR_320V_us)
00195 
00196 /// Over current shutwdown enabling for device 0 (OC_SD field of CONFIG register)
00197 #define L6474_CONF_PARAM_OC_SD_DEVICE_0  (L6474_CONFIG_OC_SD_ENABLE)
00198 /// Over current shutwdown enabling for device 1 (OC_SD field of CONFIG register)
00199 #define L6474_CONF_PARAM_OC_SD_DEVICE_1  (L6474_CONFIG_OC_SD_ENABLE)
00200 /// Over current shutwdown enabling for device 2 (OC_SD field of CONFIG register)
00201 #define L6474_CONF_PARAM_OC_SD_DEVICE_2  (L6474_CONFIG_OC_SD_ENABLE)
00202 
00203 /// Torque regulation method for device 0 (EN_TQREG field of CONFIG register)
00204 #define L6474_CONF_PARAM_TQ_REG_DEVICE_0  (L6474_CONFIG_EN_TQREG_TVAL_USED)
00205 ///Torque regulation method for device 1 (EN_TQREG field of CONFIG register)
00206 #define L6474_CONF_PARAM_TQ_REG_DEVICE_1  (L6474_CONFIG_EN_TQREG_TVAL_USED)
00207 /// Torque regulation method for device 2 (EN_TQREG field of CONFIG register)
00208 #define L6474_CONF_PARAM_TQ_REG_DEVICE_2  (L6474_CONFIG_EN_TQREG_TVAL_USED)
00209 
00210 /// Clock setting for device 0 (OSC_CLK_SEL field of CONFIG register)
00211 #define L6474_CONF_PARAM_CLOCK_SETTING_DEVICE_0  (L6474_CONFIG_INT_16MHZ)
00212 /// Clock setting for device 1 (OSC_CLK_SEL field of CONFIG register)
00213 #define L6474_CONF_PARAM_CLOCK_SETTING_DEVICE_1  (L6474_CONFIG_INT_16MHZ)
00214 /// Clock setting for device 2 (OSC_CLK_SEL field of CONFIG register)
00215 #define L6474_CONF_PARAM_CLOCK_SETTING_DEVICE_2  (L6474_CONFIG_INT_16MHZ)
00216 
00217 
00218 #ifdef __cplusplus
00219   }
00220 #endif
00221 
00222 #endif /* __L6474_TARGET_CONFIG_H */