From c58809798f35745df681741bb5448b37059b6f05 Mon Sep 17 00:00:00 2001 From: seklyuts Date: Wed, 24 Jul 2024 16:02:51 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=80=D0=B5=D0=B6=D0=B8=D0=BC=20=D0=BF=D0=BE=D1=82?= =?UTF-8?q?=D1=80=D0=B0=D0=BD=D0=B7=D0=B8=D1=81=D1=82=D0=BE=D1=80=D0=BD?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D1=88=D0=B8=D0=BC=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Peripherals/pwm_init.c | 17 +++++++----- Projects/epwm_test_biss_c_cpu2/Start_rfm.pmp | Bin 47761 -> 48143 bytes .../src/Peripherals/pwm_init.c | 26 ++++++++++++++++++ .../src/Peripherals/pwm_init.h | 2 +- .../src/Peripherals/pwm_interrupts.c | 6 ++-- Projects/epwm_test_biss_c_cpu2/src/vector.c | 6 ++++ Projects/epwm_test_biss_c_cpu2/src/vector.h | 1 + 7 files changed, 47 insertions(+), 11 deletions(-) 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 7beae58..6123c0a 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,20 +117,23 @@ 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; + +#ifdef REF0 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 GpioCtrlRegs.GPAMUX1.bit.GPIO13 = 1; // Configure GPIO13 as EPWM7B GpioCtrlRegs.GPACSEL2.bit.GPIO12 = 2;//to cpu2 GpioCtrlRegs.GPACSEL2.bit.GPIO13 = 2; - +#else + 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; +#endif // GpioCtrlRegs.GPAPUD.bit.GPIO14 = 1; // Disable pull-up on GPIO14 (EPWM8A) // GpioCtrlRegs.GPAMUX1.bit.GPIO14 = 1; // Configure GPIO14 as EPWM8A // GpioCtrlRegs.GPACSEL2.bit.GPIO14 = 2;//to cpu2 diff --git a/Projects/epwm_test_biss_c_cpu2/Start_rfm.pmp b/Projects/epwm_test_biss_c_cpu2/Start_rfm.pmp index a1cf863b713caef98872ac187c9aad9a01ebb0cd..0e6c8a46ae527358325c8a272ee371c91324b7e4 100644 GIT binary patch delta 3995 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 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 76b6548..4e6d216 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 @@ -55,6 +55,32 @@ void PWM_ABC_StartOut(void) EDIS; } +void PWM_ABC_Start(uint16_t Num) +{ + EALLOW; + + if(Num&0x01) EPwmRegs[PWM_A]->TZCTL.bit.TZA = 3; + else EPwmRegs[PWM_A]->TZCTL.bit.TZA = 2; + + if(Num&0x02) EPwmRegs[PWM_A]->TZCTL.bit.TZB = 3; + else EPwmRegs[PWM_A]->TZCTL.bit.TZB = 2; + + if(Num&0x04)EPwmRegs[PWM_B]->TZCTL.bit.TZA = 3; + else EPwmRegs[PWM_B]->TZCTL.bit.TZA = 2; + + if(Num&0x08)EPwmRegs[PWM_B]->TZCTL.bit.TZB = 3; + else EPwmRegs[PWM_B]->TZCTL.bit.TZB = 2; + + if(Num&0x10)EPwmRegs[PWM_C]->TZCTL.bit.TZA = 3; + else EPwmRegs[PWM_C]->TZCTL.bit.TZA = 2; + + if(Num&0x20)EPwmRegs[PWM_C]->TZCTL.bit.TZB = 3; + else EPwmRegs[PWM_C]->TZCTL.bit.TZB = 2; + + EDIS; +} + + void PWMAllInit(void) { // diff --git a/Projects/epwm_test_biss_c_cpu2/src/Peripherals/pwm_init.h b/Projects/epwm_test_biss_c_cpu2/src/Peripherals/pwm_init.h index 3e339ba..c299823 100644 --- a/Projects/epwm_test_biss_c_cpu2/src/Peripherals/pwm_init.h +++ b/Projects/epwm_test_biss_c_cpu2/src/Peripherals/pwm_init.h @@ -65,7 +65,7 @@ void PWMInitInterruptEn(void); void PWMAllInit(void); void PWM_ABC_StopAllClose(void); void PWM_ABC_StartOut(void); - +void PWM_ABC_Start(uint16_t Num); void InitEPwm1Example(void); void InitEPwm2Example(void); 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 7a4a774..742a166 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 @@ -103,10 +103,10 @@ __interrupt void epwm1_isr(void) EPwm1Regs.ETCLR.bit.INT = 1; TimerBaseTimeoutInc(); MainTimerBaseTimeoutInc(); -#ifdef TEMPER_GPIO_20 - eqepTest(); -#else +#ifdef REF0 temperatureTest(); +#else + eqepTest(); #endif // diff --git a/Projects/epwm_test_biss_c_cpu2/src/vector.c b/Projects/epwm_test_biss_c_cpu2/src/vector.c index 1c3f00d..ecd2e45 100644 --- a/Projects/epwm_test_biss_c_cpu2/src/vector.c +++ b/Projects/epwm_test_biss_c_cpu2/src/vector.c @@ -96,6 +96,8 @@ void vectorFault(void) XintRegs.XINT2CR.bit.ENABLE = 1; } +uint16_t Num = 0; + void vectorControl(int16_t CurrentA, int16_t CurrentB, int16_t CurrentC, int16_t sdfmUdc) { @@ -112,6 +114,7 @@ void vectorControl(int16_t CurrentA, int16_t CurrentB, int16_t CurrentC, int16_t if(VoltProcImit) UdcVolt = VoltProcImit; else UdcVolt = (float)UdcFiltered*VdcFactor/BIT_MAX; + if(UdcVolt < 15) Mode = OffMode; Step = Step + Nstep; CurrLoop.piId.Ref = 0; @@ -141,6 +144,9 @@ void vectorControl(int16_t CurrentA, int16_t CurrentB, int16_t CurrentC, int16_t if(StepS > (1<<(StepShift-1))) CurrLoop.piId.Ref = 0; else CurrLoop.piId.Ref = CurrentRegTuneAmpl; break; + case TestPWNMode: + PWM_ABC_Start(Num); + break; default: Mode = OffMode; PWM_ABC_StopAllClose(); diff --git a/Projects/epwm_test_biss_c_cpu2/src/vector.h b/Projects/epwm_test_biss_c_cpu2/src/vector.h index 1dfe43e..aed2a94 100644 --- a/Projects/epwm_test_biss_c_cpu2/src/vector.h +++ b/Projects/epwm_test_biss_c_cpu2/src/vector.h @@ -80,6 +80,7 @@ typedef enum StepMode, // StayMode, CurrentRegTune, + TestPWNMode, VectorModeU, VectorModeI }TMode;