主题中讨论的其他部件:MOTORWARE
我已经为InstaSPIN FOC固件设计了一些自定义硬件。 由于某种原因,在运行实验2a时,代码似乎没有正确限制电流-直到我的耗材限制电流之前,电流一直过高。 我已经检查了我的电流反馈电压,它们的振幅正确。 我认为我的映射是正确的,如下所示。 您能否快速查看一下以确保? 如果还有其他可能导致电流不能正常限制的情况,请告诉我,因为我有点卡滞。
***连接***
H1 - EPWM2A
L1 - WPWM2B
H2 - EPWM1A
L2 - EPWM1B
H3 - EPWM3A
L3 - EPWM3B
I1_FB - A4
I2_FB - A6
i3_FB - A2
V1_FB - A1
V2_FB - A0
V3_FB - B0
VBUS - A5
***反馈映射***
//转换从EPWM2上的第一阶段开始
// EXT IA-FB
ADC_setSockChanNumber (obj->adcHandle,ADC_SockNumber_0,ADC_SockChanNumber_A4);
ADC_setSockTrigSrc(obj->adcHandle,ADC_SockNumber_0,ADC_SockTrigSrc_EPWM2_ADCSOCA);
ADC_setSocSampleDelay(obj->adcHandle,ADC_SocNumber_0,ADC_SocSampleDelay_9_Cycles);
// EXT IA-FB
//由于ADC初始转换错误导致转换重复(SPRZ342)
ADC_setSockChanNumber (obj->adcHandle,ADC_SockNumber_1,ADC_SockChanNumber_A4);
ADC_setSocTrigSrc (obj->adcHandle,ADC_SocNumber_1,ADC_SocTrigSrc_EPWM2_ADCSOCA);
ADC_setSocSampleDelay (obj->adcHandle,ADC_SocNumber_1,ADC_SocSampleDelay_9_Cycles);
// EXT IB-FB
ADC_setSockChanNumber (obj->adcHandle,ADC_SockNumber_2,ADC_SockChanNumber_A6);
ADC_setSocTrigSrc (obj->adcHandle,ADC_SocNumber_2,ADC_SocTrigSrc_EPWM2_ADCSOCA);
ADC_setSocSampleDelay (obj->adcHandle,ADC_SocNumber_2,ADC_SocSampleDelay_9_Cycles);
//外部IC-FB
ADC_setSockChanNumber (obj->adcHandle,ADC_SockNumber_3,ADC_SockChanNumber_A2);
ADC_setSocTrigSrc (obj->adcHandle,ADC_SocNumber_3,ADC_SocTrigSrc_EPWM2_ADCSOCA);
ADC_setSocSampleDelay (obj->adcHandle,ADC_SocNumber_3,ADC_SocSampleDelay_9_Cycles);
// V_MOT1 -> ADCINA1
// V_MOT2 -> ADCINA0
// V_MOT3 -> ADCINB0
// V_BAT -> ADCINA5
// ADC-Vhb1
ADC_setSockChanNumber (obj->adcHandle,ADC_SockNumber_4,ADC_SockChanNumber_A1);
ADC_setSocTrigSrc (obj->adcHandle,ADC_SocNumber_4,ADC_SocTrigSrc_EPWM2_ADCSOCA);
ADC_setSocSampleDelay (obj->adcHandle,ADC_SocNumber_4,ADC_SocSampleDelay_9_Cycles);
// ADC-Vhb2
ADC_setSockChanNumber (obj->adcHandle,ADC_SockNumber_5,ADC_SockChanNumber_A0);
ADC_setSocTrigSrc (obj->adcHandle,ADC_SocNumber_5,ADC_SocTrigSrc_EPWM2_ADCSOCA);
ADC_setSocSampleDelay (obj->adcHandle,ADC_SocNumber_5,ADC_SocSampleDelay_9_Cycles);
// ADC-Vhb3
ADC_setSockChanNumber (obj->adcHandle,ADC_SockNumber_6,ADC_SockChanNumber_B0);
ADC_setSocTrigSrc (obj->adcHandle,ADC_SocNumber_6,ADC_SocTrigSrc_EPWM2_ADCSOCA);
ADC_setSocSampleDelay (obj->adcHandle,ADC_SocNumber_6,ADC_SocSampleDelay_9_Cycles);
// VDCBUS
ADC_setSockChanNumber (obj->adcHandle,ADC_SockNumber_7,ADC_SockChanNumber_A5);
ADC_setSocTrigSrc (obj->adcHandle,ADC_SocNumber_7,ADC_SocTrigSrc_EPWM2_ADCSOCA);
ADC_setSocSampleDelay (obj->adcHandle,ADC_SocNumber_7,ADC_SocSampleDelay_9_Cycles);
**** PWM映射*******
//初始化PWM手柄
obj->pwmHandle[0]= PWM_INIT((void *)PWM_ePWM2_base_ADDR,sizeof(PWM_Obj));//阶段1
obj->pwmHandle[1]= pwm_init((void *)pwm_ePWM1_base_ADDR,sizeof(PWM_Obj));//阶段2
obj->pwmHandle[2]= PWM_INIT((void *)PWM_ePWM3_base_ADDR,sizeof(PWM_Obj));//阶段3