PWM#

Modules#

sl_pwm_version_t

sl_pwm_config_t

sl_pwm_init_t

sl_pwm_fault_init_t

Enumerations#

enum
SL_FAULTA
SL_FAULTB
SL_FAULT_LAST
}

Enum to control fault a and fault b.

enum
SL_DEAD_TIME_DISABLE
SL_DEAD_TIME_ENABLE
SL_DEAD_TIME_LAST
}

Enum to control dead time.

enum
SL_DUTY_CYCLE_DISABLE
SL_DUTY_CYCLE_ENABLE
SL_DUTY_CYCLE_LAST
}

Enum to control duty cycle.

enum
SL_OVERRIDE_RESET
SL_OVERRIDE_SET
SL_OVERRIDE_LAST
}

Enum to control override.

enum
SL_OUTPUT_FAULT_RESET
SL_OUTPUT_FAULT_SET
SL_OUTPUT_FAULT_LAST
}

Enum to control output fault.

enum
SL_EVENT_DISABLE
SL_EVENT_ENABLE
SL_EVENT_LAST
}

Enum to control events.

enum
SL_CHANNEL_1
SL_CHANNEL_2
SL_CHANNEL_3
SL_CHANNEL_4
SL_CHANNEL_LAST
}

Enumeration for PWM channels(1-4)

enum
SL_BASE_TIMER_EACH_CHANNEL
SL_BASE_TIMER_ALL_CHANNEL
SL_BASE_TIMER_LAST
}

Enumeration for PWM timer.

enum
SL_POLARITYL_LOW
SL_POLARITYL_HIGH
SL_POLARITYL_LAST
}

Enumeration for PWM polarity low.

enum
SL_POLARITYH_LOW
SL_POLARITYH_HIGH
SL_POLARITYH_LAST
}

Enumeration for PWM polarity high.

enum
SL_MODE_INDEPENDENT
SL_MODE_COMPLEMENTARY
SL_MODE_LAST
}

Enumeration for PWM mode.

enum
SL_FREE_RUN_MODE = 0
SL_SINGLE_EVENT_MODE = 1
SL_DOWN_COUNT_MODE = 2
SL_UP_DOWN_MODE = 4
SL_UP_DOWN_DOUBLE_UPDATE = 5
SL_BASE_TIMER_MODE_LAST = 6
}

Enumeration for PWM base timer modes.

enum
SL_OUTPUT_LOW0
SL_OUTPUT_LOW1
SL_OUTPUT_LOW2
SL_OUTPUT_LOW3
SL_OUTPUT_HIGH0
SL_OUTPUT_HIGH1
SL_OUTPUT_HIGH2
SL_OUTPUT_HIGH3
SL_OUTPUT_LAST
}

Enumeration for PWM output complementary pairs.

enum
SL_SVT_COUNT_UP
SL_SVT_COUNT_DOWN
SL_SVT_COUNT_LAST
}

Enumeration for PWM special event trigger time base.

enum
SL_TIME_PERIOD_POSTSCALE_1_1
SL_TIME_PERIOD_POSTSCALE_1_2
SL_TIME_PERIOD_POSTSCALE_1_3
SL_TIME_PERIOD_POSTSCALE_1_4
SL_TIME_PERIOD_POSTSCALE_1_5
SL_TIME_PERIOD_POSTSCALE_1_6
SL_TIME_PERIOD_POSTSCALE_1_7
SL_TIME_PERIOD_POSTSCALE_1_8
SL_TIME_PERIOD_POSTSCALE_1_9
SL_TIME_PERIOD_POSTSCALE_1_10
SL_TIME_PERIOD_POSTSCALE_1_11
SL_TIME_PERIOD_POSTSCALE_1_12
SL_TIME_PERIOD_POSTSCALE_1_13
SL_TIME_PERIOD_POSTSCALE_1_14
SL_TIME_PERIOD_POSTSCALE_1_15
SL_TIME_PERIOD_POSTSCALE_1_16
SL_TIME_PERIOD_POSTSCALE_1_LAST
}

Enumeration for PWM Time base output post scale bits.

enum
SL_TIME_PERIOD_PRESCALE_1
SL_TIME_PERIOD_PRESCALE_2
SL_TIME_PERIOD_PRESCALE_4
SL_TIME_PERIOD_PRESCALE_8
SL_TIME_PERIOD_PRESCALE_16
SL_TIME_PERIOD_PRESCALE_32
SL_TIME_PERIOD_PRESCALE_64
SL_TIME_PERIOD_PRESCALE_LAST
}

