diff --git a/MotorControl/low_level.c b/MotorControl/low_level.c index 9a8f07e7..0095d587 100755 --- a/MotorControl/low_level.c +++ b/MotorControl/low_level.c @@ -1296,11 +1296,14 @@ void motor_thread(void const * argument) { #ifdef STANDALONE_MODE //Only run tests on M0 for now - // if (motor == &motors[1]) { - // // TODO: figure out why M1 MOE must be enabled to run M0 correctly - // __HAL_TIM_MOE_ENABLE(motor->motor_timer); - // FOC_voltage_loop(motor, 0.0f, 0.0f); - // } + if (motor == &motors[0]) { + for(;;) + osDelay(2); + // TODO: figure out why M1 MOE must be enabled to run M0 correctly + // osDelay(10); + __HAL_TIM_MOE_ENABLE(motor->motor_timer); + FOC_voltage_loop(motor, 0.0f, 0.0f); + } motor->do_calibration = true; motor->enable_control = true; diff --git a/Odrive.ioc b/Odrive.ioc index c49dbf77..d99a7c69 100755 --- a/Odrive.ioc +++ b/Odrive.ioc @@ -10,7 +10,7 @@ ADC1.EOCSelection=ADC_EOC_SINGLE_CONV ADC1.EnableAnalogWatchDog=false ADC1.ExternalTrigConv=ADC_SOFTWARE_START ADC1.ExternalTrigConvEdge=ADC_EXTERNALTRIGCONVEDGE_NONE -ADC1.ExternalTrigInjecConv=ADC_EXTERNALTRIGINJECCONV_T1_CC4 +ADC1.ExternalTrigInjecConv=ADC_EXTERNALTRIGINJECCONV_T1_TRGO ADC1.ExternalTrigInjecConvEdge=ADC_EXTERNALTRIGINJECCONVEDGE_RISING ADC1.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,NbrOfConversionFlag,master,ClockPrescaler,Resolution,DataAlign,ScanConvMode,ContinuousConvMode,DiscontinuousConvMode,DMAContinuousRequests,EOCSelection,NbrOfConversion,ExternalTrigConvEdge,InjNumberOfConversion,EnableAnalogWatchDog,Rank-1\#ChannelInjectedConversion,Channel-1\#ChannelInjectedConversion,SamplingTime-1\#ChannelInjectedConversion,InjectedOffset-1\#ChannelInjectedConversion,InjectedConvMode,ExternalTrigInjecConvEdge,ExternalTrigInjecConv,ExternalTrigConv ADC1.InjNumberOfConversion=1 @@ -36,7 +36,7 @@ ADC2.EOCSelection=ADC_EOC_SINGLE_CONV ADC2.EnableAnalogWatchDog=false ADC2.ExternalTrigConv=ADC_EXTERNALTRIGCONV_T8_TRGO ADC2.ExternalTrigConvEdge=ADC_EXTERNALTRIGCONVEDGE_RISING -ADC2.ExternalTrigInjecConv=ADC_EXTERNALTRIGINJECCONV_T1_CC4 +ADC2.ExternalTrigInjecConv=ADC_EXTERNALTRIGINJECCONV_T1_TRGO ADC2.ExternalTrigInjecConvEdge=ADC_EXTERNALTRIGINJECCONVEDGE_RISING ADC2.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,NbrOfConversionFlag,ClockPrescaler,Resolution,DataAlign,ScanConvMode,ContinuousConvMode,DiscontinuousConvMode,DMAContinuousRequests,EOCSelection,NbrOfConversion,InjNumberOfConversion,EnableAnalogWatchDog,Rank-1\#ChannelInjectedConversion,Channel-1\#ChannelInjectedConversion,SamplingTime-1\#ChannelInjectedConversion,InjectedOffset-1\#ChannelInjectedConversion,ExternalTrigInjecConvEdge,ExternalTrigConvEdge,InjectedConvMode,ExternalTrigInjecConv,ExternalTrigConv ADC2.InjNumberOfConversion=1 @@ -61,7 +61,7 @@ ADC3.EOCSelection=ADC_EOC_SINGLE_CONV ADC3.EnableAnalogWatchDog=false ADC3.ExternalTrigConv=ADC_EXTERNALTRIGCONV_T8_TRGO ADC3.ExternalTrigConvEdge=ADC_EXTERNALTRIGCONVEDGE_RISING -ADC3.ExternalTrigInjecConv=ADC_EXTERNALTRIGINJECCONV_T1_CC4 +ADC3.ExternalTrigInjecConv=ADC_EXTERNALTRIGINJECCONV_T1_TRGO ADC3.ExternalTrigInjecConvEdge=ADC_EXTERNALTRIGINJECCONVEDGE_RISING ADC3.IPParameters=Rank-7\#ChannelRegularConversion,Channel-7\#ChannelRegularConversion,SamplingTime-7\#ChannelRegularConversion,NbrOfConversionFlag,ClockPrescaler,Resolution,DataAlign,ScanConvMode,ContinuousConvMode,DiscontinuousConvMode,DMAContinuousRequests,EOCSelection,NbrOfConversion,ExternalTrigConvEdge,InjNumberOfConversion,EnableAnalogWatchDog,Rank-8\#ChannelInjectedConversion,Channel-8\#ChannelInjectedConversion,SamplingTime-8\#ChannelInjectedConversion,InjectedOffset-8\#ChannelInjectedConversion,ExternalTrigInjecConvEdge,InjectedConvMode,ExternalTrigInjecConv,ExternalTrigConv ADC3.InjNumberOfConversion=1 diff --git a/Src/adc.c b/Src/adc.c index 593f9ffe..00024a98 100644 --- a/Src/adc.c +++ b/Src/adc.c @@ -102,7 +102,7 @@ void MX_ADC1_Init(void) sConfigInjected.InjectedNbrOfConversion = 1; sConfigInjected.InjectedSamplingTime = ADC_SAMPLETIME_3CYCLES; sConfigInjected.ExternalTrigInjecConvEdge = ADC_EXTERNALTRIGINJECCONVEDGE_RISING; - sConfigInjected.ExternalTrigInjecConv = ADC_EXTERNALTRIGINJECCONV_T1_CC4; + sConfigInjected.ExternalTrigInjecConv = ADC_EXTERNALTRIGINJECCONV_T1_TRGO; sConfigInjected.AutoInjectedConv = DISABLE; sConfigInjected.InjectedDiscontinuousConvMode = DISABLE; sConfigInjected.InjectedOffset = 0; @@ -154,7 +154,7 @@ void MX_ADC2_Init(void) sConfigInjected.InjectedNbrOfConversion = 1; sConfigInjected.InjectedSamplingTime = ADC_SAMPLETIME_3CYCLES; sConfigInjected.ExternalTrigInjecConvEdge = ADC_EXTERNALTRIGINJECCONVEDGE_RISING; - sConfigInjected.ExternalTrigInjecConv = ADC_EXTERNALTRIGINJECCONV_T1_CC4; + sConfigInjected.ExternalTrigInjecConv = ADC_EXTERNALTRIGINJECCONV_T1_TRGO; sConfigInjected.AutoInjectedConv = DISABLE; sConfigInjected.InjectedDiscontinuousConvMode = DISABLE; sConfigInjected.InjectedOffset = 0; @@ -206,7 +206,7 @@ void MX_ADC3_Init(void) sConfigInjected.InjectedNbrOfConversion = 1; sConfigInjected.InjectedSamplingTime = ADC_SAMPLETIME_3CYCLES; sConfigInjected.ExternalTrigInjecConvEdge = ADC_EXTERNALTRIGINJECCONVEDGE_RISING; - sConfigInjected.ExternalTrigInjecConv = ADC_EXTERNALTRIGINJECCONV_T1_CC4; + sConfigInjected.ExternalTrigInjecConv = ADC_EXTERNALTRIGINJECCONV_T1_TRGO; sConfigInjected.AutoInjectedConv = DISABLE; sConfigInjected.InjectedDiscontinuousConvMode = DISABLE; sConfigInjected.InjectedOffset = 0;