18. lpc17xx_mcpwm Module

Motor control PWM client library functions. Find implementation details in LPC17xx CMSIS-Compliant Standard Peripheral Firmware Driver Library documentation.

robovero.lpc17xx_mcpwm.MCPWM_ACMode(MCPWMx, acMode)

Enables/Disables 3-phase AC motor mode on MCPWM peripheral.

Args:

  • MCPWMx: Motor Control PWM peripheral selected. Should be: LPC_MCPWM
  • acMode: State of this command, should be: ENABLE or DISABLE.
class robovero.lpc17xx_mcpwm.MCPWM_CAPTURE_CFG_Type(**kwargs)

Bases: robovero.internals.cstruct

MCPWM Capture Configuration type definition.

  • captureChannel: Capture Channel Number, should be in range from 0 to 2

  • captureRising: Enable/Disable Capture on Rising Edge event, should be:

    ENABLE or DISABLE.

  • captureFalling: Enable/Disable Capture on Falling Edge event, should be:

    ENABLE or DISABLE.

  • timerReset: Enable/Disable Timer reset function an capture, should be:

    ENABLE or DISABLE.

  • hnfEnable: Enable/Disable Hardware noise filter function, should be:

    ENABLE or DISABLE.

  • ptr: LPC1769 memory address where structure is stored. Use this in place of the C reference operator (&).

class robovero.lpc17xx_mcpwm.MCPWM_CHANNEL_CFG_Type(**kwargs)

Bases: robovero.internals.cstruct

Motor Control PWM Channel Configuration structure type definition.

  • channelType: Edge/center aligned mode for this channel, should be:

    MCPWM_CHANNEL_EDGE_MODE: Channel is in Edge mode MCPWM_CHANNEL_CENTER_MODE: Channel is in Center mode

  • channelPolarity: Polarity of the MCOA and MCOB pins, should be:

    MCPWM_CHANNEL_PASSIVE_LO: Passive state is LOW, active state is HIGH MCPWM_CHANNEL_PASSIVE_HI: Passive state is HIGH, active state is LOW

  • channelDeadtimeEnable: Enable/Disable DeadTime function for channel, should

    be: ENABLE or DISABLE.

  • channelDeadtimeValue: DeadTime value, should be less than 0x3FF

  • channelUpdateEnable: Enable/Disable updates of functional registers, should

    be: ENABLE or DISABLE.

  • channelTimercounterValue: MCPWM Timer Counter value

  • channelPeriodValue: MCPWM Period value

  • channelPulsewidthValue: MCPWM Pulse Width value

  • ptr: LPC1769 memory address where structure is stored. Use this in place of

    the C reference operator (&).

class robovero.lpc17xx_mcpwm.MCPWM_COUNT_CFG_Type(**kwargs)

Bases: robovero.internals.cstruct

MCPWM Count Control Configuration type definition.

  • counterChannel: Counter Channel Number, should be in range from 0 to 2

  • countRising: Enable/Disable Capture on Rising Edge event, should be: ENABLE

    or DISABLE.

  • countFalling: Enable/Disable Capture on Falling Edge event, should be: ENABLE

    or DISABLE.

  • ptr: LPC1769 memory address where structure is stored. Use this in place of

    the C reference operator (&).

robovero.lpc17xx_mcpwm.MCPWM_ClearCapture(MCPWMx, captureChannel)

Clears current captured value in specified capture channel.

Args:

  • MCPWMx: Motor Control PWM peripheral selected. Should be: LPC_MCPWM
  • captureChannel: Capture channel number, should be: 0..2
robovero.lpc17xx_mcpwm.MCPWM_ConfigCapture(MCPWMx, channelNum, captureConfig)

Configures capture function in MCPWM peripheral.

Args:

  • MCPWMx: Motor Control PWM peripheral selected. Should be: LPC_MCPWM

  • channelNum: MCI (Motor Control Input pin) number. Should be: 0..2

  • captureConfig: Pointer to a MCPWM_CAPTURE_CFG_Type structure that contains

    the configuration information for the specified MCPWM capture.

robovero.lpc17xx_mcpwm.MCPWM_ConfigChannel(MCPWMx, channelNum, channelSetup)

Configures each channel in MCPWM peripheral according to the specified parameters in the MCPWM_CHANNEL_CFG_Type.

Args:

  • MCPWMx: Motor Control PWM peripheral selected. Should be: LPC_MCPWM

  • channelNum: Channel number, should be: 0..2.

  • channelSetup: Pointer to a MCPWM_CHANNEL_CFG_Type structure that contains the

    configuration information for the specified MCPWM channel.

robovero.lpc17xx_mcpwm.MCPWM_CountConfig(MCPWMx, channelNum, countMode, countConfig)