Enumeration for PWM input clock pre scale select value.

enum
SL_VALUE_INACTIVE
SL_VALUE_ACTIVE
SL_VALUE_LAST
}

Enumeration for fault input override value.

enum
SL_OP_OVERRIDE_UNSYNC
SL_OP_OVERRIDE_SYNC
SL_OP_OVERRIDE_LAST
}

Enumeration for output override control.

enum
SL_OVERRIDE_VALUE0
SL_OVERRIDE_VALUE1
SL_OVERRIDE_VALUE_LAST
}

Enumeration for override value.

enum
SL_TRIGGER_DISABLE
SL_TRIGGER_ENABLE
SL_TRIGGER_LAST
}

PWM enable external triggering.

Typedefs#

typedef RSI_MCPWM_T

PWM structure.

typedef RSI_MCPWM_SVT_CONFIG_T

PWM Special Event trigger configuration parameters structure.

typedef RSI_MCPWM_DT_CONFIG_T

PWM DeadTime configuration parameters structure.

typedef RSI_MCPWM_CALLBACK_T

PWM Callback structure.

Functions#

void

This API is used to de-initialize the PWM peripheral.

This API is used to get the PWM version.

sl_status_t
sl_si91x_pwm_set_configuration(sl_pwm_config_t *pwm_config)

This API is used to set the PWM configuration parameters.

sl_status_t
sl_si91x_pwm_set_output_polarity(boolean_t polarity_low, boolean_t polarity_high)

This API is used to set output polarity for MCPWM.

sl_status_t
sl_si91x_pwm_start(sl_pwm_channel_t channel)

This API is used to start the MCPWM operation for the required channel.

sl_status_t
sl_si91x_pwm_stop(sl_pwm_channel_t channel)

This API is used to stop the MCPWM operation for the required channel.

sl_status_t
sl_si91x_pwm_control_base_timer(sl_pwm_timer_t base_timer)

This API is used to select the number of base timers as four base timers for four channels or one base timer for all channels of MCPWM.

sl_status_t
sl_si91x_pwm_set_time_period(sl_pwm_channel_t channel, uint32_t period, uint32_t init_val)

This API is used to set time period and counter initial value for the required MCPWM channel.

sl_status_t
sl_si91x_pwm_trigger_special_event(sl_pwm_svt_t direction, sl_si91x_pwm_svt_config_t *pwm_config)

This API is used to configure special event trigger generation for the required MCPWM channel, which allows the A/D converter to be synchronized to the PWM time base.

sl_status_t
sl_si91x_pwm_configure_dead_time(sl_si91x_pwm_dt_config_t *dead_time, sl_pwm_channel_t channel)

This API is used to configure Dead time insertion parameters for MCPWM.

sl_status_t
sl_si91x_pwm_reset_channel(sl_pwm_channel_t channel)

This API is used to reset the required channel of MCPWM.

sl_status_t
sl_si91x_pwm_reset_counter(sl_pwm_channel_t channel)

This API is used to reset the counter from the required channel of MCPWM.

sl_status_t
sl_si91x_pwm_control_period(sl_pwm_post_t post_scale, sl_pwm_pre_t pre_scale, sl_pwm_channel_t channel)

This API is used to set base time period control for the required MCPWM channel.

sl_status_t
sl_si91x_pwm_control_fault(sl_pwm_fault_t fault, sl_pwm_output_t pwm_output, sl_pwm_override_value_t value)

This API is used to control fault A/B pin output value to be overridden when a fault condition occurs.

sl_status_t
sl_si91x_pwm_set_base_timer_mode(sl_pwm_base_timer_mode_t mode, sl_pwm_channel_t channel)

This API is used to set the mode of the base timer for the required channel.

sl_status_t
sl_si91x_pwm_set_output_mode(sl_pwm_mode_t mode, sl_pwm_channel_t channel)

This API is used to set output mode for the MCPWM.

sl_status_t
sl_si91x_pwm_register_callback(sl_si91x_pwm_callback_t *callback_event, uint16_t flag)

Handles all interrupt flags of MCPWM.

sl_status_t

Unregisters the PWM event.

sl_status_t
sl_si91x_pwm_read_counter(uint16_t *counter_value, sl_pwm_channel_t channel)

This API is used to read the counter current value.

sl_status_t
sl_si91x_pwm_get_counter_direction(uint8_t *counter_direction, sl_pwm_channel_t channel)

