Ultra Low-Power Timer#
Modules#
Enumerations#
Enumeration to represent ULP-timer instances.
Enumeration to represent ULP-timer modes.
Enumeration to represent ULP-timer types.
Enumeration to represent values of clock sources to select as Timer clock.
Typedefs#
Typedef for the function pointer of the callback function.
Renaming clock type enum.
Renaming clock type enum.
Variables#
true to enable static and false to enable dynamic clock type
true to enable and false to disable ULP timer in synchronous mode to ULPSS pclk
timer input clock source, refer ulp_timer_clk_input_source_t for possible values
true to wait and false to Skip waiting for switching timer clk
timer number, SL_ULP_TIMER_NUMBER for default values
timer mode, SL_ULP_TIMER_MODE for default values
timer type, SL_ULP_TIMER_TYPE for default values
timer match value SL_ULP_TIMER_MATCH_VALUE(delay time) in microseconds
timer direction, SL_ULP_TIMER_DIRECTION for default values
Release version number.
sqa version number
dev version number
Functions#
Configures and enables the ULP-Timer input clock source.
Initializes the ULP-Timer module by configuring and enabling the clock source.
Configures the ULP-Timer parameters such as timer number, mode, type, match-value, and direction.
Starts the ULP-Timer.
Stops the running ULP-Timer instance.
Restarts an already running ULP-Timer, which means it will first stop the timer instance and then starts it again .
Set the ULP-Timer type as 256 µs type, 1µs type or Count-down timer type.
Set the ULP-Timer direction as up-counting or down-counting, by default, it works as down-counter This API should be used when timer is stopped.
Sets the ULP-Timer Mode as one-shot or periodic.
Sets the ULP-Timer match value.
Reads the ULP-Timer current count.
Reads the ULP-Timer type.
Reads the ULP-Timer mode.
Read the ULP-Timer direction (up-counter or down-counter).
Registers the callback for the timer timeout interrupt and enables the interrupt, as per instance.
Unregisters the callback for the timer timeout interrupt and disabling its interrupts as per timer instance.
Configures the Ulpss SoC clock from M4 SOC clock, to enable the SOC clock source.
Configures the XTAL clock, when clock source is external XTAL clock.
De-Initializes the ULP-Timer clock by disabling the peripheral clock.
Gets the ULP-timer version.
Macros#
default 1-second timer match-value for down-counter timer-type with 20Mhz clock
Enumeration Documentation#
ulp_timer_instance_t#
ulp_timer_instance_t
Enumeration to represent ULP-timer instances.
Enumerator | |
---|---|
ULP_TIMER_0 | ULP Timer0 Instance. |
ULP_TIMER_1 | ULP Timer1 Instance. |
ULP_TIMER_2 | ULP Timer2 Instance. |
ULP_TIMER_3 | ULP Timer3 Instance. |
ULP_TIMER_LAST | Last member of enum for validation. |
65
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
ulp_timer_mode_t#
ulp_timer_mode_t
Enumeration to represent ULP-timer modes.
Enumerator | |
---|---|
ULP_TIMER_MODE_ONESHOT | ULP Timer one-shot mode. |
ULP_TIMER_MODE_PERIODIC | ULP Timer periodic mode. |
ULP_TIMER_MODE_LAST | Last member of enum for validation. |
74
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
ulp_timer_type_t#
ulp_timer_type_t
Enumeration to represent ULP-timer types.
Enumerator | |
---|---|
ULP_TIMER_TYP_DEFAULT | ULP Timer normal down counter type. |
ULP_TIMER_TYP_1US | ULP Timer one microsecond type. |
ULP_TIMER_TYP_256US | ULP Timer 256 microsecond type. |
ULP_TIMER_TYP_LAST | Last member of enum for validation. |
81
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
ulp_timer_clk_input_source_t#
ulp_timer_clk_input_source_t
Enumeration to represent values of clock sources to select as Timer clock.
Enumerator | |
---|---|
ULP_TIMER_REF_CLK_SRC | ref clock input source |
ULP_TIMER_32KHZ_RO_CLK_SRC | 32 kHz ro clock input source |
ULP_TIMER_32KHZ_RC_CLK_SRC | 32 kHz rc clock input source |
ULP_TIMER_32KHZ_XTAL_CLK_SRC | 32 kHz xtal clock input source |
ULP_TIMER_32MHZ_RC_CLK_SRC | 32 MHz rc clock input source |
ULP_TIMER_20MHZ_RO_CLK_SRC | 20 MHz ro clock input source |
ULP_TIMER_ULP_CLK_SRC_LAST | Last member of enum for validation. |
89
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
Typedef Documentation#
ulp_timer_callback_t#
typedef void(* ulp_timer_callback_t) (void) )(void)
Typedef for the function pointer of the callback function.
59
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
ulp_timer_clock_t#
typedef CLK_ENABLE_T ulp_timer_clock_t
Renaming clock type enum.
61
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
ulp_timer_direction_t#
typedef ulp_timer_dir_t ulp_timer_direction_t
Renaming clock type enum.
62
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
Variable Documentation#
ulp_timer_clk_type#
uint8_t ulp_timer_clk_src_config_t::ulp_timer_clk_type
true to enable static and false to enable dynamic clock type
101
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
ulp_timer_sync_to_ulpss_pclk#
boolean_t ulp_timer_clk_src_config_t::ulp_timer_sync_to_ulpss_pclk
true to enable and false to disable ULP timer in synchronous mode to ULPSS pclk
103
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
ulp_timer_clk_input_src#
uint8_t ulp_timer_clk_src_config_t::ulp_timer_clk_input_src
timer input clock source, refer ulp_timer_clk_input_source_t for possible values
105
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
ulp_timer_skip_switch_time#
boolean_t ulp_timer_clk_src_config_t::ulp_timer_skip_switch_time
true to wait and false to Skip waiting for switching timer clk
106
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
timer_num#
uint8_t ulp_timer_config_t::timer_num
timer number, SL_ULP_TIMER_NUMBER for default values
111
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
timer_mode#
uint8_t ulp_timer_config_t::timer_mode
timer mode, SL_ULP_TIMER_MODE for default values
112
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
timer_type#
uint8_t ulp_timer_config_t::timer_type
timer type, SL_ULP_TIMER_TYPE for default values
113
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
timer_match_value#
uint32_t ulp_timer_config_t::timer_match_value
timer match value SL_ULP_TIMER_MATCH_VALUE(delay time) in microseconds
114
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
timer_direction#
uint8_t ulp_timer_config_t::timer_direction
timer direction, SL_ULP_TIMER_DIRECTION for default values
115
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
release#
uint8_t sl_ulp_timer_version_t::release
Release version number.
120
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
major#
uint8_t sl_ulp_timer_version_t::major
sqa version number
121
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
minor#
uint8_t sl_ulp_timer_version_t::minor
dev version number
122
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
Function Documentation#
sl_si91x_ulp_timer_configure_clock#
sl_status_t sl_si91x_ulp_timer_configure_clock (ulp_timer_clk_src_config_t * timer_clk_ptr)
Configures and enables the ULP-Timer input clock source.
[in] | timer_clk_ptr | Pointer to timer_clk configuration structure |
By default, configures the 'reference clock source' (32 MHZ) as the timer clock source, clock-type as 'static', disables synchronization to ULPSS pclk and skips waiting for switching of timer clock. It is called inside sl_si91x_ulp_timer_init API. Note
: There are two XTAL Clk sources one is Internal and external XTAL clk source. In order to enable the external XTAL clk source need to configure the NPSS_GPIO pins which can be done through sl_si91x_ulp_timer_configure_xtal_clock(uint8_t xtal_pin) API i.e user need to call that API first. In order to enable the soc CLK source need to configure the Ulpss soc Clk from M4 soc clk please refer sl_si91x_ulp_timer_configure_soc_clock(boolean_t div_factor_type, uint16_t div_factor )
Returns
status 0 if successful, else error code as follows:
SL_STATUS_INVALID_PARAMETER (0x0021) - Timer clock type or timer clock source values are invalid
SL_STATUS_INVALID_CONFIGURATION (0x0023) - Timer clock-source configuration structure members have invalid configurations.
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_OK (0x0000) - Success, timer clock-source parameters configured properly
149
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_init#
sl_status_t sl_si91x_ulp_timer_init (ulp_timer_clk_src_config_t * timer_clk_ptr)
Initializes the ULP-Timer module by configuring and enabling the clock source.
[in] | timer_clk_ptr | Pointer to timer_clk configuration structure |
Initializes the ULP-Timer clock by configuring the clock source.
By default, configures the 'reference clock source' (32 MHZ) as the timer clock source, clock-type as 'static', disables synchronization to ULPSS pclk and skips waiting for switching of timer clock.
Returns
status 0 if successful, else error code. SL_STATUS_INVALID_PARAMETER (0x0021) - Timer clock type or timer clock source values are invalid SL_STATUS_INVALID_CONFIGURATION (0x0023) - Timer clock-source configuration structure members has invalid configurations. SL_STATUS_NULL_POINTER (0x0022) - The parameter is null pointer SL_STATUS_OK (0x0000) - Success, timer clock-source parameters configured properly
Returns
status 0 if successful, else error code as follows:
SL_STATUS_INVALID_PARAMETER (0x0021) - Timer clock type or timer clock source values are invalid
SL_STATUS_INVALID_CONFIGURATION (0x0023) - Timer clock-source configuration structure members have invalid configurations.
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_OK (0x0000) - Success, timer clock-source parameters configured properly
164
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_set_configuration#
sl_status_t sl_si91x_ulp_timer_set_configuration (ulp_timer_config_t * timer_config_ptr)
Configures the ULP-Timer parameters such as timer number, mode, type, match-value, and direction.
[in] | timer_config_ptr | Pointer to the timer_configuration structure |
Also configures the integral and fractional values of clock cycles per microseconds or per 256 microseconds, as per the timer-type value.
Pre-conditions:
Returns
status 0 if successful, else error code as follows:
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_INVALID_INDEX (0x0027) - Timer configuration structure member 'timer_num' has an invalid value.
SL_STATUS_INVALID_MODE (0x0024) - Timer configuration structure member 'timer_mode' has an invalid value.
SL_STATUS_INVALID_TYPE (0x0026) - Timer configuration structure member 'timer_type' has an invalid value.
SL_STATUS_INVALID_PARAMETER (0x0021) - Timer configuration structure member 'timer_direction' has an invalid value.
SL_STATUS_OK (0x0000) - Success, timer parameters are configured properly
183
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_start#
sl_status_t sl_si91x_ulp_timer_start (ulp_timer_instance_t timer_num)
Starts the ULP-Timer.
[in] | timer_num | enum for ULP-timer Number (0 to 3), ulp_timer_instance_t for possible values |
Sets the start bit of timer control register, which is a self clearing bit. Should be called after clock & timer configurations and timeout-callback registrations. Timer instance must not be in running state when calling this API.
Pre-conditions:
Returns
status 0 if successful, else error code as follows:
SL_STATUS_INVALID_INDEX (0x0027) - 'timer_num' parameter value is invalid.
SL_STATUS_OK (0x0000) - Successfully started the timer instance
201
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_stop#
sl_status_t sl_si91x_ulp_timer_stop (ulp_timer_instance_t timer_num)
Stops the running ULP-Timer instance.
[in] | timer_num | enum for ULP-timer Number (0 to 3), ulp_timer_instance_t for possible values |
Sets the stop bit of timer control register, which is a self clearing bit. This will only stops the timer but not disables & unregisters its interrupts.
Pre-conditions:
Returns
status 0 if successful, else error code as follows:
SL_STATUS_INVALID_INDEX (0x0027) - 'timer_num' parameter value is invalid.
SL_STATUS_OK (0x0000) - Successfully stopped the timer instance
218
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_restart#
sl_status_t sl_si91x_ulp_timer_restart (ulp_timer_instance_t timer_num)
Restarts an already running ULP-Timer, which means it will first stop the timer instance and then starts it again .
[in] | timer_num | enum for ULP-timer Number, ulp_timer_instance_t for possible values |
This will only restarts the count of an already running counter.
Pre-conditions:
Returns
status 0 if successful, else error code as follows:
SL_STATUS_INVALID_INDEX (0x0027) - 'timer_num' parameter value is invalid.
SL_STATUS_OK (0x0000) - Successfully restarted the timer instance
235
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_set_type#
sl_status_t sl_si91x_ulp_timer_set_type (ulp_timer_instance_t timer_num, ulp_timer_type_t timer_type)
Set the ULP-Timer type as 256 µs type, 1µs type or Count-down timer type.
[in] | timer_num | enum for ULP-timer Number, ulp_timer_instance_t for possible values |
[in] | timer_type | enum for ULP-timer Type, ulp_timer_type_t for possible values |
1 microsecond type : The time unit is 1µs.
256 microsecond type : The time unit is 256µs.
Count-down timer type : The time unit is one clock cycle period. This API should be used when timer is stopped
Pre-conditions:
Returns
status 0 if successful, else error code as follows:
SL_STATUS_INVALID_INDEX (0x0027) - 'timer_num' parameter value is invalid.
SL_STATUS_INVALID_TYPE (0x0026) - 'timer_type' parameter value is invalid.
SL_STATUS_OK (0x0000) - Successfully set timer-type
255
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_set_direction#
sl_status_t sl_si91x_ulp_timer_set_direction (ulp_timer_instance_t timer_num, ulp_timer_direction_t timer_direction)
Set the ULP-Timer direction as up-counting or down-counting, by default, it works as down-counter This API should be used when timer is stopped.
[in] | timer_num | enum for ULP-timer Number, ulp_timer_instance_t for possible values |
[in] | timer_direction | enum for ULP-timer direction, ulp_timer_direction_t for possible values |
Pre-conditions:
Returns
status 0 if successful, else error code as follows:
SL_STATUS_INVALID_INDEX (0x0027) - 'timer_num' parameter value is invalid.
SL_STATUS_INVALID_PARAMETER (0x0021) - 'timer_direction' parameter value is invalid.
SL_STATUS_OK (0x0000) - Successfully set timer-direction
273
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_set_mode#
sl_status_t sl_si91x_ulp_timer_set_mode (ulp_timer_instance_t timer_num, ulp_timer_mode_t timer_mode)
Sets the ULP-Timer Mode as one-shot or periodic.
[in] | timer_num | enum for ULP-timer Number, ulp_timer_instance_t for possible values |
[in] | timer_mode | enum for ULP-timer mode, ulp_timer_mode_t for possible values |
In one shot operation, the timer counts till the timeout and then generates a single interrupt after which it returns to idle state. Where as in periodic operation the timer when reaches the timeout value generates an interrupt and starts counting again from the originally set value. This API should be used when timer is stopped
Pre-conditions:
Returns
status 0 if successful, else error code as follows:
SL_STATUS_INVALID_INDEX (0x0027) - 'timer_num' parameter value is invalid.
SL_STATUS_INVALID_MODE (0x0024) - 'timer_mode' parameter value is invalid.
SL_STATUS_OK (0x0000) - Successfully set timer-mode
293
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_set_count#
sl_status_t sl_si91x_ulp_timer_set_count (ulp_timer_instance_t timer_num, uint32_t timer_match_value)
Sets the ULP-Timer match value.
[in] | timer_num | enum for ULP-timer Number, ulp_timer_instance_t for possible values. |
[in] | timer_match_value | for ULP-timer timeout value |
When the timer reaches the timeout value & if the interrupt is enabled the timeout condition will generate an interrupt to the processor.
For one microsecond type, match-value = number of microseconds
For 256 microsecond type, match-value = (time in microseconds)/256
For normal up/down counter type, timer = (number of clock cycles per microseconds * time in microseconds) This API should be used when timer is stopped.
Pre-conditions:
Returns
status 0 if successful, else error-code
SL_STATUS_INVALID_INDEX (0x0027) - 'timer_num' parameter value is invalid.
SL_STATUS_OK (0x0000) - Successfully set timer match value.
316
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_get_count#
sl_status_t sl_si91x_ulp_timer_get_count (ulp_timer_instance_t timer_num, uint32_t * count_value)
Reads the ULP-Timer current count.
[in] | timer_num | enum for ULP-timer Number, ulp_timer_instance_t for possible values. |
[in] | count_value | Pointer to variable which will store the current count of the timer |
If counter-down is set register bits indicate time remaining before timeout (read as 32'hFFFF_FFFF initially). If counter-up is set these bits directly gives out the up-running counter/timer value. Updates the timer current-count value to the count-value variable, passed as reference by user (2nd argument)
Pre-conditions:
Returns
status 0 if successful, else error code as follows:
SL_STATUS_NULL_POINTER (0x0022) - 'Pointer to count_value' parameter is a null pointer.
SL_STATUS_INVALID_INDEX (0x0027) - 'timer_num' parameter value is invalid.
SL_STATUS_OK (0x0000) - Successfully read the timer's current count value
338
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_get_type#
sl_status_t sl_si91x_ulp_timer_get_type (ulp_timer_instance_t timer_num, uint32_t * timer_type)
Reads the ULP-Timer type.
[in] | timer_num | enum for ULP-timer Number, ulp_timer_instance_t for possible values. |
[in] | timer_type | Pointer to variable which will store the current type of the timer |
Updates the timer type value to the timer_type variable, passed as reference by user (2nd argument) as below : 0 for down-counter type 1 for 1us type 2 for 256us type
Returns
status 0 if successful, else error code as follows:
SL_STATUS_NULL_POINTER (0x0022) - 'Pointer to timer_type' parameter is a null pointer.
SL_STATUS_INVALID_INDEX (0x0027) - 'timer_num' parameter value is invalid.
SL_STATUS_OK (0x0000) - Successfully read the timer's current type
359
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_get_mode#
sl_status_t sl_si91x_ulp_timer_get_mode (ulp_timer_instance_t timer_num, uint32_t * timer_mode)
Reads the ULP-Timer mode.
[in] | timer_num | enum for ULP-timer Number, ulp_timer_instance_t for possible values. |
[in] | timer_mode | Pointer to variable which will store the current mode of the timer |
Updates the timer mode value to the timer_mode variable, passed as reference by user (2nd argument) as below : 0 for one-shot mode 1 for periodic mode
Returns
status 0 if successful, else error code as follows:
SL_STATUS_NULL_POINTER (0x0022) - 'Pointer to timer_mode' parameter is a null pointer.
SL_STATUS_INVALID_INDEX (0x0027) - 'timer_num' parameter value is invalid.
SL_STATUS_OK (0x0000) - Successfully read the timer's current mode
379
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_get_direction#
sl_status_t sl_si91x_ulp_timer_get_direction (ulp_timer_instance_t timer_num, uint32_t * timer_direction)
Read the ULP-Timer direction (up-counter or down-counter).
[in] | timer_num | enum for ULP-timer Number, ulp_timer_instance_t for possible values. |
[in] | timer_direction | Pointer to variable which will store the current direction of the timer |
Updates the timer direction to the timer_direction variable, passed as reference by user (2nd argument) as below : 0 for down-counting 1 for up-counting
Returns
status 0 if successful, else error code as follows:
SL_STATUS_NULL_POINTER (0x0022) - 'Pointer to timer_direction' parameter is a null pointer.
SL_STATUS_INVALID_INDEX (0x0027) - 'timer_num' parameter value is invalid.
SL_STATUS_OK (0x0000) - Successfully read the timer's current direction
399
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_register_timeout_callback#
sl_status_t sl_si91x_ulp_timer_register_timeout_callback (ulp_timer_instance_t timer_num, ulp_timer_callback_t on_timeout_callback)
Registers the callback for the timer timeout interrupt and enables the interrupt, as per instance.
[in] | timer_num | enum for ULP-timer Number, ulp_timer_instance_t for possible values. |
[in] | on_timeout_callback | (function pointer) Callback function pointer to be called when the timer timeout interrupt occurred. |
If any callback is already registered, the user needs to unregister the callback first before registering the callback else it will return call SL_STATUS_BUSY error.
Returns
status 0 if successful, else error code as follows:
SL_STATUS_NULL_POINTER (0x0022) - 'pointer to callback_data_input' parameter is a null pointer.
SL_STATUS_INVALID_INDEX (0x0027) - 'timer_num' parameter value is invalid.
SL_STATUS_ALLOCATION_FAILED (0x0019) - Timer interrupt enabling failed.
SL_STATUS_BUSY (0x0004) - The callback is already registered, unregister the previous callback before registering a new one.
SL_STATUS_OK (0x0000) - Successfully registered the timer timeout callback
419
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_unregister_timeout_callback#
sl_status_t sl_si91x_ulp_timer_unregister_timeout_callback (ulp_timer_instance_t timer_num)
Unregisters the callback for the timer timeout interrupt and disabling its interrupts as per timer instance.
[in] | timer_num | enum for ULP-timer Number, ulp_timer_instance_t for possible values. |
Pre-conditions:
Returns
status 0 if successful, else error code as follows:
SL_STATUS_INVALID_INDEX (0x0027) - 'timer_num' parameter value is invalid.
SL_STATUS_ALLOCATION_FAILED (0x0019) - Timer interrupt disabling failed.
SL_STATUS_OK (0x0000) - Successfully unregistered the timer timeout callback
435
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_configure_soc_clock#
sl_status_t sl_si91x_ulp_timer_configure_soc_clock (boolean_t div_factor_type, uint16_t div_factor)
Configures the Ulpss SoC clock from M4 SOC clock, to enable the SOC clock source.
[in] | div_factor_type | value to divide the clock, ensure that it should be an odd number if div_factor_type is 1 & vice versa |
[in] | div_factor | selects the type of divider for m4_soc_clk_2ulpss
|
This API is used to select the ULPSS processor clock source when input is soc clock source which is greater than 100MHz(used for high-power mode) To divide the clock, ensure that it should be odd number if div_factor_type is 1 & viceversa Div_factor_type selects the type of divider for m4_soc_clk_2ulpss
0 => Even Divider is selected
1 => Odd Divider is selected Use this API in place of timer clock config API, when using soc clock source with timer in high power mode
Returns
status 0 if successful, else error code as follows:
SL_STATUS_INVALID_PARAMETER(0x0021) - 'div_factor' is not according to div_factor_type
456
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_configure_xtal_clock#
sl_status_t sl_si91x_ulp_timer_configure_xtal_clock (uint8_t xtal_pin)
Configures the XTAL clock, when clock source is external XTAL clock.
[in] | xtal_pin | : Pin number of NPSS_GPIO. Possible values are 0,1,2,3,4 |
To enable the external XTAL clk source need to call this API before calling sl_si91x_ulp_timer_configure_clock API.
Returns
status 0 if successful, else error code as follows:
SL_STATUS_INVALID_PARAMETER(0x0021) - 'xtal_pin' parameter value is invalid.
467
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_deinit#
void sl_si91x_ulp_timer_deinit (void )
De-Initializes the ULP-Timer clock by disabling the peripheral clock.
[in] |
Returns
none
Note
Unregisters the callbacks of all timer instances
491
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
sl_si91x_ulp_timer_get_version#
sl_ulp_timer_version_t sl_si91x_ulp_timer_get_version (void )
Gets the ULP-timer version.
[in] |
It returns the API version of ULP-timer.
This function is used to know the ULP_TIMER version
Returns
sl_ulp_timer_version_t type version
503
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h
Macro Definition Documentation#
SL_TIMER_MATCH_VALUE_DEFAULT#
#define SL_TIMER_MATCH_VALUE_DEFAULTValue:
20000000
default 1-second timer match-value for down-counter timer-type with 20Mhz clock
52
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_ulp_timer.h