This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

The SysCtlPeripheralEnable function accepts only PWM0 and PWM1 as arguments: Why not PWM2, etc.?

Other Parts Discussed in Thread: EK-TM4C123GXL

I am working with the EK-TM4C123GXL launchpad. I need two PWM outputs with dead time. Accomplishing this appears straightforward with examples such as dead_band.c provided by TI. I could get by on that information, but I really want to know: What if I wanted to use PWM2 and PWM3? The SysCtlPeripheralEnable function accepts only PWM0 and PWM1 as arguments. How does this work?

  • Are not there "4" channels of PWM w/in each, "PWM Generator?" (i.e. PWM0 - PWM3)

    Appears you're confusing PWM Generators (there are 2) with PWM Channels (w/in ea. PWM Generator - there are 4)....

  • There are two PWM modules, each of which feature 4 PWM generators as shown on Figure 20-1 of the data sheet. So you are saying that the SysCtlPeripheralEnable function arguments are modules - not PWM generators. So when the module is enabled that makes it's four PWM generators powered and ready. I think I get it now. It would have helped if the function arguments were "PWM_module_1", etc.

  • You are correct, Sir - my earlier report was incorrect.   Indeed there are 2 PWM peripheral "modules" (as you state) and each may contain up to 4 PWM Generators.   (delightful that!)   Each such module (under past StellarisWare) is labeled "PWMx_BASE" - in retrospect your name proves superior.   (due to clarity)

    Each generator contains 2 PWM Channels - adding to the mix.   Those channels are fixed to that generator - you may not "pick & choose."

    Experimentation here will quickly/easily confirm our collaboration - but you're clearly on the right track...   (I'm glad to have (very slightly) assisted...)