This API is used to get time period counter direction status of the required MCPWM channel.

sl_status_t
sl_si91x_pwm_control_dead_time(sl_pwm_dead_time_t dead_time, uint32_t flag)

Controls dead time insertion at the rising edge or falling edge of any four channels.

sl_status_t

This API is used to clear the interrupts of MCPWM.

sl_status_t
sl_si91x_pwm_get_interrupt_status(uint32_t flag, uint16_t *intr_status)

This API is used to get the interrupt status of interrupt flags of MCPWM.

sl_status_t
sl_si91x_pwm_configure_duty_cycle(sl_pwm_duty_cycle_t duty_cycle, uint32_t value, sl_pwm_channel_t channel)

This API is used to control duty cycle control parameters for the required MCPWM channel.

sl_status_t
sl_si91x_pwm_output_override(sl_pwm_override_t override, sl_pwm_output_t pwm_output)

This API is used to control the output override operation of MCPWM.

sl_status_t
sl_si91x_pwm_control_override(sl_pwm_override_t override, sl_pwm_output_override_t value)

This API is used to control the override control parameter, output is in sync with PWM time period depending on operating mode.

sl_status_t
sl_si91x_pwm_control_override_value(sl_pwm_override_t override, sl_pwm_output_t pwm_output, sl_pwm_override_value_t value)

This API is used to control override value for the required output of MCPWM.

sl_status_t
sl_si91x_pwm_control_output_fault(sl_pwm_output_fault_t output_fault, uint32_t value)

This API is used to control output fault override control parameters for the required PWM output.

sl_status_t

This API is used to control the generation of a special event trigger for the required channel of MCPWM.

sl_status_t
sl_si91x_pwm_select_dead_time(sl_pwm_dead_time_t dead_time, uint32_t value)

This API is used to control dead time control parameters for the required channel.

sl_status_t
sl_si91x_pwm_set_duty_cycle(uint32_t duty_cycle, sl_pwm_channel_t channel)

This API is used to select duty cycle for the required MCPWM channel.

sl_status_t
sl_si91x_pwm_get_duty_cycle(sl_pwm_channel_t channel, uint32_t *duty_cycle)

This API is used to get duty cycle for the required MCPWM channel.

sl_status_t
sl_si91x_pwm_enable_external_trigger(sl_pwm_trigger_t enable)

This API is used to enable the use of an external trigger for base time counter increment or decrement of MCPWM.

sl_status_t
sl_si91x_pwm_get_time_period(sl_pwm_channel_t channel, uint16_t *time_period)

Get time period for the required channel.

sl_status_t
sl_si91x_pwm_init(sl_pwm_init_t *pwm_init)

This API is used to initialize PWM pins and clock.

sl_status_t
sl_si91x_pwm_fault_init(sl_pwm_fault_init_t *pwm_fault)

This API is used to initialize PWM event pins.

Enumeration Documentation#

sl_pwm_fault_t#

sl_pwm_fault_t

Enum to control fault a and fault b.

Enumerator
SL_FAULTA

PWM fault A.

SL_FAULTB

PWM fault B.

SL_FAULT_LAST

Last member of enum for validation.


Definition at line 70 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_dead_time_t#

sl_pwm_dead_time_t

Enum to control dead time.

Enumerator
SL_DEAD_TIME_DISABLE

PWM dead time disable.

SL_DEAD_TIME_ENABLE

PWM dead time enable.

SL_DEAD_TIME_LAST

Last member of enum for validation.


Definition at line 77 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_duty_cycle_t#

sl_pwm_duty_cycle_t

Enum to control duty cycle.

Enumerator
SL_DUTY_CYCLE_DISABLE

PWM duty cycle disable.

SL_DUTY_CYCLE_ENABLE

PWM duty cycle enable.

SL_DUTY_CYCLE_LAST

Last member of enum for validation.


Definition at line 84 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_override_t#

sl_pwm_override_t

Enum to control override.

Enumerator
SL_OVERRIDE_RESET

PWM override reset.

SL_OVERRIDE_SET

PWM override set.

SL_OVERRIDE_LAST

Last member of enum for validation.


Definition at line 91 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_output_fault_t#

sl_pwm_output_fault_t

Enum to control output fault.

Enumerator
SL_OUTPUT_FAULT_RESET

PWM output fault reset.

SL_OUTPUT_FAULT_SET

PWM output fault set.

SL_OUTPUT_FAULT_LAST

