MSPM0_ValvanoWare  1.0
ECE445L starter code
Files | Macros | Functions
PWM

Pulse width modulation. More...

Files

file  PWM.h
 Pulse width modulation.
 
file  PWM1.h
 Pulse width modulation.
 

Macros

#define PWMUSELFCLK   2
 use PWMUSELFCLK to select LFCLK
 
#define PWMUSEMFCLK   4
 use PWMUSEMFCLK to select MFCLK
 
#define PWMUSEBUSCLK   8
 use PWMUSEBUSCLK to select bus CLK
 
#define PWMUSELFCLK   2
 use PWMUSELFCLK to select LFCLK
 
#define PWMUSEMFCLK   4
 use PWMUSEMFCLK to select MFCLK
 
#define PWMUSEBUSCLK   8
 use PWMUSEBUSCLK to select bus CLK
 

Functions

void PWM_Init (uint32_t timerClkSrc, uint32_t timerClkPrescale, uint32_t period, uint32_t duty0, uint32_t duty1)
 Initialize PWM. More...
 
void PWM_SetDuty (uint32_t duty0, uint32_t duty1)
 Set duty cycles. More...
 
void PWM_PA12Init (uint32_t timerClkSrc, uint32_t timerClkPrescale, uint32_t period, uint32_t duty0)
 Initialize PWM. More...
 
void PWM_PA12SetDuty (uint32_t duty0)
 Set duty cycles. More...
 
void PWM1_Init (uint32_t timerClkSrc, uint32_t timerClkPrescale, uint32_t period, uint32_t duty0, uint32_t duty1)
 Initialize PWM. More...
 
void PWM1_SetDuty (uint32_t duty0, uint32_t duty1)
 Set duty cycles. More...
 

Detailed Description

Pulse width modulation.

PWM pins on the MSPM0G3507
Pin Description
PA12 CCP0 PWM output
PA13 CCP1 PWM output
PWM pins on the MSPM0G3507
Pin Description
PB4 CCP0 PWM output
PB1 CCP1 PWM output

Function Documentation

◆ PWM1_Init()

void PWM1_Init ( uint32_t  timerClkSrc,
uint32_t  timerClkPrescale,
uint32_t  period,
uint32_t  duty0,
uint32_t  duty1 
)

Initialize PWM.

Initialize PWM outputs on PA12 PA13. Rising edge synchronized. timerClkDivRatio = 1. Once started, hardware will continuously output the waves.

  • timerClkSrc =
    • 2 for 32768 Hz LFCLK
    • 4 for 4MHz MFCLK (not tested)
    • 8 for 80/32/4 BUSCLK
  • G0/G8 is on Power domain PD0
    • 32MHz bus clock, BUSCLK clock is 32MHz
    • 40MHz bus clock, BUSCLK clock is ULPCLK 20MHz
    • 80MHz bus clock, BUSCLK clock is ULPCLK 40MHz
  • PWMFreq = (timerClkSrc / (timerClkDivRatio * (timerClkPrescale + 1) * period))
    • For example, source=LFCLK, prescale = 0, period = 1000, PWM frequency = 32.768 Hz
    • For example, source=BUSCLK, bus=40MHz, prescale=19, period = 10000, PWM frequency = 10kHz
Parameters
timerClkSrcis 2 4 or 8
timerClkPrescaledivide clock by timerClkPrescale+1, 0 to 255
periodsets the PWM period
duty0sets the duty cycle on PA12
duty1sets the duty cycle on PA13
Returns
none
Note
Will call LaunchPad_Init to reset and activate power
See also
PWM_SetDuty

◆ PWM1_SetDuty()

void PWM1_SetDuty ( uint32_t  duty0,
uint32_t  duty1 
)

Set duty cycles.

Set duty cycles on PA12 PA13.

Parameters
duty0sets the duty cycle on PA12
duty1sets the duty cycle on PA13
Returns
none
Note
assumes PWM_Init was called
See also
PWM_Init

◆ PWM_Init()

void PWM_Init ( uint32_t  timerClkSrc,
uint32_t  timerClkPrescale,
uint32_t  period,
uint32_t  duty0,
uint32_t  duty1 
)

Initialize PWM.

Initialize PWM outputs on PA12 PA13. Rising edge synchronized. timerClkDivRatio = 1. Once started, hardware will continuously output the waves.

  • timerClkSrc =
    • 2 for 32768 Hz LFCLK
    • 4 for 4MHz MFCLK (not tested)
    • 8 for 80/32/4 BUSCLK
  • G0/G8 is on Power domain PD0
    • 32MHz bus clock, BUSCLK clock is 32MHz
    • 40MHz bus clock, BUSCLK clock is ULPCLK 20MHz
    • 80MHz bus clock, BUSCLK clock is ULPCLK 40MHz
  • PWMFreq = (timerClkSrc / (timerClkDivRatio * (timerClkPrescale + 1) * period))
    • For example, source=LFCLK, prescale = 0, period = 1000, PWM frequency = 32.768 Hz
    • For example, source=BUSCLK, bus=40MHz, prescale=19, period = 10000, PWM frequency = 10kHz
Parameters
timerClkSrcis 2 4 or 8
timerClkPrescaledivide clock by timerClkPrescale+1, 0 to 255
periodsets the PWM period
duty0sets the duty cycle on PA12
duty1sets the duty cycle on PA13
Returns
none
Note
Will call LaunchPad_Init to reset and activate power
See also
PWM_SetDuty

◆ PWM_PA12Init()

void PWM_PA12Init ( uint32_t  timerClkSrc,
uint32_t  timerClkPrescale,
uint32_t  period,
uint32_t  duty0 
)

Initialize PWM.

Initialize PWM outputs on PA12 . Rising edge synchronized. timerClkDivRatio = 1. Once started, hardware will continuously output the waves.

  • timerClkSrc =
    • 2 for 32768 Hz LFCLK
    • 4 for 4MHz MFCLK (not tested)
    • 8 for 80/32/4 BUSCLK
  • G0/G8 is on Power domain PD0
    • 32MHz bus clock, BUSCLK clock is 32MHz
    • 40MHz bus clock, BUSCLK clock is ULPCLK 20MHz
    • 80MHz bus clock, BUSCLK clock is ULPCLK 40MHz
  • PWMFreq = (timerClkSrc / (timerClkDivRatio * (timerClkPrescale + 1) * period))
    • For example, source=LFCLK, prescale = 0, period = 1000, PWM frequency = 32.768 Hz
    • For example, source=BUSCLK, bus=40MHz, prescale=19, period = 10000, PWM frequency = 10kHz
Parameters
timerClkSrcis 2 4 or 8
timerClkPrescaledivide clock by timerClkPrescale+1, 0 to 255
periodsets the PWM period
duty0sets the duty cycle on PA12
Returns
none
Note
Will call LaunchPad_Init to reset and activate power
See also
PWM_SetDuty

◆ PWM_PA12SetDuty()

void PWM_PA12SetDuty ( uint32_t  duty0)

Set duty cycles.

Set duty cycles on PA12 .

Parameters
duty0sets the duty cycle on PA12
Returns
none
Note
assumes PWM_Init was called
See also
PWM_Init

◆ PWM_SetDuty()

void PWM_SetDuty ( uint32_t  duty0,
uint32_t  duty1 
)

Set duty cycles.

Set duty cycles on PA12 PA13.

Parameters
duty0sets the duty cycle on PA12
duty1sets the duty cycle on PA13
Returns
none
Note
assumes PWM_Init was called
See also
PWM_Init