Part Number: TMS320F28379D
Tool/software: Code Composer Studio
I just do a very simple code, i try to have a PWM1A output signal and watch it on the oscillascope. However, i try several attemps, there is no response. I check the 28377D example, i am exactly doing the same thing, i even use the sample code developed by the TI, i can see nothing on the scope. Is that anything i missed? the code sample is below.
///////////////////////////////////////////////////////////
#include "F28x_Project.h"
void ConfigureEPWM(void);
void main(void) //
{
InitSysCtrl(); //
InitGpio(); //
EALLOW;
CpuSysRegs.PCLKCR2.bit.EPWM4=1; // enable EPWM4 clock
EDIS;
InitEPwm1Gpio(); //
DINT; //
InitPieCtrl(); //
IER=0x0000;//
IFR=0x0000; //
InitPieVectTable(); //
EALLOW;//
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC=0; //
EDIS; //
ConfigureEPWM(); //
EALLOW;//
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC=1; //
EDIS; //
EINT; // enable global interrupt INTM
ERTM; //
}
void ConfigureEPWM(void)
{
EPwm1Regs.TBPRD=6000; // 2kHz PWM4A signal
EPwm1Regs.TBPHS.bit.TBPHS=0x0000; // phase load is ignored
EPwm1Regs.TBCTR=0x0000; // Clear counter
EPwm1Regs.TBCTL.bit.CTRMODE=TB_COUNT_UPDOWN; // up count mode
EPwm1Regs.TBCTL.bit.PHSEN=TB_DISABLE; // phase reg disabled
EPwm1Regs.TBCTL.bit.HSPCLKDIV=TB_DIV4; // divide by 1
EPwm1Regs.TBCTL.bit.CLKDIV=TB_DIV4; // divide by 1
EPwm1Regs.CMPCTL.bit.SHDWAMODE=CC_SHADOW; // bypass the shadow registor
EPwm1Regs.CMPCTL.bit.LOADAMODE=CC_CTR_ZERO;
EPwm1Regs.CMPA.bit.CMPA=3000;
EPwm1Regs.AQCTLA.bit.CAU=AQ_SET; // set PWM4A on zero
EPwm1Regs.AQCTLA.bit.PRD=AQ_CLEAR; // clear PWM4A when equal to period
}