Last member of enum for validation.


Definition at line 98 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_event_t#

sl_pwm_event_t

Enum to control events.

Enumerator
SL_EVENT_DISABLE

PWM event disable.

SL_EVENT_ENABLE

PWM event enable.

SL_EVENT_LAST

Last member of enum for validation.


Definition at line 105 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_channel_t#

sl_pwm_channel_t

Enumeration for PWM channels(1-4)

Enumerator
SL_CHANNEL_1

PWM channel 1.

SL_CHANNEL_2

PWM channel 2.

SL_CHANNEL_3

PWM channel 3.

SL_CHANNEL_4

PWM channel 4.

SL_CHANNEL_LAST

Last member of enum for validation.


Definition at line 112 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_timer_t#

sl_pwm_timer_t

Enumeration for PWM timer.

Enumerator
SL_BASE_TIMER_EACH_CHANNEL

PWM timer for each channel.

SL_BASE_TIMER_ALL_CHANNEL

PWM timer for all channels.

SL_BASE_TIMER_LAST

Last member of enum for validation.


Definition at line 121 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_polarity_low_t#

sl_pwm_polarity_low_t

Enumeration for PWM polarity low.

Enumerator
SL_POLARITYL_LOW

PWM output polarity for low side(L0-L3)-low.

SL_POLARITYL_HIGH

PWM output polarity for low side(H0-H3)-high.

SL_POLARITYL_LAST

Last member of enum for validation.


Definition at line 128 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_polarity_high_t#

sl_pwm_polarity_high_t

Enumeration for PWM polarity high.

Enumerator
SL_POLARITYH_LOW

PWM output polarity for high side(L0-L3)-low.

SL_POLARITYH_HIGH

PWM output polarity for high side(H0-H3)-high.

SL_POLARITYH_LAST

Last member of enum for validation.


Definition at line 135 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_mode_t#

sl_pwm_mode_t

Enumeration for PWM mode.

Enumerator
SL_MODE_INDEPENDENT

PWM independent mode.

SL_MODE_COMPLEMENTARY

PWM complementary mode.

SL_MODE_LAST

Last member of enum for validation.


Definition at line 142 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_base_timer_mode_t#

sl_pwm_base_timer_mode_t

Enumeration for PWM base timer modes.

Enumerator
SL_FREE_RUN_MODE

PWM free run mode.

SL_SINGLE_EVENT_MODE

PWM single event mode.

SL_DOWN_COUNT_MODE

PWM down count mode.

SL_UP_DOWN_MODE

PWM up/down mode.

SL_UP_DOWN_DOUBLE_UPDATE

PWM up/down double update mode.

SL_BASE_TIMER_MODE_LAST

Last member of enum for validation.


Definition at line 149 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_output_t#

sl_pwm_output_t

Enumeration for PWM output complementary pairs.

Enumerator
SL_OUTPUT_LOW0

PWM output L0.

SL_OUTPUT_LOW1

PWM output L1.

SL_OUTPUT_LOW2

PWM output L2.

SL_OUTPUT_LOW3

PWM output L3.

SL_OUTPUT_HIGH0

PWM output H0.

SL_OUTPUT_HIGH1

PWM output H1.

SL_OUTPUT_HIGH2

PWM output H2.

SL_OUTPUT_HIGH3

PWM output H3.

SL_OUTPUT_LAST

Last member of enum for validation.


Definition at line 159 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_svt_t#

sl_pwm_svt_t

Enumeration for PWM special event trigger time base.

Enumerator
SL_SVT_COUNT_UP

Special event trigger occurs when time base is counting up.

SL_SVT_COUNT_DOWN

Special event trigger occurs when time base is counting down.

SL_SVT_COUNT_LAST

Last member of enum for validation.


Definition at line 172 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_post_t#

sl_pwm_post_t

Enumeration for PWM Time base output post scale bits.

Enumerator
SL_TIME_PERIOD_POSTSCALE_1_1

1:1 post scale

SL_TIME_PERIOD_POSTSCALE_1_2

1:2 post scale

SL_TIME_PERIOD_POSTSCALE_1_3

1:3 post scale

SL_TIME_PERIOD_POSTSCALE_1_4

1:4 post scale

SL_TIME_PERIOD_POSTSCALE_1_5

1:5 post scale

SL_TIME_PERIOD_POSTSCALE_1_6

1:6 post scale

SL_TIME_PERIOD_POSTSCALE_1_7

1:7 post scale