Configures Count control in MCPWM peripheral.

Args:

  • MCPWMx: Motor Control PWM peripheral selected. Should be: LPC_MCPWM

  • channelNum: Channel number, should be: 0..2

  • countMode: Count mode, should be:

    • ENABLE: Enables count mode.
    • DISABLE: Disable count mode, the channel is in timer mode.
  • countConfig: Pointer to a MCPWM_COUNT_CFG_Type structure that contains the

    configuration information for the specified MCPWM count control.

robovero.lpc17xx_mcpwm.MCPWM_DCMode(MCPWMx, dcMode, outputInvered, outputPattern)

Enables/Disables 3-phase DC motor mode on MCPWM peripheral.

Args:

  • MCPWMx: Motor Control PWM peripheral selected. Should be: LPC_MCPWM

  • dcMode: State of this command, should be: ENABLE or DISABLE.

  • outputInvered: Polarity of the MCOB outputs for all 3 channels, should be:

    • ENABLE: The MCOB outputs have opposite polarity from the MCOA outputs.
    • DISABLE: The MCOB outputs have the same basic polarity as the MCOA outputs.
  • outputPattern: A value contains bits that enables/disables the specified

    output pins route to the internal MCOA0 signal, should be:

    • MCPWM_PATENT_A0: MCOA0 tracks internal MCOA0
    • MCPWM_PATENT_B0: MCOB0 tracks internal MCOA0
    • MCPWM_PATENT_A1: MCOA1 tracks internal MCOA0
    • MCPWM_PATENT_B1: MCOB1 tracks internal MCOA0
    • MCPWM_PATENT_A2: MCOA2 tracks internal MCOA0
    • MCPWM_PATENT_B2: MCOB2 tracks internal MCOA0
robovero.lpc17xx_mcpwm.MCPWM_GetCapture(MCPWMx, captureChannel)

Get current captured value in specified capture channel.

Args:

  • MCPWMx: Motor Control PWM peripheral selected. Should be: LPC_MCPWM
  • captureChannel: Capture channel number, should be: 0..2

Return: Captured value in channel 0, 1, or 2

robovero.lpc17xx_mcpwm.MCPWM_GetIntStatus(MCPWMx, ulIntType)

Check whether if the specified interrupt in MCPWM is set or not.

Args:

  • MCPWMx: Motor Control PWM peripheral selected. Should be: LPC_MCPWM
  • ulIntType: Interrupt type, should be:
    • MCPWM_INTFLAG_LIM0: Limit interrupt for channel (0)
    • MCPWM_INTFLAG_MAT0: Match interrupt for channel (0)
    • MCPWM_INTFLAG_CAP0: Capture interrupt for channel (0)
    • MCPWM_INTFLAG_LIM1: Limit interrupt for channel (1)
    • MCPWM_INTFLAG_MAT1: Match interrupt for channel (1)
    • MCPWM_INTFLAG_CAP1: Capture interrupt for channel (1)
    • MCPWM_INTFLAG_LIM2: Limit interrupt for channel (2)
    • MCPWM_INTFLAG_MAT2: Match interrupt for channel (2)
    • MCPWM_INTFLAG_CAP2: Capture interrupt for channel (2)
    • MCPWM_INTFLAG_ABORT: Fast abort interrupt

Return: SET or RESET

robovero.lpc17xx_mcpwm.MCPWM_INT_ICAP(n)
robovero.lpc17xx_mcpwm.MCPWM_INT_ILIM(n)
robovero.lpc17xx_mcpwm.MCPWM_INT_IMAT(n)
robovero.lpc17xx_mcpwm.MCPWM_Init(MCPWMx)

Initializes the MCPWM peripheral.

Args:

  • MCPWMx: Motor Control PWM peripheral selected. Should be: LPC_MCPWM
robovero.lpc17xx_mcpwm.MCPWM_IntClear(MCPWMx, ulIntType)

Clear the specified interrupt pending for MCPWM peripheral.

Args:

  • MCPWMx: Motor Control PWM peripheral selected. Should be: LPC_MCPWM
  • ulIntType: Interrupt type, should be:
    • MCPWM_INTFLAG_LIM0: Limit interrupt for channel (0)
    • MCPWM_INTFLAG_MAT0: Match interrupt for channel (0)
    • MCPWM_INTFLAG_CAP0: Capture interrupt for channel (0)
    • MCPWM_INTFLAG_LIM1: Limit interrupt for channel (1)
    • MCPWM_INTFLAG_MAT1: Match interrupt for channel (1)
    • MCPWM_INTFLAG_CAP1: Capture interrupt for channel (1)
    • MCPWM_INTFLAG_LIM2: Limit interrupt for channel (2)
    • MCPWM_INTFLAG_MAT2: Match interrupt for channel (2)
    • MCPWM_INTFLAG_CAP2: Capture interrupt for channel (2)
    • MCPWM_INTFLAG_ABORT: Fast abort interrupt
