Expansion SW library to control high power stepper motor(s) using IHM03A1 expansion board(s) with Powerstep01 driver.
Dependencies: X_NUCLEO_COMMON ST_INTERFACES
Dependents: IHM03A1_ExampleFor1Motor HelloWorld_IHM03A1 IHM03A1_ExampleFor3Motors KYPHOS_Stepper_Motor_Control
Fork of X_NUCLEO_IHM03A1 by
Motor Control Library
Library to handle the X-NUCLEO-IHM03A1 Motor Control Expansion Board based on the Powerstep01 component.
It features the:
- read and write of Powerstep01 registers
- Nucleo and expansion board configuration (GPIOs, PWMs, IRQs, etc.)
- Powerstep01 application commands handling
- FLAG and BUSY interrupt handling (alarm reporting)
- Daisy chain handling
The API allows to easily:
- perform various positioning, moves and stops
- get/set or monitor the motor positions
- set home position and mark another position
- get/set minimum and maximum speed
- get current speed
- get/set acceleration and deceleration
- get/set the step mode (up to 1/128)
- get/set the control method
- get/set parameters for voltage mode driving
- get/set parameters for current mode driving
- get/set parameters for gate driving
- configure various protections such as overcurrent detection
- enable/disable alarms
- handle step-clock
- get system status
Daisy-Chain Configuration
The IHM03A1 board can be stacked up to three times so that the Powerstep01 components will be connected in daisy-chain configuration. For this purpose, some resistors must be correctly connected on the boards as depicted here below:
Platform compatibility
Compatible platforms have been tested with the default configuration provided by the HelloWorld_IHM03A1 example.
Diff: Components/PowerStep01/PowerStep01_config.h
- Revision:
- 5:e7dca8c6ae9f
- Parent:
- 4:f48e8d87553e
diff -r f48e8d87553e -r e7dca8c6ae9f Components/PowerStep01/PowerStep01_config.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Components/PowerStep01/PowerStep01_config.h Fri Mar 24 10:24:39 2017 +0000 @@ -0,0 +1,703 @@ +/** + ****************************************************************************** + * @file PowerStep01_config.h + * @author IPC Rennes + * @version V1.2.0 + * @date March 18th, 2016 + * @brief Predefines values for the Powerstep01 registers + * and for the devices parameters + * @note (C) COPYRIGHT 2016 STMicroelectronics + ****************************************************************************** + * @attention + * + * <h2><center>© COPYRIGHT(c) 2014 STMicroelectronics</center></h2> + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ + + +/* Define to prevent recursive inclusion -------------------------------------*/ + +#ifndef __POWERSTEP01_CONFIG_H +#define __POWERSTEP01_CONFIG_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Definitions ---------------------------------------------------------------*/ + +/** @addtogroup PowerStep01 + * @{ + */ + +/** @addtogroup Powerstep01_Exported_Defines + * @{ + */ + +/** @defgroup Predefined_Powerstep01_Registers_Values Predefined Powerstep01 Registers Values + * @{ + */ + +/// The maximum number of devices in the daisy chain +#define MAX_NUMBER_OF_DEVICES (3) + +/****************************************************************************/ +/* Device 0 */ +/****************************************************************************/ + +/**************************** Speed Profile *********************************/ +/// Register : ACC +/// Acceleration rate in step/s2, range 14.55 to 59590 steps/s^2 +#define POWERSTEP01_CONF_PARAM_ACC_DEVICE_0 (582) + +/// Register : DEC +/// Deceleration rate in step/s2, range 14.55 to 59590 steps/s^2 +#define POWERSTEP01_CONF_PARAM_DEC_DEVICE_0 (582) + +///Register : MAX_SPEED +/// Maximum speed in step/s, range 15.25 to 15610 steps/s +#define POWERSTEP01_CONF_PARAM_MAX_SPEED_DEVICE_0 (488) + +/// Register : MIN_SPEED +/// Minimum speed in step/s, range 0 to 976.3 steps/s +#define POWERSTEP01_CONF_PARAM_MIN_SPEED_DEVICE_0 (0) + +/// Register : FS_SPD +/// Full step speed in step/s, range 7.63 to 15625 steps/s +#define POWERSTEP01_CONF_PARAM_FS_SPD_DEVICE_0 (244.16) + +/// Register : FS_SPD - field : BOOST_MODE +/// Boost of the amplitude square wave, enum powerstep01_BoostMode_t +#define POWERSTEP01_CONF_PARAM_BOOST_MODE_DEVICE_0 (POWERSTEP01_BOOST_MODE_OFF) + + +/************************ Voltage mode parameters **************************/ +/// Register : KVAL_ACC +/// Acceleration duty cycle (torque) in %, range 0 to 99.6% +#define POWERSTEP01_CONF_PARAM_KVAL_ACC_DEVICE_0 (16.02) + +/// Register : KVAL_DEC +/// Deceleration duty cycle (torque) in %, range 0 to 99.6% +#define POWERSTEP01_CONF_PARAM_KVAL_DEC_DEVICE_0 (16.02) + +/// Register : KVAL_RUN +/// run duty cycle (torque) in %, range 0 to 99.6% +#define POWERSTEP01_CONF_PARAM_KVAL_RUN_DEVICE_0 (16.02) + +/// Register : KVAL_HOLD +/// Hold duty cycle (torque) in %, range 0 to 99.6% +#define POWERSTEP01_CONF_PARAM_KVAL_HOLD_DEVICE_0 (16.02) + +/// Register : CONFIG - field : EN_VSCOMP +/// Motor Supply Voltage Compensation enabling , enum powerstep01_ConfigEnVscomp_t +#define POWERSTEP01_CONF_PARAM_VS_COMP_DEVICE_0 (POWERSTEP01_CONFIG_VS_COMP_DISABLE) + +/// Register : MIN_SPEED - field : LSPD_OPT +/// Low speed optimization bit, enum powerstep01_LspdOpt_t +#define POWERSTEP01_CONF_PARAM_LSPD_BIT_DEVICE_0 (POWERSTEP01_LSPD_OPT_OFF) + +/// Register : K_THERM +/// Thermal compensation param, range 1 to 1.46875 +#define POWERSTEP01_CONF_PARAM_K_THERM_DEVICE_0 (1) + +/// Register : INT_SPEED +/// Intersect speed settings for BEMF compensation in steps/s, range 0 to 3906 steps/s +#define POWERSTEP01_CONF_PARAM_INT_SPD_DEVICE_0 (61.512) + +/// Register : ST_SLP +/// BEMF start slope settings for BEMF compensation in % step/s, range 0 to 0.4% s/step +#define POWERSTEP01_CONF_PARAM_ST_SLP_DEVICE_0 (0.03815) + +/// Register : FN_SLP_ACC +/// BEMF final acc slope settings for BEMF compensation in % step/s, range 0 to 0.4% s/step +#define POWERSTEP01_CONF_PARAM_FN_SLP_ACC_DEVICE_0 (0.06256) + +/// Register : FN_SLP_DEC +/// BEMF final dec slope settings for BEMF compensation in % step/s, range 0 to 0.4% s/step +#define POWERSTEP01_CONF_PARAM_FN_SLP_DEC_DEVICE_0 (0.06256) + +/// Register : CONFIG - field : F_PWM_INT +/// PWM Frequency Integer division, enum powerstep01_ConfigFPwmInt_t +#define POWERSTEP01_CONF_PARAM_PWM_DIV_DEVICE_0 (POWERSTEP01_CONFIG_PWM_DIV_2) + +/// Register : CONFIG - field : F_PWM_DEC +/// PWM Frequency Integer Multiplier, enum powerstep01_ConfigFPwmDec_t +#define POWERSTEP01_CONF_PARAM_PWM_MUL_DEVICE_0 (POWERSTEP01_CONFIG_PWM_MUL_1) + +/******************** Advance current control parameters *********************/ + +/// Register : TVAL_ACC +/// Acceleration torque in mV, range from 7.8mV to 1000 mV +#define POWERSTEP01_CONF_PARAM_TVAL_ACC_DEVICE_0 (328.12) + +/// Register : TVAL_DEC +/// Deceleration torque in mV, range from 7.8mV to 1000 mV +#define POWERSTEP01_CONF_PARAM_TVAL_DEC_DEVICE_0 (328.12) + +/// Register : TVAL_RUN +/// Running torque in mV, range from 7.8mV to 1000 mV +#define POWERSTEP01_CONF_PARAM_TVAL_RUN_DEVICE_0 (328.12) + +/// Register : TVAL_HOLD +/// Holding torque in mV, range from 7.8mV to 1000 mV +#define POWERSTEP01_CONF_PARAM_TVAL_HOLD_DEVICE_0 (328.12) + +/// Register : CONFIG - field : EN_TQREG +/// External torque regulation enabling , enum powerstep01_ConfigEnTqReg_t +#define POWERSTEP01_CONF_PARAM_TQ_REG_DEVICE_0 (POWERSTEP01_CONFIG_TQ_REG_TVAL_USED) + +/// Register : CONFIG - field : PRED_EN +/// Predictive current enabling , enum powerstep01_ConfigPredEn_t +#define POWERSTEP01_CONF_PARAM_PRED_DEVICE_0 (POWERSTEP01_CONFIG_PRED_DISABLE) + +/// Register : TON_MIN +/// Minimum on-time in us, range 0.5us to 64us +#define POWERSTEP01_CONF_PARAM_TON_MIN_DEVICE_0 (3.0) + +/// Register : TOFF_MIN +/// Minimum off-time in us, range 0.5us to 64us +#define POWERSTEP01_CONF_PARAM_TOFF_MIN_DEVICE_0 (21.0) + +/// Register : T_FAST - field: TOFF_FAST +/// Maximum fast decay time , enum powerstep01_ToffFast_t +#define POWERSTEP01_CONF_PARAM_TOFF_FAST_DEVICE_0 (POWERSTEP01_TOFF_FAST_8us) + +/// Register : T_FAST - field: FAST_STEP +/// Maximum fall step time , enum powerstep01_FastStep_t +#define POWERSTEP01_CONF_PARAM_FAST_STEP_DEVICE_0 (POWERSTEP01_FAST_STEP_12us) + +/// Register : CONFIG - field : TSW +/// Switching period, enum powerstep01_ConfigTsw_t +#define POWERSTEP01_CONF_PARAM_TSW_DEVICE_0 (POWERSTEP01_CONFIG_TSW_048us) + +/****************************** Gate Driving **********************************/ + +/// Register : GATECFG1 - field : IGATE +/// Gate sink/source current via enum powerstep01_Igate_t +#define POWERSTEP01_CONF_PARAM_IGATE_DEVICE_0 (POWERSTEP01_IGATE_64mA) + +/// Register : CONFIG - field : VCCVAL +/// VCC Val, enum powerstep01_ConfigVccVal_t +#define POWERSTEP01_CONF_PARAM_VCCVAL_DEVICE_0 (POWERSTEP01_CONFIG_VCCVAL_15V) + +/// Register : CONFIG - field : UVLOVAL +/// UVLO Threshold via powerstep01_ConfigUvLoVal_t +#define POWERSTEP01_CONF_PARAM_UVLOVAL_DEVICE_0 (POWERSTEP01_CONFIG_UVLOVAL_LOW) + +/// Register : GATECFG1 - field : TBOOST +/// Duration of the overboost phase during gate turn-off via enum powerstep01_Tboost_t +#define POWERSTEP01_CONF_PARAM_TBOOST_DEVICE_0 (POWERSTEP01_TBOOST_0ns) + +/// Register : GATECFG1 - field : TCC +/// Controlled current time via enum powerstep01_Tcc_t +#define POWERSTEP01_CONF_PARAM_TCC_DEVICE_0 (POWERSTEP01_TCC_500ns) + +/// Duration of the blanking time via enum powerstep01_TBlank_t +#define POWERSTEP01_CONF_PARAM_TBLANK_DEVICE_0 (POWERSTEP01_TBLANK_375ns) + +/// Register : GATECFG2 - field : TDT +/// Duration of the dead time via enum powerstep01_Tdt_t +#define POWERSTEP01_CONF_PARAM_TDT_DEVICE_0 (POWERSTEP01_TDT_125ns) + +/******************************* Others *************************************/ + +/// Register : OCD_TH +/// Overcurrent threshold settings via enum powerstep01_OcdTh_t +#define POWERSTEP01_CONF_PARAM_OCD_TH_DEVICE_0 (POWERSTEP01_OCD_TH_281_25mV) + +/// Register : CONFIG - field : OC_SD +/// Over current shutwdown enabling, enum powerstep01_ConfigOcSd_t +#define POWERSTEP01_CONF_PARAM_OC_SD_DEVICE_0 (POWERSTEP01_CONFIG_OC_SD_DISABLE) + +/// Register : STALL_TH +/// Stall threshold settings in mV, range 31.25mV to 1000mV +#define POWERSTEP01_CONF_PARAM_STALL_TH_DEVICE_0 (531.25) + +/// Register : ALARM_EN +/// Alarm settings via bitmap enum powerstep01_AlarmEn_t +#define POWERSTEP01_CONF_PARAM_ALARM_EN_DEVICE_0 (POWERSTEP01_ALARM_EN_OVERCURRENT | \ + POWERSTEP01_ALARM_EN_THERMAL_SHUTDOWN | \ + POWERSTEP01_ALARM_EN_THERMAL_WARNING | \ + POWERSTEP01_ALARM_EN_UVLO | \ + POWERSTEP01_ALARM_EN_STALL_DETECTION | \ + POWERSTEP01_ALARM_EN_SW_TURN_ON | \ + POWERSTEP01_ALARM_EN_WRONG_NPERF_CMD) + +/// Register : CONFIG - field : SW_MODE +/// External switch hard stop interrupt mode, enum powerstep01_ConfigSwMode_t +#define POWERSTEP01_CONF_PARAM_SW_MODE_DEVICE_0 (POWERSTEP01_CONFIG_SW_HARD_STOP) + +/// Register : STEP_MODE - field : STEP_MODE +/// Step mode settings via enum motorStepMode_t +#define POWERSTEP01_CONF_PARAM_STEP_MODE_DEVICE_0 (STEP_MODE_1_16) + +/// Register : STEP_MODE - field : CM_VM +/// Current mode or Voltage mode via enum powerstep01_CmVm_t +#define POWERSTEP01_CONF_PARAM_CM_VM_DEVICE_0 (POWERSTEP01_CM_VM_CURRENT) + +/// Register : STEP_MODE - Field : SYNC_MODE and SYNC_EN +/// Synch. Mode settings via enum powerstep01_SyncSel_t +#define POWERSTEP01_CONF_PARAM_SYNC_MODE_DEVICE_0 (POWERSTEP01_SYNC_SEL_DISABLED) + +/// Register : CONFIG - field : OSC_CLK_SEL +/// Clock setting , enum powerstep01_ConfigOscMgmt_t +#define POWERSTEP01_CONF_PARAM_CLOCK_SETTING_DEVICE_0 (POWERSTEP01_CONFIG_INT_16MHZ_OSCOUT_2MHZ) + +/// Register : GATECFG1 - field : WD_EN +/// External clock watchdog, enum powerstep01_WdEn_t +#define POWERSTEP01_CONF_PARAM_WD_EN_DEVICE_0 (POWERSTEP01_WD_EN_DISABLE) + +/****************************************************************************/ +/* Device 1 */ +/****************************************************************************/ + +/**************************** Speed Profile *********************************/ +/// Register : ACC +/// Acceleration rate in step/s2, range 14.55 to 59590 steps/s^2 +#define POWERSTEP01_CONF_PARAM_ACC_DEVICE_1 (2008.16) + +/// Register : DEC +/// Deceleration rate in step/s2, range 14.55 to 59590 steps/s^2 +#define POWERSTEP01_CONF_PARAM_DEC_DEVICE_1 (2008.16) + +///Register : MAX_SPEED +/// Maximum speed in step/s, range 15.25 to 15610 steps/s +#define POWERSTEP01_CONF_PARAM_MAX_SPEED_DEVICE_1 (991.82) + +/// Register : MIN_SPEED +/// Minimum speed in step/s, range 0 to 976.3 steps/s +#define POWERSTEP01_CONF_PARAM_MIN_SPEED_DEVICE_1 (0) + +/// Register : FS_SPD +/// Full step speed in step/s, range 7.63 to 15625 steps/s +#define POWERSTEP01_CONF_PARAM_FS_SPD_DEVICE_1 (595.09) + +/// Register : FS_SPD - field : BOOST_MODE +/// Boost of the amplitude square wave, enum powerstep01_BoostMode_t +#define POWERSTEP01_CONF_PARAM_BOOST_MODE_DEVICE_1 (POWERSTEP01_BOOST_MODE_OFF) + + +/************************ Voltage mode parameters **************************/ +/// Register : KVAL_ACC +/// Acceleration duty cycle (torque) in %, range 0 to 99.6% +#define POWERSTEP01_CONF_PARAM_KVAL_ACC_DEVICE_1 (16.02) + +/// Register : KVAL_DEC +/// Deceleration duty cycle (torque) in %, range 0 to 99.6% +#define POWERSTEP01_CONF_PARAM_KVAL_DEC_DEVICE_1 (16.02) + +/// Register : KVAL_RUN +/// run duty cycle (torque) in %, range 0 to 99.6% +#define POWERSTEP01_CONF_PARAM_KVAL_RUN_DEVICE_1 (16.02) + +/// Register : KVAL_HOLD +/// Hold duty cycle (torque) in %, range 0 to 99.6% +#define POWERSTEP01_CONF_PARAM_KVAL_HOLD_DEVICE_1 (16.02) + +/// Register : CONFIG - field : EN_VSCOMP +/// Motor Supply Voltage Compensation enabling , enum powerstep01_ConfigEnVscomp_t +#define POWERSTEP01_CONF_PARAM_VS_COMP_DEVICE_1 (POWERSTEP01_CONFIG_VS_COMP_DISABLE) + +/// Register : MIN_SPEED - field : LSPD_OPT +/// Low speed optimization bit, enum powerstep01_LspdOpt_t +#define POWERSTEP01_CONF_PARAM_LSPD_BIT_DEVICE_1 (POWERSTEP01_LSPD_OPT_OFF) + +/// Register : K_THERM +/// Thermal compensation param, range 1 to 1.46875 +#define POWERSTEP01_CONF_PARAM_K_THERM_DEVICE_1 (1) + +/// Register : INT_SPEED +/// Intersect speed settings for BEMF compensation in steps/s, range 0 to 3906 steps/s +#define POWERSTEP01_CONF_PARAM_INT_SPD_DEVICE_1 (61.512) + +/// Register : ST_SLP +/// BEMF start slope settings for BEMF compensation in % step/s, range 0 to 0.4% s/step +#define POWERSTEP01_CONF_PARAM_ST_SLP_DEVICE_1 (0.03815) + +/// Register : FN_SLP_ACC +/// BEMF final acc slope settings for BEMF compensation in % step/s, range 0 to 0.4% s/step +#define POWERSTEP01_CONF_PARAM_FN_SLP_ACC_DEVICE_1 (0.06256) + +/// Register : FN_SLP_DEC +/// BEMF final dec slope settings for BEMF compensation in % step/s, range 0 to 0.4% s/step +#define POWERSTEP01_CONF_PARAM_FN_SLP_DEC_DEVICE_1 (0.06256) + +/// Register : CONFIG - field : F_PWM_INT +/// PWM Frequency Integer division, enum powerstep01_ConfigFPwmInt_t +#define POWERSTEP01_CONF_PARAM_PWM_DIV_DEVICE_1 (POWERSTEP01_CONFIG_PWM_DIV_2) + +/// Register : CONFIG - field : F_PWM_DEC +/// PWM Frequency Integer Multiplier, enum powerstep01_ConfigFPwmDec_t +#define POWERSTEP01_CONF_PARAM_PWM_MUL_DEVICE_1 (POWERSTEP01_CONFIG_PWM_MUL_1) + +/******************** Advance current control parameters *********************/ + +/// Register : TVAL_ACC +/// Acceleration torque in mV, range from 7.8mV to 1000 mV +#define POWERSTEP01_CONF_PARAM_TVAL_ACC_DEVICE_1 (328.12) + +/// Register : TVAL_DEC +/// Deceleration torque in mV, range from 7.8mV to 1000 mV +#define POWERSTEP01_CONF_PARAM_TVAL_DEC_DEVICE_1 (328.12) + +/// Register : TVAL_RUN +/// Running torque in mV, range from 7.8mV to 1000 mV +#define POWERSTEP01_CONF_PARAM_TVAL_RUN_DEVICE_1 (328.12) + +/// Register : TVAL_HOLD +/// Holding torque in mV, range from 7.8mV to 1000 mV +#define POWERSTEP01_CONF_PARAM_TVAL_HOLD_DEVICE_1 (328.12) + +/// Register : CONFIG - field : EN_TQREG +/// External torque regulation enabling , enum powerstep01_ConfigEnTqReg_t +#define POWERSTEP01_CONF_PARAM_TQ_REG_DEVICE_1 (POWERSTEP01_CONFIG_TQ_REG_TVAL_USED) + +/// Register : CONFIG - field : PRED_EN +/// Predictive current enabling , enum powerstep01_ConfigPredEn_t +#define POWERSTEP01_CONF_PARAM_PRED_DEVICE_1 (POWERSTEP01_CONFIG_PRED_DISABLE) + +/// Register : TON_MIN +/// Minimum on-time in us, range 0.5us to 64us +#define POWERSTEP01_CONF_PARAM_TON_MIN_DEVICE_1 (3.0) + +/// Register : TOFF_MIN +/// Minimum off-time in us, range 0.5us to 64us +#define POWERSTEP01_CONF_PARAM_TOFF_MIN_DEVICE_1 (21.0) + +/// Register : T_FAST - field: TOFF_FAST +/// Maximum fast decay time , enum powerstep01_ToffFast_t +#define POWERSTEP01_CONF_PARAM_TOFF_FAST_DEVICE_1 (POWERSTEP01_TOFF_FAST_8us) + +/// Register : T_FAST - field: FAST_STEP +/// Maximum fall step time , enum powerstep01_FastStep_t +#define POWERSTEP01_CONF_PARAM_FAST_STEP_DEVICE_1 (POWERSTEP01_FAST_STEP_12us) + +/// Register : CONFIG - field : TSW +/// Switching period, enum powerstep01_ConfigTsw_t +#define POWERSTEP01_CONF_PARAM_TSW_DEVICE_1 (POWERSTEP01_CONFIG_TSW_048us) + +/****************************** Gate Driving **********************************/ + +/// Register : GATECFG1 - field : IGATE +/// Gate sink/source current via enum powerstep01_Igate_t +#define POWERSTEP01_CONF_PARAM_IGATE_DEVICE_1 (POWERSTEP01_IGATE_64mA) + +/// Register : CONFIG - field : VCCVAL +/// VCC Val, enum powerstep01_ConfigVccVal_t +#define POWERSTEP01_CONF_PARAM_VCCVAL_DEVICE_1 (POWERSTEP01_CONFIG_VCCVAL_15V) + +/// Register : CONFIG - field : UVLOVAL +/// UVLO Threshold via powerstep01_ConfigUvLoVal_t +#define POWERSTEP01_CONF_PARAM_UVLOVAL_DEVICE_1 (POWERSTEP01_CONFIG_UVLOVAL_LOW) + +/// Register : GATECFG1 - field : TBOOST +/// Duration of the overboost phase during gate turn-off via enum powerstep01_Tboost_t +#define POWERSTEP01_CONF_PARAM_TBOOST_DEVICE_1 (POWERSTEP01_TBOOST_0ns) + +/// Register : GATECFG1 - field : TCC +/// Controlled current time via enum powerstep01_Tcc_t +#define POWERSTEP01_CONF_PARAM_TCC_DEVICE_1 (POWERSTEP01_TCC_500ns) + +/// Duration of the blanking time via enum powerstep01_TBlank_t +#define POWERSTEP01_CONF_PARAM_TBLANK_DEVICE_1 (POWERSTEP01_TBLANK_375ns) + +/// Register : GATECFG2 - field : TDT +/// Duration of the dead time via enum powerstep01_Tdt_t +#define POWERSTEP01_CONF_PARAM_TDT_DEVICE_1 (POWERSTEP01_TDT_125ns) + +/******************************* Others *************************************/ + +/// Register : OCD_TH +/// Overcurrent threshold settings via enum powerstep01_OcdTh_t +#define POWERSTEP01_CONF_PARAM_OCD_TH_DEVICE_1 (POWERSTEP01_OCD_TH_281_25mV) + +/// Register : CONFIG - field : OC_SD +/// Over current shutwdown enabling, enum powerstep01_ConfigOcSd_t +#define POWERSTEP01_CONF_PARAM_OC_SD_DEVICE_1 (POWERSTEP01_CONFIG_OC_SD_DISABLE) + +/// Register : STALL_TH +/// Stall threshold settings in mV, range 31.25mV to 1000mV +#define POWERSTEP01_CONF_PARAM_STALL_TH_DEVICE_1 (531.25) + +/// Register : ALARM_EN +/// Alarm settings via bitmap enum powerstep01_AlarmEn_t +#define POWERSTEP01_CONF_PARAM_ALARM_EN_DEVICE_1 (POWERSTEP01_ALARM_EN_OVERCURRENT | \ + POWERSTEP01_ALARM_EN_THERMAL_SHUTDOWN | \ + POWERSTEP01_ALARM_EN_THERMAL_WARNING | \ + POWERSTEP01_ALARM_EN_UVLO | \ + POWERSTEP01_ALARM_EN_STALL_DETECTION | \ + POWERSTEP01_ALARM_EN_SW_TURN_ON | \ + POWERSTEP01_ALARM_EN_WRONG_NPERF_CMD) + +/// Register : CONFIG - field : SW_MODE +/// External switch hard stop interrupt mode, enum powerstep01_ConfigSwMode_t +#define POWERSTEP01_CONF_PARAM_SW_MODE_DEVICE_1 (POWERSTEP01_CONFIG_SW_HARD_STOP) + +/// Register : STEP_MODE - field : STEP_MODE +/// Step mode settings via enum powerstep01_StepSel_t +#define POWERSTEP01_CONF_PARAM_STEP_MODE_DEVICE_1 (STEP_MODE_1_16) + +/// Register : STEP_MODE - field : CM_VM +/// Current mode or Voltage mode via enum powerstep01_CmVm_t +#define POWERSTEP01_CONF_PARAM_CM_VM_DEVICE_1 (POWERSTEP01_CM_VM_CURRENT) + +/// Register : STEP_MODE - Field : SYNC_MODE and SYNC_EN +/// Synch. Mode settings via enum powerstep01_SyncSel_t +#define POWERSTEP01_CONF_PARAM_SYNC_MODE_DEVICE_1 (POWERSTEP01_SYNC_SEL_DISABLED) + +/// Register : CONFIG - field : OSC_CLK_SEL +/// Clock setting , enum powerstep01_ConfigOscMgmt_t +#define POWERSTEP01_CONF_PARAM_CLOCK_SETTING_DEVICE_1 (POWERSTEP01_CONFIG_INT_16MHZ_OSCOUT_2MHZ) + +/// Register : GATECFG1 - field : WD_EN +/// External clock watchdog, enum powerstep01_WdEn_t +#define POWERSTEP01_CONF_PARAM_WD_EN_DEVICE_1 (POWERSTEP01_WD_EN_DISABLE) + +/****************************************************************************/ +/* Device 2 */ +/****************************************************************************/ + +/**************************** Speed Profile *********************************/ +/// Register : ACC +/// Acceleration rate in step/s2, range 14.55 to 59590 steps/s^2 +#define POWERSTEP01_CONF_PARAM_ACC_DEVICE_2 (2008.16) + +/// Register : DEC +/// Deceleration rate in step/s2, range 14.55 to 59590 steps/s^2 +#define POWERSTEP01_CONF_PARAM_DEC_DEVICE_2 (2008.16) + +///Register : MAX_SPEED +/// Maximum speed in step/s, range 15.25 to 15610 steps/s +#define POWERSTEP01_CONF_PARAM_MAX_SPEED_DEVICE_2 (991.82) + +/// Register : MIN_SPEED +/// Minimum speed in step/s, range 0 to 976.3 steps/s +#define POWERSTEP01_CONF_PARAM_MIN_SPEED_DEVICE_2 (0) + +/// Register : FS_SPD +/// Full step speed in step/s, range 7.63 to 15625 steps/s +#define POWERSTEP01_CONF_PARAM_FS_SPD_DEVICE_2 (595.09) + +/// Register : FS_SPD - field : BOOST_MODE +/// Boost of the amplitude square wave, enum powerstep01_BoostMode_t +#define POWERSTEP01_CONF_PARAM_BOOST_MODE_DEVICE_2 (POWERSTEP01_BOOST_MODE_OFF) + + +/************************ Voltage mode parameters **************************/ +/// Register : KVAL_ACC +/// Acceleration duty cycle (torque) in %, range 0 to 99.6% +#define POWERSTEP01_CONF_PARAM_KVAL_ACC_DEVICE_2 (16.02) + +/// Register : KVAL_DEC +/// Deceleration duty cycle (torque) in %, range 0 to 99.6% +#define POWERSTEP01_CONF_PARAM_KVAL_DEC_DEVICE_2 (16.02) + +/// Register : KVAL_RUN +/// run duty cycle (torque) in %, range 0 to 99.6% +#define POWERSTEP01_CONF_PARAM_KVAL_RUN_DEVICE_2 (16.02) + +/// Register : KVAL_HOLD +/// Hold duty cycle (torque) in %, range 0 to 99.6% +#define POWERSTEP01_CONF_PARAM_KVAL_HOLD_DEVICE_2 (16.02) + +/// Register : CONFIG - field : EN_VSCOMP +/// Motor Supply Voltage Compensation enabling , enum powerstep01_ConfigEnVscomp_t +#define POWERSTEP01_CONF_PARAM_VS_COMP_DEVICE_2 (POWERSTEP01_CONFIG_VS_COMP_DISABLE) + +/// Register : MIN_SPEED - field : LSPD_OPT +/// Low speed optimization bit, enum powerstep01_LspdOpt_t +#define POWERSTEP01_CONF_PARAM_LSPD_BIT_DEVICE_2 (POWERSTEP01_LSPD_OPT_OFF) + +/// Register : K_THERM +/// Thermal compensation param, range 1 to 1.46875 +#define POWERSTEP01_CONF_PARAM_K_THERM_DEVICE_2 (1) + +/// Register : INT_SPEED +/// Intersect speed settings for BEMF compensation in steps/s, range 0 to 3906 steps/s +#define POWERSTEP01_CONF_PARAM_INT_SPD_DEVICE_2 (61.512) + +/// Register : ST_SLP +/// BEMF start slope settings for BEMF compensation in % step/s, range 0 to 0.4% s/step +#define POWERSTEP01_CONF_PARAM_ST_SLP_DEVICE_2 (0.03815) + +/// Register : FN_SLP_ACC +/// BEMF final acc slope settings for BEMF compensation in % step/s, range 0 to 0.4% s/step +#define POWERSTEP01_CONF_PARAM_FN_SLP_ACC_DEVICE_2 (0.06256) + +/// Register : FN_SLP_DEC +/// BEMF final dec slope settings for BEMF compensation in % step/s, range 0 to 0.4% s/step +#define POWERSTEP01_CONF_PARAM_FN_SLP_DEC_DEVICE_2 (0.06256) + +/// Register : CONFIG - field : F_PWM_INT +/// PWM Frequency Integer division, enum powerstep01_ConfigFPwmInt_t +#define POWERSTEP01_CONF_PARAM_PWM_DIV_DEVICE_2 (POWERSTEP01_CONFIG_PWM_DIV_2) + +/// Register : CONFIG - field : F_PWM_DEC +/// PWM Frequency Integer Multiplier, enum powerstep01_ConfigFPwmDec_t +#define POWERSTEP01_CONF_PARAM_PWM_MUL_DEVICE_2 (POWERSTEP01_CONFIG_PWM_MUL_1) + +/******************** Advance current control parameters *********************/ + +/// Register : TVAL_ACC +/// Acceleration torque in mV, range from 7.8mV to 1000 mV +#define POWERSTEP01_CONF_PARAM_TVAL_ACC_DEVICE_2 (328.12) + +/// Register : TVAL_DEC +/// Deceleration torque in mV, range from 7.8mV to 1000 mV +#define POWERSTEP01_CONF_PARAM_TVAL_DEC_DEVICE_2 (328.12) + +/// Register : TVAL_RUN +/// Running torque in mV, range from 7.8mV to 1000 mV +#define POWERSTEP01_CONF_PARAM_TVAL_RUN_DEVICE_2 (328.12) + +/// Register : TVAL_HOLD +/// Holding torque in mV, range from 7.8mV to 1000 mV +#define POWERSTEP01_CONF_PARAM_TVAL_HOLD_DEVICE_2 (328.12) + +/// Register : CONFIG - field : EN_TQREG +/// External torque regulation enabling , enum powerstep01_ConfigEnTqReg_t +#define POWERSTEP01_CONF_PARAM_TQ_REG_DEVICE_2 (POWERSTEP01_CONFIG_TQ_REG_TVAL_USED) + +/// Register : CONFIG - field : PRED_EN +/// Predictive current enabling , enum powerstep01_ConfigPredEn_t +#define POWERSTEP01_CONF_PARAM_PRED_DEVICE_2 (POWERSTEP01_CONFIG_PRED_DISABLE) + +/// Register : TON_MIN +/// Minimum on-time in us, range 0.5us to 64us +#define POWERSTEP01_CONF_PARAM_TON_MIN_DEVICE_2 (3.0) + +/// Register : TOFF_MIN +/// Minimum off-time in us, range 0.5us to 64us +#define POWERSTEP01_CONF_PARAM_TOFF_MIN_DEVICE_2 (21.0) + +/// Register : T_FAST - field: TOFF_FAST +/// Maximum fast decay time , enum powerstep01_ToffFast_t +#define POWERSTEP01_CONF_PARAM_TOFF_FAST_DEVICE_2 (POWERSTEP01_TOFF_FAST_8us) + +/// Register : T_FAST - field: FAST_STEP +/// Maximum fall step time , enum powerstep01_FastStep_t +#define POWERSTEP01_CONF_PARAM_FAST_STEP_DEVICE_2 (POWERSTEP01_FAST_STEP_12us) + +/// Register : CONFIG - field : TSW +/// Switching period, enum powerstep01_ConfigTsw_t +#define POWERSTEP01_CONF_PARAM_TSW_DEVICE_2 (POWERSTEP01_CONFIG_TSW_048us) + +/****************************** Gate Driving **********************************/ + +/// Register : GATECFG1 - field : IGATE +/// Gate sink/source current via enum powerstep01_Igate_t +#define POWERSTEP01_CONF_PARAM_IGATE_DEVICE_2 (POWERSTEP01_IGATE_64mA) + +/// Register : CONFIG - field : VCCVAL +/// VCC Val, enum powerstep01_ConfigVccVal_t +#define POWERSTEP01_CONF_PARAM_VCCVAL_DEVICE_2 (POWERSTEP01_CONFIG_VCCVAL_15V) + +/// Register : CONFIG - field : UVLOVAL +/// UVLO Threshold via powerstep01_ConfigUvLoVal_t +#define POWERSTEP01_CONF_PARAM_UVLOVAL_DEVICE_2 (POWERSTEP01_CONFIG_UVLOVAL_LOW) + +/// Register : GATECFG1 - field : TBOOST +/// Duration of the overboost phase during gate turn-off via enum powerstep01_Tboost_t +#define POWERSTEP01_CONF_PARAM_TBOOST_DEVICE_2 (POWERSTEP01_TBOOST_0ns) + +/// Register : GATECFG1 - field : TCC +/// Controlled current time via enum powerstep01_Tcc_t +#define POWERSTEP01_CONF_PARAM_TCC_DEVICE_2 (POWERSTEP01_TCC_500ns) + +/// Duration of the blanking time via enum powerstep01_TBlank_t +#define POWERSTEP01_CONF_PARAM_TBLANK_DEVICE_2 (POWERSTEP01_TBLANK_375ns) + +/// Register : GATECFG2 - field : TDT +/// Duration of the dead time via enum powerstep01_Tdt_t +#define POWERSTEP01_CONF_PARAM_TDT_DEVICE_2 (POWERSTEP01_TDT_125ns) + +/******************************* Others *************************************/ + +/// Register : OCD_TH +/// Overcurrent threshold settings via enum powerstep01_OcdTh_t +#define POWERSTEP01_CONF_PARAM_OCD_TH_DEVICE_2 (POWERSTEP01_OCD_TH_281_25mV) + +/// Register : CONFIG - field : OC_SD +/// Over current shutwdown enabling, enum powerstep01_ConfigOcSd_t +#define POWERSTEP01_CONF_PARAM_OC_SD_DEVICE_2 (POWERSTEP01_CONFIG_OC_SD_DISABLE) + +/// Register : STALL_TH +/// Stall threshold settings in mV, range 31.25mV to 1000mV +#define POWERSTEP01_CONF_PARAM_STALL_TH_DEVICE_2 (531.25) + +/// Register : ALARM_EN +/// Alarm settings via bitmap enum powerstep01_AlarmEn_t +#define POWERSTEP01_CONF_PARAM_ALARM_EN_DEVICE_2 (POWERSTEP01_ALARM_EN_OVERCURRENT | \ + POWERSTEP01_ALARM_EN_THERMAL_SHUTDOWN | \ + POWERSTEP01_ALARM_EN_THERMAL_WARNING | \ + POWERSTEP01_ALARM_EN_UVLO | \ + POWERSTEP01_ALARM_EN_STALL_DETECTION | \ + POWERSTEP01_ALARM_EN_SW_TURN_ON | \ + POWERSTEP01_ALARM_EN_WRONG_NPERF_CMD) + +/// Register : CONFIG - field : SW_MODE +/// External switch hard stop interrupt mode, enum powerstep01_ConfigSwMode_t +#define POWERSTEP01_CONF_PARAM_SW_MODE_DEVICE_2 (POWERSTEP01_CONFIG_SW_HARD_STOP) + +/// Register : STEP_MODE - field : STEP_MODE +/// Step mode settings via enum powerstep01_StepSel_t +#define POWERSTEP01_CONF_PARAM_STEP_MODE_DEVICE_2 (STEP_MODE_1_16) + +/// Register : STEP_MODE - field : CM_VM +/// Current mode or Voltage mode via enum powerstep01_CmVm_t +#define POWERSTEP01_CONF_PARAM_CM_VM_DEVICE_2 (POWERSTEP01_CM_VM_CURRENT) + +/// Register : STEP_MODE - Field : SYNC_MODE and SYNC_EN +/// Synch. Mode settings via enum powerstep01_SyncSel_t +#define POWERSTEP01_CONF_PARAM_SYNC_MODE_DEVICE_2 (POWERSTEP01_SYNC_SEL_DISABLED) + +/// Register : CONFIG - field : OSC_CLK_SEL +/// Clock setting , enum powerstep01_ConfigOscMgmt_t +#define POWERSTEP01_CONF_PARAM_CLOCK_SETTING_DEVICE_2 (POWERSTEP01_CONFIG_INT_16MHZ_OSCOUT_2MHZ) + +/// Register : GATECFG1 - field : WD_EN +/// External clock watchdog, enum powerstep01_WdEn_t +#define POWERSTEP01_CONF_PARAM_WD_EN_DEVICE_2 (POWERSTEP01_WD_EN_DISABLE) + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus + } +#endif + +#endif /* __POWERSTEP01_CONFIG_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/