SL_TIME_PERIOD_POSTSCALE_1_8

1:8 post scale

SL_TIME_PERIOD_POSTSCALE_1_9

1:9 post scale

SL_TIME_PERIOD_POSTSCALE_1_10

1:10 post scale

SL_TIME_PERIOD_POSTSCALE_1_11

1:11 post scale

SL_TIME_PERIOD_POSTSCALE_1_12

1:12 post scale

SL_TIME_PERIOD_POSTSCALE_1_13

1:13 post scale

SL_TIME_PERIOD_POSTSCALE_1_14

1:14 post scale

SL_TIME_PERIOD_POSTSCALE_1_15

1:15 post scale

SL_TIME_PERIOD_POSTSCALE_1_16

1:16 post scale

SL_TIME_PERIOD_POSTSCALE_1_LAST

Last member of enum for validation.


Definition at line 179 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_pre_t#

sl_pwm_pre_t

Enumeration for PWM input clock pre scale select value.

Enumerator
SL_TIME_PERIOD_PRESCALE_1

1x input clock period

SL_TIME_PERIOD_PRESCALE_2

2x input clock period

SL_TIME_PERIOD_PRESCALE_4

4x input clock period

SL_TIME_PERIOD_PRESCALE_8

8x input clock period

SL_TIME_PERIOD_PRESCALE_16

16x input clock period

SL_TIME_PERIOD_PRESCALE_32

32x input clock period

SL_TIME_PERIOD_PRESCALE_64

64x input clock period

SL_TIME_PERIOD_PRESCALE_LAST

Last member of enum for validation.


Definition at line 200 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_fault_input_t#

sl_pwm_fault_input_t

Enumeration for fault input override value.

Enumerator
SL_VALUE_INACTIVE

PWM output pin is driven inactive on an external fault input A/B event.

SL_VALUE_ACTIVE

PWM output pin is driven active on an external fault input A/B event.

SL_VALUE_LAST

Last member of enum for validation.


Definition at line 212 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_output_override_t#

sl_pwm_output_override_t

Enumeration for output override control.

Enumerator
SL_OP_OVERRIDE_UNSYNC

no effect.

SL_OP_OVERRIDE_SYNC

Output override is in sync with pwm time period depending on operating mode.

SL_OP_OVERRIDE_LAST

Last member of enum for validation.


Definition at line 219 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_override_value_t#

sl_pwm_override_value_t

Enumeration for override value.

Enumerator
SL_OVERRIDE_VALUE0

Override value 0.

SL_OVERRIDE_VALUE1

Override value 1.

SL_OVERRIDE_VALUE_LAST

Last member of enum for validation.


Definition at line 226 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_pwm_trigger_t#

sl_pwm_trigger_t

PWM enable external triggering.

Enumerator
SL_TRIGGER_DISABLE

Disabling external triggering.

SL_TRIGGER_ENABLE

Enabling external triggering.

SL_TRIGGER_LAST

Last member of enum for validation.


Definition at line 233 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

Typedef Documentation#

sl_si91x_mcpwm_t#

typedef RSI_MCPWM_T sl_si91x_mcpwm_t

PWM structure.


Definition at line 53 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_svt_config_t#

typedef RSI_MCPWM_SVT_CONFIG_T sl_si91x_pwm_svt_config_t

PWM Special Event trigger configuration parameters structure.


Definition at line 55 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_dt_config_t#

typedef RSI_MCPWM_DT_CONFIG_T sl_si91x_pwm_dt_config_t

PWM DeadTime configuration parameters structure.


Definition at line 56 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_callback_t#

typedef RSI_MCPWM_CALLBACK_T sl_si91x_pwm_callback_t

PWM Callback structure.


Definition at line 57 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

Function Documentation#

sl_si91x_pwm_deinit#

void sl_si91x_pwm_deinit (void )

This API is used to de-initialize the PWM peripheral.

Parameters
[in]

Returns

  • none


Definition at line 294 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_get_version#

sl_pwm_version_t sl_si91x_pwm_get_version (void )

This API is used to get the PWM version.

Parameters
[in]

Returns


Definition at line 302 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_set_configuration#

sl_status_t sl_si91x_pwm_set_configuration (sl_pwm_config_t * pwm_config)

This API is used to set the PWM configuration parameters.

Parameters
[in]pwm_config

pointer to configuration parameters of type sl_pwm_config_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 316 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_set_output_polarity#

