ШИМ и контроль угла отлажене на 417 более менее
Оптимизированы конфиг дефайны - в мкс и мс, а не тиках
This commit is contained in:
@@ -33,7 +33,7 @@
|
||||
#define UPP_SIMULATE_I ///< Симулировт токи а не брать с АЦП
|
||||
|
||||
/**
|
||||
* @addtogroup UPP_DEFAULT_PARAMS Default params for external flash
|
||||
* @addtogroup UPP_PARAMS_DEFAULT Default params for external flash
|
||||
* @ingroup UPP_CONFIG
|
||||
* @brief Дефолтные параметры для внешней памяти. Они применятся по команде или по ошибке
|
||||
* @details Префиксы
|
||||
@@ -41,11 +41,10 @@
|
||||
*/
|
||||
|
||||
|
||||
/* Номинальные параметры */
|
||||
/* Уставки по температурам */
|
||||
#define SETPOINT_TEMP_WARN 70
|
||||
#define SETPOINT_TEMP_ERR 85
|
||||
|
||||
|
||||
/* Номинальные параметры */
|
||||
#define NOM_PHASE_NUMB 3
|
||||
#define NOM_U_V_DEFAULT 690
|
||||
@@ -78,7 +77,7 @@
|
||||
#define ANGLE_MAX_PERCENT_DEFAULT 0.8
|
||||
#define ANGLE_MIN_PERCENT_DEFAULT 0.1
|
||||
#define ANGLE_PID_KP_COEF_DEFAULT 1.0
|
||||
#define ANGLE_PID_KI_COEF_DEFAULT 0.1
|
||||
#define ANGLE_PID_KI_COEF_DEFAULT 0.01
|
||||
#define ANGLE_PID_KD_COEF_DEFAULT 0
|
||||
#define ANGLE_REF_ALPHA_COEF_DEFAULT 0.0001
|
||||
|
||||
@@ -99,7 +98,7 @@
|
||||
#define PWM_THYR_FREQUENCY_HZ_DEFAULT 20000
|
||||
#define PWM_THYR_PULSE_NUMBER_DEFAULT 20
|
||||
|
||||
/** //UPP_DEFAULT_PARAMS
|
||||
/** //UPP_PARAMS_DEFAULT
|
||||
* @}
|
||||
*/
|
||||
|
||||
@@ -111,19 +110,18 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
/* Периоды вызова всякого */
|
||||
#define PM_ADC_PERIOD_US 30 ///< Период опроса АЦП в мкс
|
||||
#define PM_SLOW_PERIOD_CNT 20 ///< Период обновления медленных расчетов тиках @ref PM_ADC_PERIOD_US
|
||||
#define PM_TEMP_SLOW_PERIOD_CNT 200 ///< Период обновления датчиков температуры в тиках @ref PM_SLOW_PERIOD_CNT
|
||||
#define PM_F_SLOW_PERIOD_CNT 2000 ///< Период обновления частоты в тиках @ref PM_SLOW_PERIOD_CNT
|
||||
|
||||
#define UPP_SLOW_TICKS_FOR_INIT 20000 ///< Сколько тиков ждать медленных измерений ждать перед переходом в готовность
|
||||
/* Периоды обновления всякого */
|
||||
#define PM_ADC_PERIOD_US 30 ///< Период опроса АЦП в мкс
|
||||
#define PM_SLOW_PERIOD_US 500 ///< Период обновления медленных расчетов в мкс (чтобы делилось на @ref PM_ADC_PERIOD_US)
|
||||
#define PM_TEMP_SLOW_PERIOD_MS 1000 ///< Период опроса АЦП в мс
|
||||
#define PM_F_SLOW_PERIOD_MS 40 ///< Период обновления частоты в мс
|
||||
#define UPP_INIT_BEFORE_READY_MS 2000 ///< Сколько сканировать сеть, перед выставлением состояния готовности
|
||||
|
||||
/* Частоты таймеров в МГц*/
|
||||
#define US_TIM5_FREQ_MHZ 90 ///< Частота тиков таймера ШИМ (1-4 каналы)
|
||||
#define ADC_TIM8_FREQ_MZH 180 ///< Частота тиков таймера АЦП
|
||||
#define PWM_TIM1_FREQ_MHZ 180 ///< Частота тиков таймера ШИМ (1-4 каналы)
|
||||
#define PWM_TIM3_FREQ_MHZ 90 ///< Частота тиков таймера ШИМ (5-6 каналы)
|
||||
#define PWM_TIM8_FREQ_MHZ 180 ///< Частота тиков таймера ШИМ (5-6 каналы)
|
||||
#define US_TIM5_FREQ_MHZ 90 ///< Частота тиков микросекундного таймера
|
||||
#define ADC_TIM3_FREQ_MZH 90 ///< Частота тиков таймера АЦП
|
||||
#define ANGLE_TIM2_FREQ_MHZ 90 ///< Частота тиков таймера отсчета угла открытия тиристоров
|
||||
|
||||
|
||||
@@ -132,17 +130,17 @@
|
||||
|
||||
// ===== ОТЛАДОЧНЫЕ ШТУКИ ДЛЯ 417 ======
|
||||
#if defined(STM32F417xx)
|
||||
#undef US_TIM5_FREQ_MHZ
|
||||
#undef ADC_TIM8_FREQ_MZH
|
||||
#undef PWM_TIM1_FREQ_MHZ
|
||||
#undef PWM_TIM3_FREQ_MHZ
|
||||
#undef PWM_TIM8_FREQ_MHZ
|
||||
#undef US_TIM5_FREQ_MHZ
|
||||
#undef ADC_TIM3_FREQ_MZH
|
||||
#undef ANGLE_TIM2_FREQ_MHZ
|
||||
|
||||
// У 417 меньше частота поэтому меняем прескалер
|
||||
#define US_TIM5_FREQ_MHZ 84 ///< Частота тиков таймера ШИМ (1-4 каналы)
|
||||
#define ADC_TIM8_FREQ_MZH 168 ///< Частота тиков таймера АЦП
|
||||
#define PWM_TIM1_FREQ_MHZ 168 ///< Частота тиков таймера ШИМ (1-4 каналы)
|
||||
#define PWM_TIM3_FREQ_MHZ 84 ///< Частота тиков таймера ШИМ (5-6 каналы)
|
||||
#define PWM_TIM8_FREQ_MHZ 168 ///< Частота тиков таймера ШИМ (5-6 каналы)
|
||||
#define US_TIM5_FREQ_MHZ 84 ///< Частота тиков микросекундного таймера
|
||||
#define ADC_TIM3_FREQ_MZH 84 ///< Частота тиков таймера АЦП
|
||||
#define ANGLE_TIM2_FREQ_MHZ 84 ///< Частота тиков таймера отсчета угла открытия тиристоров
|
||||
|
||||
#define HAL_PWREx_EnableOverDrive() HAL_ERROR
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
* @brief Список аварий УПП
|
||||
*/
|
||||
typedef enum {
|
||||
UPP_Not_Init = 0, ///< УПП не инициализирован
|
||||
UPP_Init = 0, ///< УПП не инициализирован
|
||||
UPP_Ready = 1, ///< УПП в готовности
|
||||
UPP_Work = 2, ///< УПП в работе, управляет тиристорами
|
||||
UPP_Error = 3, ///< УПП в аварии
|
||||
@@ -96,7 +96,7 @@ typedef struct {
|
||||
|
||||
/**
|
||||
* @brief Структура параметров УПП от ПУИ
|
||||
* @details Параметры по умолчанию приведены в @ref UPP_DEFAULT_PARAMS
|
||||
* @details Параметры по умолчанию приведены в @ref UPP_PARAMS_DEFAULT
|
||||
* @note Защиты №X приведены в @ref UPP_ErrorType_t
|
||||
*/
|
||||
typedef struct {
|
||||
@@ -149,20 +149,26 @@ typedef struct {
|
||||
* @brief Дефайны УПП которые используютяс исключительно внутри программы
|
||||
* @{
|
||||
*/
|
||||
#define PM_SLOW_PERIOD_US (PM_ADC_PERIOD_US*PM_SLOW_PERIOD_CNT)
|
||||
#define ANGLE_PERIOD_MS(_freq_) (((float)1/(_freq_*2))*1000)
|
||||
|
||||
/* Перерасчеты в тики */
|
||||
#define PM_SLOW_PERIOD_CNT (PM_SLOW_PERIOD_US/PM_ADC_PERIOD_US) ///< Период обновления медленных расчетов тиках @ref PM_ADC_PERIOD_US
|
||||
#define US_TO_SLOW_TICKS(_us_) ((_us_)/PM_SLOW_PERIOD_US)
|
||||
#define MS_TO_SLOW_TICKS(_ms_) US_TO_SLOW_TICKS((_ms_)*1000)
|
||||
#define PM_F_SLOW_PERIOD_CNT (MS_TO_SLOW_TICKS(PM_F_SLOW_PERIOD_MS)) ///< Период обновления частоты в тиках @ref PM_SLOW_PERIOD_CNT
|
||||
|
||||
|
||||
/* Перерасчеты в тики */
|
||||
#define ANGLE_PERIOD_MS(_freq_) (((float)1/(_freq_*2))*1000) ///< Период обновления частоты в тиках @ref PM_SLOW_PERIOD_CNT
|
||||
|
||||
|
||||
|
||||
|
||||
/* Дефайны для "удобного" доступа к структурам */
|
||||
#define PARAM_INTERNAL MB_INTERNAL.param
|
||||
#define PARAM_PUI MB_DATA.HoldRegs.pui_params
|
||||
#define ERR_PUI errors.pui.err
|
||||
#define ERR_PRIVATE errors.prvt.f.err
|
||||
#define ERR_PRIVATE_CNT errors.prvt.cnt
|
||||
|
||||
/* Enum'ы УПП */
|
||||
/**
|
||||
* @brief Состояния полуволны
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user