robovero.lpc17xx_mcpwm.MCPWM_IntConfig(MCPWMx, ulIntType, NewState)

Configures the specified interrupt in MCPWM peripheral.

Args:

  • MCPWMx: Motor Control PWM peripheral selected. Should be: LPC_MCPWM
  • ulIntType: Interrupt type, should be:
    • MCPWM_INTFLAG_LIM0: Limit interrupt for channel (0)
    • MCPWM_INTFLAG_MAT0: Match interrupt for channel (0)
    • MCPWM_INTFLAG_CAP0: Capture interrupt for channel (0)
    • MCPWM_INTFLAG_LIM1: Limit interrupt for channel (1)
    • MCPWM_INTFLAG_MAT1: Match interrupt for channel (1)
    • MCPWM_INTFLAG_CAP1: Capture interrupt for channel (1)
    • MCPWM_INTFLAG_LIM2: Limit interrupt for channel (2)
    • MCPWM_INTFLAG_MAT2: Match interrupt for channel (2)
    • MCPWM_INTFLAG_CAP2: Capture interrupt for channel (2)
    • MCPWM_INTFLAG_ABORT: Fast abort interrupt
  • NewState: New State of this command, should be: ENABLE or DISABLE.
robovero.lpc17xx_mcpwm.MCPWM_IntSet(MCPWMx, ulIntType)

Sets/Forces the specified interrupt for MCPWM peripheral.

Args:

  • MCPWMx: Motor Control PWM peripheral selected. Should be: LPC_MCPWM
  • ulIntType: Interrupt type, should be:
    • MCPWM_INTFLAG_LIM0: Limit interrupt for channel (0)
    • MCPWM_INTFLAG_MAT0: Match interrupt for channel (0)
    • MCPWM_INTFLAG_CAP0: Capture interrupt for channel (0)
    • MCPWM_INTFLAG_LIM1: Limit interrupt for channel (1)
    • MCPWM_INTFLAG_MAT1: Match interrupt for channel (1)
    • MCPWM_INTFLAG_CAP1: Capture interrupt for channel (1)
    • MCPWM_INTFLAG_LIM2: Limit interrupt for channel (2)
    • MCPWM_INTFLAG_MAT2: Match interrupt for channel (2)
    • MCPWM_INTFLAG_CAP2: Capture interrupt for channel (2)
    • MCPWM_INTFLAG_ABORT: Fast abort interrupt
robovero.lpc17xx_mcpwm.MCPWM_Start(MCPWMx, channel0, channel1, channel2)

Start MCPWM activity for each MCPWM channel. Args:

  • MCPWMx: Motor Control PWM peripheral selected. Should be: LPC_MCPWM
  • channel0: State of this command on channel 0:
    • ENABLE: ‘Start’ command will effect on channel 0
    • DISABLE: ‘Start’ command will not effect on channel 0
  • channel1: State of this command on channel 1:
    • ENABLE: ‘Start’ command will effect on channel 1
    • DISABLE: ‘Start’ command will not effect on channel 1
  • channel2: State of this command on channel 2:
    • ENABLE: ‘Start’ command will effect on channel 2
    • DISABLE: ‘Start’ command will not effect on channel 2
robovero.lpc17xx_mcpwm.MCPWM_Stop(MCPWMx, channel0, channel1, channel2)

Stop MCPWM activity for each MCPWM channel.

Args:

  • MCPWMx: Motor Control PWM peripheral selected. Should be: LPC_MCPWM
  • channel0: State of this command on channel 0:
    • ENABLE: ‘Stop’ command will effect on channel 0
    • DISABLE: ‘Stop’ command will not effect on channel 0
  • channel1: State of this command on channel 1:
    • ENABLE: ‘Stop’ command will effect on channel 1
    • DISABLE: ‘Stop’ command will not effect on channel 1
  • channel2: State of this command on channel 2:
    • ENABLE: ‘Stop’ command will effect on channel 2
    • DISABLE: ‘Stop’ command will not effect on channel 2
robovero.lpc17xx_mcpwm.MCPWM_WriteToShadow(MCPWMx, channelNum, channelSetup)

Write to MCPWM shadow registers - Update the value for period and pulse width in MCPWM peripheral.

Args:

  • MCPWMx: Motor Control PWM peripheral selected. Should be: LPC_MCPWM

  • channelNum: Channel number, should be: 0..2

  • channelSetup: Pointer to a MCPWM_CHANNEL_CFG_Type structure that contains the

    configuration information for the specified MCPWM channel.