sl_status_t sl_si91x_pwm_set_output_polarity (boolean_t polarity_low, boolean_t polarity_high)

This API is used to set output polarity for MCPWM.

Parameters
[in]polarity_low

Output polarity for low side (L3, L2, L1, L0)

[in]polarity_high

Output polarity for high side (H3, H2, H1, H0)

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 331 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_start#

sl_status_t sl_si91x_pwm_start (sl_pwm_channel_t channel)

This API is used to start the MCPWM operation for the required channel.

Parameters
[in]channel

Channel number (1 to 4) of type sl_pwm_channel_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 349 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_stop#

sl_status_t sl_si91x_pwm_stop (sl_pwm_channel_t channel)

This API is used to stop the MCPWM operation for the required channel.

Parameters
[in]channel

Channel number (1 to 4) of type sl_pwm_channel_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 368 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_control_base_timer#

sl_status_t sl_si91x_pwm_control_base_timer (sl_pwm_timer_t base_timer)

This API is used to select the number of base timers as four base timers for four channels or one base timer for all channels of MCPWM.

Parameters
[in]base_timer

PWM base timer of type sl_pwm_timer_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 384 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_set_time_period#

sl_status_t sl_si91x_pwm_set_time_period (sl_pwm_channel_t channel, uint32_t period, uint32_t init_val)

This API is used to set time period and counter initial value for the required MCPWM channel.

Parameters
[in]channel

Channel number (1 to 4) of type sl_pwm_channel_t

[in]period

Time period value

[in]init_val

Update the base time counter initial value

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 401 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_trigger_special_event#

sl_status_t sl_si91x_pwm_trigger_special_event (sl_pwm_svt_t direction, sl_si91x_pwm_svt_config_t * pwm_config)

This API is used to configure special event trigger generation for the required MCPWM channel, which allows the A/D converter to be synchronized to the PWM time base.

Parameters
[in]direction

Special event trigger for time base direction of type sl_pwm_svt_t

[in]pwm_config

Pointer to the structure of type sl_si91x_pwm_svt_config_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 421 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_configure_dead_time#

sl_status_t sl_si91x_pwm_configure_dead_time (sl_si91x_pwm_dt_config_t * dead_time, sl_pwm_channel_t channel)

This API is used to configure Dead time insertion parameters for MCPWM.

Parameters
[in]dead_time

Pointer to the structure of type sl_si91x_pwm_dt_config_t

[in]channel

Channel number (1 to 4) of type sl_pwm_channel_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 440 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_reset_channel#

sl_status_t sl_si91x_pwm_reset_channel (sl_pwm_channel_t channel)

This API is used to reset the required channel of MCPWM.

Parameters
[in]channel

Channel number (1 to 4) of type sl_pwm_channel_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 458 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_reset_counter#

sl_status_t sl_si91x_pwm_reset_counter (sl_pwm_channel_t channel)

This API is used to reset the counter from the required channel of MCPWM.

Parameters
[in]channel

Channel number (1 to 4) of type sl_pwm_channel_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 476 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_control_period#

sl_status_t sl_si91x_pwm_control_period (sl_pwm_post_t post_scale, sl_pwm_pre_t pre_scale, sl_pwm_channel_t channel)

This API is used to set base time period control for the required MCPWM channel.

Parameters
[in]post_scale

Time base output post scale bits of type sl_pwm_post_t

[in]pre_scale

Base timer input clock pre scale select value of type sl_pwm_pre_t

[in]channel

Channel number (1 to 4) of type sl_pwm_channel_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 494 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_control_fault#

sl_status_t sl_si91x_pwm_control_fault (sl_pwm_fault_t fault, sl_pwm_output_t pwm_output, sl_pwm_override_value_t value)

This API is used to control fault A/B pin output value to be overridden when a fault condition occurs.

Parameters
[in]fault

Enum of type sl_pwm_fault_t

[in]pwm_output

Enum of type sl_pwm_output_t

[in]value

Fault input A/B PWM output override value of type sl_pwm_override_value_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 514 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_set_base_timer_mode#

sl_status_t sl_si91x_pwm_set_base_timer_mode (sl_pwm_base_timer_mode_t mode, sl_pwm_channel_t channel)

This API is used to set the mode of the base timer for the required channel.

Parameters
[in]mode

Base timer operating mode of type sl_pwm_base_timer_mode_t

[in]channel

Channel number (1 to 4) of type sl_pwm_channel_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 530 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_set_output_mode#

