ZHCU458J March 2018 – February 2025 TMS320F28P550SG , TMS320F28P550SJ , TMS320F28P559SG-Q1 , TMS320F28P559SJ-Q1
本节中的所有实验都可以使用两个控制卡进行。但是,在使用 TMS320F280039C 控制卡时,请考虑以下注意事项:
user_settings.h 文件中的参数。#define TINV_THIRD_HARMONIC_INJECTION_STATUS TINV_THIRD_HARMONIC_INJECTION_ENABLE#define TINV_MIDDLE_POINT_CONTROL_STATUS TINV_MIDDLE_POINT_CONTROL_ENABLE以下参数用于测试 E7 硬件,可使用 main.syscfg 或 tinv_settings.h 进行配置。使用 E6 时,保留默认的 main.syscfg 值。以下代码所示为 E7 参数:
// Power Stage Settings
//
#define TINV_PWM_SWITCHING_FREQ_HZ ((float32_t)90*1000)
#define TINV_PWM_DEADBAND_US ((float32_t)0.15)
#define TINV_PWM_PERIOD_TICKS (TINV_PWMSYSCLOCK_FREQ_HZ / TINV_PWM_SWITCHING_FREQ_HZ)
#define TINV_PWM_DEADBAND_TICKS (int16_t)((float32_t)TINV_PWM_DEADBAND_US * \
(float32_t)TINV_PWMSYSCLOCK_FREQ_HZ * \
(float32_t)ONE_MICRO_SEC)
#define TINV_AC_FREQ_HZ ((float32_t)60)
#define TINV_VBUS_NOMINAL_VOLTS ((float32_t)800)
#define TINV_LI_INDUCTOR_VALUE ((float32_t)0.13*0.001)
#define TINV_LG_INDUCTOR_VALUE ((float32_t)0.01*0.001)
#define TINV_VGRID_MAX_SENSE_VOLTS ((float32_t)512.5)
#define TINV_VINV_MAX_SENSE_VOLTS TINV_VGRID_MAX_SENSE_VOLTS
#define TINV_VBUS_MAX_SENSE_VOLTS ((float32_t)1100)
#define TINV_IINV_MAX_SENSE_AMPS ((float32_t)33)
#define TINV_IINV_TRIP_LIMIT_AMPS ((float32_t)29)
#define TINV_IGRID_MAX_SENSE_AMPS ((float32_t)32)
#define TINV_IGRID_TRIP_LIMIT_AMPS ((float32_t)29)
//
// PI Controller Settings from Compensation Designer
//
#define TINV_GI_PI_KP ((float32_t)0.0996509341)
#define TINV_GI_PI_KI ((float32_t)0.0070057718)
#define TINV_GV_PI_KP ((float32_t) 1.9979056049)
#define TINV_GV_PI_KI ((float32_t) 0.0041887902)
需要对 C2000Ware_DigitalPower_SDK 软件进行一些更改,才能支持新的 E7 硬件。第一项更改是风扇 GPIO 更改,如 节 3.1.1.2 之前所述(为方便起见,在此处显示)。第二项软件更改是在默认 SDK 软件中反转电压检测极性,因为最新的 E7 对 V_PCC 和 V_SN 采用非反相电压检测。
对于 tinv_user_settings.h 中的风扇 GPIO 更改:
//E6
//#define TINV_FAN_GPIO 9
//#define TINV_FAN_GPIO_PIN_CONFIG GPIO_9_GPIO9
//E7
#define TINV_FAN_GPIO 18
#define TINV_FAN_GPIO_PIN_CONFIG GPIO_18_GPIO18
在调试会话期间,确保在使用 CCS 观察窗口中的 TINV_fanSet 函数以大功率测试时启用风扇。
使用以下步骤,在 tinv.h 中更改 E7 电压感测极性:
// Voltage sensing on the actual board is non-inverted hence a +2.0f needs to be multiplied as below
TINV_vInv_A_sensed_pu = ((float32_t)TINV_VINV_A_READ *
TINV_ADC_PU_SCALE_FACTOR -
TINV_vInv_A_sensedOffset_pu) * 2.0f;
TINV_vInv_B_sensed_pu = ((float32_t)TINV_VINV_B_READ *
TINV_ADC_PU_SCALE_FACTOR -
TINV_vInv_B_sensedOffset_pu) * 2.0f;
TINV_vInv_C_sensed_pu = ((float32_t)TINV_VINV_C_READ *
TINV_ADC_PU_SCALE_FACTOR -
TINV_vInv_C_sensedOffset_pu) * 2.0f;
TINV_vGrid_A_sensed_prev_pu = TINV_vGrid_A_sensed_pu;
TINV_vGrid_A_sensed_pu = ((float32_t)TINV_VGRID_A_READ *
TINV_ADC_PU_SCALE_FACTOR -
TINV_vGrid_A_sensedOffset_pu ) * 2.0f;
TINV_vGrid_B_sensed_pu = ((float32_t)TINV_VGRID_B_READ *
TINV_ADC_PU_SCALE_FACTOR -
TINV_vGrid_B_sensedOffset_pu ) * 2.0f;
TINV_vGrid_C_sensed_pu = ((float32_t)TINV_VGRID_C_READ *
TINV_ADC_PU_SCALE_FACTOR -
TINV_vGrid_C_sensedOffset_pu ) * 2.0f;
对于 tinv.h 中的 E6 电压检测(默认 SDK 代码可接受):
// Voltage sensing on the actual board is inverted hence a -2.0f needs to be multiplied as below
TINV_vInv_A_sensed_pu = ((float32_t)TINV_VINV_A_READ *
TINV_ADC_PU_SCALE_FACTOR -
TINV_vInv_A_sensedOffset_pu) * -2.0f;
TINV_vInv_B_sensed_pu = ((float32_t)TINV_VINV_B_READ *
TINV_ADC_PU_SCALE_FACTOR -
TINV_vInv_B_sensedOffset_pu) * -2.0f;
TINV_vInv_C_sensed_pu = ((float32_t)TINV_VINV_C_READ *
TINV_ADC_PU_SCALE_FACTOR -
TINV_vInv_C_sensedOffset_pu) * -2.0f;
TINV_vGrid_A_sensed_prev_pu = TINV_vGrid_A_sensed_pu;
TINV_vGrid_A_sensed_pu = ((float32_t)TINV_VGRID_A_READ *
TINV_ADC_PU_SCALE_FACTOR -
TINV_vGrid_A_sensedOffset_pu ) * -2.0f;
TINV_vGrid_B_sensed_pu = ((float32_t)TINV_VGRID_B_READ *
TINV_ADC_PU_SCALE_FACTOR -
TINV_vGrid_B_sensedOffset_pu ) * -2.0f;
TINV_vGrid_C_sensed_pu = ((float32_t)TINV_VGRID_C_READ *
TINV_ADC_PU_SCALE_FACTOR -
TINV_vGrid_C_sensedOffset_pu ) * -2.0f;
对于 E7 硬件,要打开所有三相继电器(预充电后),应使用 CCS 监视窗口中的 TINV_NeuthalRelaySet 函数。只对 E6 硬件使用 TINV_allRelaySet。