diff --git a/src/main.c b/src/main.c index cc1cdf0..6184625 100644 --- a/src/main.c +++ b/src/main.c @@ -426,8 +426,6 @@ struct MPPState { fxp_t powerAccu; int32_t powerSamples; - - int32_t mppMaxPWM; }; #define MPP_TEST_IGNORE_DURATION 5 /* ms */ @@ -629,8 +627,6 @@ int main(void) power_state.power_avg = 0; power_state.temp_avg = fxp_from_int(-999); - mpp_state.mppMaxPWM = CONV_PWM_MAX; - /* initialize mpp_state */ mpp_state.maxPWM = CONV_PWM_MAX; mpp_state.refPWM = CONV_PWM_MAX; @@ -821,7 +817,7 @@ int main(void) } if(time_in_state > 1000 && power_state.vout_avg < VOLTAGE_THR_CV_TO_MPP) { - pwm = CONV_PWM_MAX * 8 / 10; + pwm = CONV_PWM_PERIOD * 8 / 10; operState = ConvMPP; } @@ -945,32 +941,18 @@ int main(void) case ConvMPP: mpp_run(time_in_state, &mpp_state, &power_state, &pwm); - if(pwm > mpp_state.mppMaxPWM) { - pwm = mpp_state.mppMaxPWM; - } else if(pwm < CONV_PWM_PERIOD/100) { - pwm = CONV_PWM_PERIOD/100; + if(pwm > CONV_PWM_MAX) { + pwm = CONV_PWM_MAX; + } else if(pwm < CONV_PWM_PERIOD/10) { + pwm = CONV_PWM_PERIOD/10; } timer_set_oc_value(TIM1, TIM_CH_CONV, pwm); - if((mpp_state.mppMaxPWM < CONV_PWM_MAX) && - time_in_state > 5000 && ((time_in_state % 3000) == 10)) { - mpp_state.mppMaxPWM++; - } - if(time_in_state > 5000 && power_state.current_avg < CURRENT_THRESHOLD) { operState = Bootstrap; nextState = ConvMPP; mpp_state.testIdx = -1; - - if(mpp_state.mppMaxPWM > CONV_PWM_MAX/50) { - mpp_state.mppMaxPWM -= 10; - } else { - // limit has gone too low -> retry at maximum - mpp_state.mppMaxPWM = CONV_PWM_MAX; - } - - pwm = mpp_state.mppMaxPWM; } if(power_state.vout_avg > MPP_MAX_VOLTAGE) { @@ -983,7 +965,6 @@ int main(void) if(power_state.vin_avg < power_state.vout_avg) { operState = Idle; - mpp_state.mppMaxPWM = CONV_PWM_MAX; } #ifdef DEBUG @@ -991,9 +972,6 @@ int main(void) debug_send_string("PWM: "); fxp_format_int(pwm, msg); debug_send_string(msg); - debug_send_string(" Limit: "); - fxp_format_int(mpp_state.mppMaxPWM, msg); - debug_send_string(msg); sentSomething = 1; } #endif