sl_status_t sl_si91x_pwm_set_output_mode (sl_pwm_mode_t mode, sl_pwm_channel_t channel)

This API is used to set output mode for the MCPWM.

Parameters
[in]mode

PWM Output mode of type sl_pwm_mode_t

[in]channel

Channel number (1 to 4) of type sl_pwm_channel_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 546 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_register_callback#

sl_status_t sl_si91x_pwm_register_callback (sl_si91x_pwm_callback_t * callback_event, uint16_t flag)

Handles all interrupt flags of MCPWM.

Parameters
[in]callback_event

Structure of type sl_si91x_pwm_callback_t

[in]flag

It is the logical OR of different interrupts generated on multiple channels

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is a null pointer


Definition at line 564 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_unregister_callback#

sl_status_t sl_si91x_pwm_unregister_callback (uint16_t flag)

Unregisters the PWM event.

Parameters
[in]flag

It is the logical OR of different interrupts generated on multiple channels

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is a null pointer


Definition at line 582 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_read_counter#

sl_status_t sl_si91x_pwm_read_counter (uint16_t * counter_value, sl_pwm_channel_t channel)

This API is used to read the counter current value.

Parameters
[in]counter_value

Counter value

[in]channel

Channel number (1 to 4) of type sl_pwm_channel_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 602 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_get_counter_direction#

sl_status_t sl_si91x_pwm_get_counter_direction (uint8_t * counter_direction, sl_pwm_channel_t channel)

This API is used to get time period counter direction status of the required MCPWM channel.

Parameters
[out]counter_direction

Pointer to the counter direction (up/down) of type uint8_t

[in]channel

Channel number (1 to 4) of type sl_pwm_channel_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 622 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_control_dead_time#

sl_status_t sl_si91x_pwm_control_dead_time (sl_pwm_dead_time_t dead_time, uint32_t flag)

Controls dead time insertion at the rising edge or falling edge of any four channels.

Parameters
[in]dead_time

Enum of type sl_pwm_dead_time_t

[in]flag

ORing of the following values:

  • DT_EN_CH0

  • DT_EN_CH1

  • DT_EN_CH2

  • DT_EN_CH3

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 643 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_clear_interrupt#

sl_status_t sl_si91x_pwm_clear_interrupt (uint32_t flag)

This API is used to clear the interrupts of MCPWM.

Parameters
[in]flag

The logical OR of different interrupts generated on multiple channels

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is a null pointer


Definition at line 661 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_get_interrupt_status#

sl_status_t sl_si91x_pwm_get_interrupt_status (uint32_t flag, uint16_t * intr_status)

This API is used to get the interrupt status of interrupt flags of MCPWM.

Parameters
[in]flag

Flag value

[out]intr_status

Pointer to interrupt status

Returns

  • Interrupt status of the required interrupt flag


Definition at line 677 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_configure_duty_cycle#

sl_status_t sl_si91x_pwm_configure_duty_cycle (sl_pwm_duty_cycle_t duty_cycle, uint32_t value, sl_pwm_channel_t channel)

This API is used to control duty cycle control parameters for the required MCPWM channel.

Parameters
[in]duty_cycle

Enum of type sl_pwm_duty_cycle_t

[in]value

This can be a logical OR of the following parameters:

  • IMDT_DUTYCYCLE_UPDATE_EN: Enable to update the duty cycle immediately

  • DUTYCYCLE_UPDATE_DISABLE: Duty cycle register updation disable

[in]channel

Channel number (1 to 4) of type sl_pwm_channel_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 697 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_output_override#

sl_status_t sl_si91x_pwm_output_override (sl_pwm_override_t override, sl_pwm_output_t pwm_output)

This API is used to control the output override operation of MCPWM.

Parameters
[in]override

Enum of type sl_pwm_override_t

[in]pwm_output

PWM output override of type sl_pwm_output_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 714 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_control_override#

sl_status_t sl_si91x_pwm_control_override (sl_pwm_override_t override, sl_pwm_output_override_t value)

This API is used to control the override control parameter, output is in sync with PWM time period depending on operating mode.

Parameters
[in]override

Enum of type sl_pwm_override_t

[in]value

Output override to be in sync with PWM time period sl_pwm_output_override_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 732 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_control_override_value#

sl_status_t sl_si91x_pwm_control_override_value (sl_pwm_override_t override, sl_pwm_output_t pwm_output, sl_pwm_override_value_t value)

This API is used to control override value for the required output of MCPWM.

Parameters
[in]override

