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

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