Other Parts Discussed in Thread: EK-TM4C123GXL
I am trying to run two PWM generators on the EK-TM4C123GXL LaunchPad. I have one of the PWM generators working (M1PWM0) but I have not been able to get M0PWM3 to operate and produce an output. Here is my code:
#define PWM_FREQUENCY 55000
int main()
{
volatile uint32_t ui32LoadPW0;
volatile uint32_t ui32LoadPW1;
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);
ROM_SysCtlPWMClockSet(SYSCTL_PWMDIV_1);
//------------------------------------------------------------------
// Setup PWM1 on port D0
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM1);
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
ROM_GPIOPinTypePWM(GPIO_PORTD_BASE, GPIO_PIN_0);
ROM_GPIOPinConfigure(GPIO_PD0_M1PWM0);
ui32LoadPW1 = (SysCtlClockGet() / PWM_FREQUENCY) - 1;
MAP_PWMGenConfigure(PWM1_BASE, PWM_GEN_0, PWM_GEN_MODE_DOWN);
PWMGenPeriodSet(PWM1_BASE, PWM_GEN_0, ui32LoadPW1);
ROM_PWMPulseWidthSet(PWM1_BASE, PWM_OUT_0, ui32LoadPW1 / 2);
ROM_PWMOutputState(PWM1_BASE, PWM_OUT_0_BIT, true);
ROM_PWMGenEnable(PWM1_BASE, PWM_GEN_0);
//------------------------------------------------------------------
// Setup PWM0 on port B5
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
MAP_GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_5);
MAP_GPIOPinConfigure(GPIO_PB5_M0PWM3);
ui32LoadPW0 = (SysCtlClockGet() / PWM_FREQUENCY) - 1;
MAP_PWMGenConfigure(PWM0_BASE, PWM_GEN_3, PWM_GEN_MODE_DOWN);
MAP_PWMGenPeriodSet(PWM0_BASE, PWM_GEN_3, ui32LoadPW0);
MAP_PWMPulseWidthSet(PWM0_BASE, PWM_OUT_3, ui32LoadPW0 / 2);
MAP_PWMOutputState(PWM0_BASE, PWM_OUT_3_BIT, true);
MAP_PWMGenEnable(PWM0_BASE, PWM_GEN_3);
while(1)
{
}
}
Looking at pin PD0 I see the 55KHz signal. But on pin PB5 I have no signal. Would anyone be able to tell me what I am doing wrong?
Thank you,