Enum of type sl_pwm_override_t

[in]pwm_output

PWM output override of type sl_pwm_output_t

[in]value

Override value of type sl_pwm_override_value_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 750 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_control_output_fault#

sl_status_t sl_si91x_pwm_control_output_fault (sl_pwm_output_fault_t output_fault, uint32_t value)

This API is used to control output fault override control parameters for the required PWM output.

Parameters
[in]output_fault

Enum of type sl_pwm_output_fault_t

[in]value

This can be a logical OR of the below parameters:

  • FLT_A_MODE: if bit one then cycle by cycle by mode and zero then latched mode

  • FLT_B_MODE: if bit one then cycle by cycle by mode and zero then latched mode

  • OP_POLARITY_H: Output polarity for high (H3, H2, H1, H0) side signals. If bit 0 then in active low mode and 1 then active high mode.

  • OP_POLARITY_L: Output polarity for low (L3, L2, L1, L0) side signals. If bit 0 then in active low mode and 1 then active high mode.

  • FLT_A_ENABLE: Enable fault A

  • FLT_B_ENABLE: Enable fault B

  • COMPLEMENT_MODE: PWM I/O pair mode If the bit is 1 then PWM I/O pin pair is in the complementary output mode If the bit is 0 then PWM I/O pin pair is in the independent output mode

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 782 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_control_special_event_trigger#

sl_status_t sl_si91x_pwm_control_special_event_trigger (sl_pwm_event_t event)

This API is used to control the generation of a special event trigger for the required channel of MCPWM.

Parameters
[in]event

Enum of type sl_pwm_event_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 797 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_select_dead_time#

sl_status_t sl_si91x_pwm_select_dead_time (sl_pwm_dead_time_t dead_time, uint32_t value)

This API is used to control dead time control parameters for the required channel.

Parameters
[in]dead_time

Enum of type sl_pwm_dead_time_t

[in]value

This can be a logical OR of the below parameters:

  • DEADTIME_SELECT_ACTIVE: Deadtime select bits for PWM going active Possible values are as below if bit zero then use counter A, if one then use counter B

  • DEADTIME_SELECT_INACTIVE: Deadtime select bits for PWM going inactive Possible values are as below if bit zero then use counter A, if one then use counter B

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 817 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_set_duty_cycle#

sl_status_t sl_si91x_pwm_set_duty_cycle (uint32_t duty_cycle, sl_pwm_channel_t channel)

This API is used to select duty cycle for the required MCPWM channel.

Parameters
[in]duty_cycle

Duty cycle value

[in]channel

Channel number (1 to 4) of type sl_pwm_channel_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 833 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_get_duty_cycle#

sl_status_t sl_si91x_pwm_get_duty_cycle (sl_pwm_channel_t channel, uint32_t * duty_cycle)

This API is used to get duty cycle for the required MCPWM channel.

Parameters
[in]channel

Channel number (1 to 4) of type sl_pwm_channel_t

[out]duty_cycle

Pointer to the duty cycle value

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 849 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_enable_external_trigger#

sl_status_t sl_si91x_pwm_enable_external_trigger (sl_pwm_trigger_t enable)

This API is used to enable the use of an external trigger for base time counter increment or decrement of MCPWM.

Parameters
[in]enable

Controlling external trigger of type sl_pwm_trigger_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 866 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_get_time_period#

sl_status_t sl_si91x_pwm_get_time_period (sl_pwm_channel_t channel, uint16_t * time_period)

Get time period for the required channel.

Parameters
[in]channel

Channel number (1 to 4) of type sl_pwm_channel_t

[out]time_period

Pointer to read time period

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_INVALID_PARAMETER - The parameter is an invalid argument

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 882 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_init#

sl_status_t sl_si91x_pwm_init (sl_pwm_init_t * pwm_init)

This API is used to initialize PWM pins and clock.

Parameters
[in]pwm_init

Pointer to the structure of type sl_pwm_init_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 893 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h

sl_si91x_pwm_fault_init#

sl_status_t sl_si91x_pwm_fault_init (sl_pwm_fault_init_t * pwm_fault)

This API is used to initialize PWM event pins.

Parameters
[in]pwm_fault

Pointer to the structure of type sl_pwm_fault_init_t

Returns

  • returns status 0 if successful, else error code as follows:

    • SL_STATUS_OK - Success

    • SL_STATUS_NULL_POINTER - The parameter is null pointer


Definition at line 904 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_pwm.h