diff --git a/Projects/epwm_test_biss_c_cpu1/src/Peripherals/pwm_init.c b/Projects/epwm_test_biss_c_cpu1/src/Peripherals/pwm_init.c index 80b27ba..7beae58 100644 --- a/Projects/epwm_test_biss_c_cpu1/src/Peripherals/pwm_init.c +++ b/Projects/epwm_test_biss_c_cpu1/src/Peripherals/pwm_init.c @@ -117,6 +117,13 @@ void PWMGpioInit(void)//��� � ������������ � GpioCtrlRegs.GPACSEL2.bit.GPIO8 = 2;//to cpu2 GpioCtrlRegs.GPACSEL2.bit.GPIO9 = 2; + GpioCtrlRegs.GPAPUD.bit.GPIO6 = 1; // Disable pull-up on GPIO6 (EPWM4A) + GpioCtrlRegs.GPAPUD.bit.GPIO7 = 1; // Disable pull-up on GPIO7 (EPWM4B) + GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 1; // Configure GPIO6 as EPWM4A + GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 1; // Configure GPIO7 as EPWM4B + GpioCtrlRegs.GPACSEL1.bit.GPIO6 = 2;//to cpu2 + GpioCtrlRegs.GPACSEL1.bit.GPIO7 = 2; + GpioCtrlRegs.GPAPUD.bit.GPIO12 = 1; // Disable pull-up on GPIO12 (EPWM7A) GpioCtrlRegs.GPAPUD.bit.GPIO13 = 1; // Disable pull-up on GPIO13 (EPWM7B) GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 1; // Configure GPIO12 as EPWM7A diff --git a/Projects/epwm_test_biss_c_cpu1/src/init_perif.c b/Projects/epwm_test_biss_c_cpu1/src/init_perif.c index 0947e86..9ac0a05 100644 --- a/Projects/epwm_test_biss_c_cpu1/src/init_perif.c +++ b/Projects/epwm_test_biss_c_cpu1/src/init_perif.c @@ -104,6 +104,7 @@ void InitPerif(void) CONNECT_SD2(TO_CPU2); CONNECT_PWM1(TO_CPU2); CONNECT_PWM2(TO_CPU2); + CONNECT_PWM4(TO_CPU2); CONNECT_PWM5(TO_CPU2); CONNECT_PWM7(TO_CPU2); CONNECT_PWM8(TO_CPU2); diff --git a/Projects/epwm_test_biss_c_cpu1/targetConfigs/TMS320F28388D.ccxml b/Projects/epwm_test_biss_c_cpu1/targetConfigs/TMS320F28388D.ccxml index 8deefb4..09ed29e 100644 --- a/Projects/epwm_test_biss_c_cpu1/targetConfigs/TMS320F28388D.ccxml +++ b/Projects/epwm_test_biss_c_cpu1/targetConfigs/TMS320F28388D.ccxml @@ -1,55 +1,30 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - + - - - - - - - - - - - - diff --git a/Projects/epwm_test_biss_c_cpu2/Start_rfm.pmp b/Projects/epwm_test_biss_c_cpu2/Start_rfm.pmp index 4386c8e..a1cf863 100644 Binary files a/Projects/epwm_test_biss_c_cpu2/Start_rfm.pmp and b/Projects/epwm_test_biss_c_cpu2/Start_rfm.pmp differ diff --git a/Projects/epwm_test_biss_c_cpu2/epwm_test.c b/Projects/epwm_test_biss_c_cpu2/epwm_test.c index d56ef16..59f83ad 100644 --- a/Projects/epwm_test_biss_c_cpu2/epwm_test.c +++ b/Projects/epwm_test_biss_c_cpu2/epwm_test.c @@ -19,6 +19,7 @@ #include "frmmstr_run.h" #include "adc_init.h" #include "biss.h" +#include "rele.h" void main(void) { @@ -29,6 +30,7 @@ void main(void) { // asm (" NOP"); frmmstr_run(); + rele_run(); // Gpio_rainbow(diod); // AdcRun(); // BissClkgenRun(); diff --git a/Projects/epwm_test_biss_c_cpu2/src/Peripherals/pwm_init.c b/Projects/epwm_test_biss_c_cpu2/src/Peripherals/pwm_init.c index 0d39c70..76b6548 100644 --- a/Projects/epwm_test_biss_c_cpu2/src/Peripherals/pwm_init.c +++ b/Projects/epwm_test_biss_c_cpu2/src/Peripherals/pwm_init.c @@ -119,6 +119,7 @@ void PWMInitEnable(void) EALLOW; CpuSysRegs.PCLKCR2.bit.EPWM1=1; CpuSysRegs.PCLKCR2.bit.EPWM2=1; + CpuSysRegs.PCLKCR2.bit.EPWM4=1; CpuSysRegs.PCLKCR2.bit.EPWM5=1; CpuSysRegs.PCLKCR2.bit.EPWM7=1; CpuSysRegs.PCLKCR2.bit.EPWM8=1; diff --git a/Projects/epwm_test_biss_c_cpu2/src/Peripherals/pwm_interrupts.c b/Projects/epwm_test_biss_c_cpu2/src/Peripherals/pwm_interrupts.c index 0c16a40..7a4a774 100644 --- a/Projects/epwm_test_biss_c_cpu2/src/Peripherals/pwm_interrupts.c +++ b/Projects/epwm_test_biss_c_cpu2/src/Peripherals/pwm_interrupts.c @@ -59,7 +59,11 @@ void pwm_set_volt_3F(float phaseA, float phaseB, float phaseC, float Udc) PWM_motor.UA = PERIOD_2 + A_proc; PWM_motor.UB = PERIOD_2 + B_proc; +#ifdef REF0 PWM_motor.UC = PERIOD_2 - C_proc; +#else + PWM_motor.UC = PERIOD_2 + C_proc; +#endif // FaultABC = FaultPWM; if(FaultABC) FaultABCFix = FaultABC; @@ -77,8 +81,8 @@ void pwm_set_volt_3F(float phaseA, float phaseB, float phaseC, float Udc) EPwmRegs[PWM_B]->CMPA.bit.CMPA = PERIOD_MOTOR - PWM_motor.UB; EPwmRegs[PWM_C]->CMPA.bit.CMPA = PERIOD_MOTOR - PWM_motor.UC; - EPwmRegs[3]->CMPA.bit.CMPA = PERIOD_FAN - PWM_Vent; - EPwmRegs[3]->CMPB.bit.CMPB = PERIOD_MOTOR - PWM_Chop; +// EPwmRegs[PWM_FAN]->CMPA.bit.CMPA = PERIOD_FAN - PWM_Vent; +// EPwmRegs[3]->CMPB.bit.CMPB = PERIOD_MOTOR - PWM_Chop; } @@ -143,12 +147,12 @@ __interrupt void epwm2_isr(void) PWM_motor.UB = PERIOD_2; PWM_motor.UC = PERIOD_2; vectorFault(); - EPwmRegs[3]->CMPA.bit.CMPA = PERIOD_MOTOR - PWM_Vent; - EPwmRegs[3]->CMPB.bit.CMPB = PERIOD_MOTOR - PWM_Chop; + EPwmRegs[PWM_FAN]->CMPA.bit.CMPA = PERIOD_MOTOR - PWM_Vent; +// EPwmRegs[3]->CMPB.bit.CMPB = PERIOD_MOTOR - PWM_Chop; Test_ADC_PWM_Synch1++; if(TestStopSync == 2) TestStopSync = 3; - if(rele_isReleOn()) GpioTurnOnRele(); - else GpioTurnOffRele(); +// if(rele_isReleOn()) ReleOut(1);//GpioTurnOnRele(); +// else ReleOut(0);//GpioTurnOffRele(); } else Test_ADC_PWM_Synch2++; // diff --git a/Projects/epwm_test_biss_c_cpu2/src/init_perif.c b/Projects/epwm_test_biss_c_cpu2/src/init_perif.c index 080dd3d..0e61639 100644 --- a/Projects/epwm_test_biss_c_cpu2/src/init_perif.c +++ b/Projects/epwm_test_biss_c_cpu2/src/init_perif.c @@ -78,14 +78,13 @@ void InitPerif(void) FRMUartInit(); - - #ifdef REF0 temperatureInit(); #else eqep_init(); #endif - rele_initRele(); + + // // Enable global Interrupts and higher priority real-time debug events: @@ -97,5 +96,6 @@ void InitPerif(void) faultInit(); + rele_initRele(); } diff --git a/Projects/epwm_test_biss_c_cpu2/src/rele.c b/Projects/epwm_test_biss_c_cpu2/src/rele.c index 39dfec1..e596e16 100644 --- a/Projects/epwm_test_biss_c_cpu2/src/rele.c +++ b/Projects/epwm_test_biss_c_cpu2/src/rele.c @@ -27,7 +27,7 @@ void ReleOut(uint16_t out_bit) } #endif - +#ifdef REF0 void GpioTurnOnRele(void) { GpioDataRegs.GPCDAT.bit.GPIO95 = 1; @@ -37,6 +37,8 @@ void GpioTurnOffRele(void) { GpioDataRegs.GPCDAT.bit.GPIO95 = 0; } +#endif + uint16_t rele_isReleOn(void) { @@ -55,13 +57,15 @@ void rele_initRele(void) ReleOut(0); } - -void rele_run(int16_t UdcFiltered) +void rele_run(void) { - if(Rele.State != Rele.StateChange) {Rele.StateChange = Rele.State; ReleOut(Rele.State);} +} - if(!Rele.State) + +void rele_control(int16_t UdcFiltered) +{ + if((!Rele.State) || (!Rele.StateChange)) { vectorFault(); Rele.ReleCounter = 0; diff --git a/Projects/epwm_test_biss_c_cpu2/src/rele.h b/Projects/epwm_test_biss_c_cpu2/src/rele.h index b0c4099..2fab85f 100644 --- a/Projects/epwm_test_biss_c_cpu2/src/rele.h +++ b/Projects/epwm_test_biss_c_cpu2/src/rele.h @@ -14,7 +14,8 @@ uint16_t rele_isReleOn(void); void rele_initRele(void); -void rele_run(int16_t UdcFiltered); +void rele_run(void); +void rele_control(int16_t UdcFiltered); void ReleOut(uint16_t out_bit); typedef struct diff --git a/Projects/epwm_test_biss_c_cpu2/src/vector.c b/Projects/epwm_test_biss_c_cpu2/src/vector.c index 6702587..1c3f00d 100644 --- a/Projects/epwm_test_biss_c_cpu2/src/vector.c +++ b/Projects/epwm_test_biss_c_cpu2/src/vector.c @@ -116,7 +116,7 @@ void vectorControl(int16_t CurrentA, int16_t CurrentB, int16_t CurrentC, int16_t Step = Step + Nstep; CurrLoop.piId.Ref = 0; - rele_run(UdcFiltered); + rele_control(UdcFiltered); if(Mode) {XintRegs.XINT2CR.bit.ENABLE = 0; temperature_deInit();}