Sensor Hub#
Introduction#
Sensor Hub products are primarily intended to address consumer, industrial, and medical applications that require wireless connectivity, extremely low power, and high performance for sensor fusion algorithms. The MCU core, wireless connectivity, and peripherals are identical to the SI917 CCP Radio board.
Sensor Hub functions as a sensor management system, facilitating hardware abstraction layer, peripheral drivers, and sensor driver layer integration to collect and distribute desired sensor data.
It enables users to collect sensor data based on time interval or number of samples or when a specific data requirement are met.
Sensor Hub serves as a framework that can be seamlessly integrated into any application requiring sensor management.
The Sensor HUB works with sensors as per configurations provided by the application and notifies the necessary events throughout the application.
The configuration for the sensors must be provided through the sensor hub config file on which the sensor hub should act.
Sensor Hub relies on FreeRTOS using CMSIS RTOS version 2 wrapper.
Configuration#
Sensor Hub has 2 Sensor Mode:
SL_SH_POLLING_MODE: This mode is Timer based.
SL_SH_INTERRUPT_MODE: This mode is NPSS Button 0 GPIO Interrupt based.
There are 3 types of data_deliver.mode in Polling Sensor Mode and they are SL_SH_THRESHOLD, SL_SH_TIMEOUT and SL_SH_NUM_OF_SAMPLES.
SL_SH_NO_DATA data_deliver.mode is used when Interrupt Sensor Mode is selected.
If the user wants a value that sets a limit or boundary, above which the sensor data should be shown then SL_SH_THRESHOLD mode should be chosen
SL_SH_TIMEOUT mode is used when user wants to get the data at some intervals of time for some sampling time
SL_SH_NUM_OF_SAMPLES mode is used when user wants to get the particular number of sensor data
SL_SH_NO_DATA mode is used when .
Here data_deliver.timeout is the time for which the sensor should keep collecting the data for.
sampling_interval is the the amount of time between two sensor data read is sampled or collected.
sampling_intr_req_pin is the GPIO pin for sampling the sensor data
Configure the number of sensors info in the **\sensors\inc\sensors_config.h** file
#define SL_MAX_NUM_SENSORS 5 // Maximum sensors present in the system
Modes: Using the configuration structure, one can configure the following parameters in the sensorhub_config.c file:
For POLLING Sensor Mode configure the below parameters:
.sensor_mode = SL_SH_POLLING_MODE, .sampling_interval = 100,
If sensor_mode is selected as SL_SH_POLLING_MODE, then data_deliver.mode should be configured as one of the following for a sensor configuration structure:
For TIMEOUT Data Mode configure the below parameters:
.data_deliver.mode = SL_SH_TIMEOUT, .data_deliver.timeout = 1000,
For THRESHOLD Data Mode configure the below parameters:
.data_deliver.mode = SL_SH_THRESHOLD, .data_deliver.threshold = 1000,
For SAMPLING Data Mode configure the below parameters:
.data_deliver.mode = SL_SH_NUM_OF_SAMPLES, .data_deliver.numOfSamples = 5,
For INTERRUPT Sensor Mode configure the below parameters:
.sensor_mode = SL_SH_INTERRUPT_MODE, .sampling_intr_req_pin = BUTTON_0_GPIO_PIN, .sensor_intr_type = SL_SH_FALL_EDGE, .data_deliver.data_mode = SL_SH_NO_DATA_MODE,
To configure the PS2, please update the below macro in the preprocessor settings:
SL_SENSORHUB_POWERSAVE=1 Enabling this macro will move the application from PS4 state to PS2 state. In PS2 state the sensor data will be sampled and collected.
To configure the power states to PS4 sleep or PS2 Sleep, please update the defines in ***\gecko_sdk_4.3.2\util\third_party\freertos\kernel.h** file as below:
#ifndef configUSE_TICKLESS_IDLE #define configUSE_TICKLESS_IDLE 1 // 1 is to Enable the tickless Idle mode #endif #ifndef configPRE_SLEEP_PROCESSING #define configPRE_SLEEP_PROCESSING(x) sli_si91x_sleep_wakeup(x) // Here x is idle time, #endif // Configure the sleep time by using the below macro. // If the number of Ideal task ticks exceeds this value, the system is allowed to sleep. #ifndef configEXPECTED_IDLE_TIME_BEFORE_SLEEP #define configEXPECTED_IDLE_TIME_BEFORE_SLEEP 70 #endif
Note:
By using above sleep configuration, sensor hub is going to sleep by using the idle task and idle time.
If the Ideal time exceeds the expected sleep time value, the system is allowed to sleep.
The above idle time is fed to the Alarm timer, which we are using as a wake-up source.
ADC Configurations: Configure only below parameters for ADC to change its mode from FIFO to STATIC and vice versa
For ADC FIFO mode, configure as shown below:
.adc_config.adc_cfg.operation_mode = SL_ADC_FIFO_MODE, .adc_config.adc_ch_cfg.sampling_rate[0] = SL_SH_ADC_SAMPLING_RATE, // Use 100 for FIFO Mode
For ADC Static mode, configure as shown below:
.adc_config.adc_cfg.operation_mode = SL_ADC_STATIC_MODE, .adc_config.adc_ch_cfg.sampling_rate[0] = SL_SH_ADC_SAMPLING_RATE, // Use 1000 for Static Mode
To configure the PS1 power state from PS2 State, please update the below macro in the preprocessor settings:
SL_SH_ADC_PS1=1 Enabling this macro will move the core from PS2 Active state to PS1 state
Please update the defines in ***\gecko_sdk_4.3.2\util\third_party\freertos\kernel.h** file as below:
#ifndef configUSE_TICKLESS_IDLE #define configUSE_TICKLESS_IDLE 1 // 1 is to Enable the tickless Idle mode #endif #ifndef configPRE_SLEEP_PROCESSING #define configPRE_SLEEP_PROCESSING(x) sli_si91x_sleep_wakeup(x) // Here x is idle time, #endif
Note:
The PS1 state transition only applies to ADC FIFO Mode. Before entering this mode, kindly turn off any other sensors.
Usage#
Sensorhub provides two apis which user can use for intergrating into any application
sl_si91x_sensorhub_app_task(void);
sl_si91x_sensor_event_handler(uint8_t sensor_id, uint8_t event);
sl_si91x_sensorhub_app_task(void): initialises and starts sensor data collection. it achieves this by calling the following apis
sl_si91x_sensorhub_notify_cb_register(sl_sensor_signalEvent_t cb_event, sl_sensor_id_t *cb_ack): links the event handler provided by the user as a callback function in the event task
sl_si91x_sensorhub_init(): initializes the peripherals I2C, SPI, ADC, SDC
sl_si91x_sensorhub_detect_sensors(sl_sensor_id_t *sensor_id_info, uint8_t num_of_sensors): scans the i2c sensors provided in the sensorhub_config.c and returns the number of these sensors that are currently connected
sl_si91x_sensorhub_create_sensor(sl_sensor_id_t sensor_id): Initializes the sensor by calling the init function of the sensor provided by the user in the respective HAL, Assigs memory to it based on the data delivery mode, Creates a timer for this sensor if required
sl_si91x_sensor_hub_start(): initializes the sensor task, event task and power task
sl_si91x_sensorhub_start_sensor(sl_sensor_id_t sensor_id): starts the timers of the sensors created in create sensor api
sl_si91x_sensor_event_handler(uint8_t sensor_id, uint8_t event) is called by the event task after sensor data is collected ,in the sensorhub appilcation it prints the data based on the sensor id and uploads it to the cloud
Modules#
Enumerations#
Enumeration for Sensor HUB data reading mode.
Enumeration for Sensors HUB Callback Events.
Enumeration for GPIO Interrupt Configurations.
Enumeration for Sensor HUB data delivery mode.
Enumeration for Sensors Status.
Typedefs#
ADC bus interface configuration structure.
Variables#
I2C bus error status.
SPI bus error status.
ADC bus error status.
All buses error status.
Threshold value for the sensor.
Threshold value for the sensor.
Timeout values for the sensor.
Timeout values for the sensor.
Number of samples for the sensor.
Number of samples for the sensor.
Name of the sensor.
GPIO Interrupt Configurations.
GPIO pin for sampling the sensor data.
Sensor data sampling interval.
Address of sensor.
Address of sensor.
Channel for adc.
Channel for adc.
Sensor id.
Protocol for the sensor(spi/i2c)
Sensor Mode(Enumeration)
Range of sensor.
Data delivery mode for the sensor.
Sensor data storage structure.
Sensor handle.
Sensor control handle.
Sensor event bits.
Sensor event acknowledge.
Maximum samples for the sensors.
Sensor configuration structure.
Sensor implementation structure.
Sensor status.
RTOS timer handle.
Sensor index.
Sensor handle structure.
Interrupt mode sensor index.
Interrupt GPIO Pin.
Channel number for ADC interrupt.
Channel number for ADC interrupt.
Map Table Index.
Sensor list MAP Table.
String the sensor data address.
Sensor id information.
Sensors HUB Callback Events.
Event callback.
Event callback acknowledge.
I2C instances(I2C0/1/2)
I2C power state.
I2C bus control configuration.
I2C bus speed.
I2C slave address.
SPI bus width.
SPI Mode(Master/Slave)
SPI bus power mode.
Chip select number.
SPI miscellaneous for chip select.
SPI slave select signal definitions.
SPI bus data transmission speed(clock)
SPI bus phase and polarity.
SPI control slave select mode.
flag to know if adc is initialized, this is necessary to deinit
flag to indicate data availability for all 16 channels
adc configuration
adc channel configuration
I2C configuration structure.
SPI configuration structure.
ADC configuration structure.
GPIO configuration structure.
SDC configuration structure.
Functions#
Initialization Peripherals of Sensor HUB.
Detect the sensors.
Delete the specific sensor from the Sensor HUB.
Create a sensor instance in the sensor hub.
Start the sensor operation for the given sensor.
Stop the sensor operation of the given sensor.
Post the events to event manager(EM) to be notified to the application.
Task to handle the sensor operations.
Task to handle the system power operations.
Task to handle the operations of the Event Manager(EM)
Initialize the I2C Interface based on configuration.
Initialize SPI Interface based on configuration.
Scan the I2C sensors.
to get sensor implementation.
Create the sensor list index.
Get the sensor index for the sensor list.
Delete the sensor index for the sensor list.
get the sensor info from the sensor configuration structure.
Call back function to the application.
Sensor OS timer callback function.
Configuring the different types of NPSS GPIO interrupts in the Sensor HUB.
Enable and set the priority of NPSS GPIO interrupt.
Mask and Disable the NPSS GPIO interrupt.
Start the sensor hub Tasks.
set the alarm interrupt time.
initialize the Alarm block.
Configure the wake-up source for the system.
Configures sleep/wakeup sources for the system.
Change the system status from PS4 to PS2.
Change the system status from PS2 to PS4.
Initialize ADC Interface based on configuration.
Initialize and configure the systic timer for the RTOS.
I2C event handler.
Fetch ADC bus interface information.
ADC callback from RSI_ADC_InterruptHandler.
Initialize the sdc Interface based on the configuration.
Macros#
Sensor task stack size.
EM task stack size.
Power task stack size.
Max wait time of message queue in Event task.
Size of the sensors interrupt MAP table.
NPSS gpio IRQ handler.
NPSS gpio IRQ Number 21.
Periodic alarm configuration in milliseconds.
RC clock trigger time.
RO clock trigger time.
Number of hours in a day.
Number of minutes in an hour.
Number of Seconds in a minute.
Number of milliseconds in a second.
Number of months in a year.
Start year for alarm configuration.
Month with 28 days.
Month with 29 days.
Month with 30 days.
Month with 31 days.
Alarm IRQ handler.
Alarm IRQ number 28.
Creating OS timer for the sensor failed.
Deleting OS timer of the sensor failed.
Starting OS timer of the sensor failed.
Stopping OS timer of the sensor failed.
Max number of sensor limit reached.
Memory allocation for sensor data storage failed.
Sensor API is called for a sensor without creating it.
Sensor set power command execution failed.
Sensor set range command execution failed.
Sensor self-test command execution failed.
Generic error code for any invalid parameters.
Invalid gpio number.
No hal implementation found for given sensor type.
Interrupt type configuration failed.
Allocating memory for sensor hal failed.
Sensor not created.
Sensor configuration not found.
No sensor found at given address.
Invalid interrupt type is given for the sensor.
Invalid mode is given for the sensor.
Invalid delivery mode is given for the sensor.
Create sensor in HAL failed.
Delete sensor in HAL failed.
Sample sensor in HAL failed.
Control sensor in HAL failed.
Power task creation failed.
Sensor task creation failed.
EM task creation failed.
All(i2c,spi,adc) peripheral's initialization failed.
Enumeration Documentation#
sl_sensor_mode_t#
sl_sensor_mode_t
Enumeration for Sensor HUB data reading mode.
Enumerator | |
---|---|
SL_SH_POLLING_MODE | POLLING_MODE. |
SL_SH_INTERRUPT_MODE | INTERRUPT_MODE. |
SL_SH_NO_MODE |
101
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_sensorhub_event_t#
sl_sensorhub_event_t
Enumeration for Sensors HUB Callback Events.
Enumerator | |
---|---|
SL_SENSOR_CREATION_FAILED | |
SL_SENSOR_STARTED | |
SL_SENSOR_STOPPED | |
SL_SENSOR_DATA_READY | |
SL_SENSOR_CNFG_INVALID | |
SL_SENSOR_START_FAILED | |
SL_SENSOR_STOP_FAILED | |
SL_SENSOR_DELETED | |
SL_SENSOR_DELETE_FAILED |
108
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_gpio_intr_type_t#
sl_gpio_intr_type_t
Enumeration for GPIO Interrupt Configurations.
Enumerator | |
---|---|
SL_SH_RISE_EDGE | Interrupt at GPIO rise edge. |
SL_SH_FALL_EDGE | Interrupt at GPIO fall edge. |
SL_SH_LOW_LEVEL | Interrupt at GPIO low level. |
SL_SH_HIGH_LEVEL | Interrupt at GPIO high level. |
121
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_data_deliver_mode_t#
sl_data_deliver_mode_t
Enumeration for Sensor HUB data delivery mode.
Enumerator | |
---|---|
SL_SH_THRESHOLD | Threshold value for sensor data delivery. |
SL_SH_TIMEOUT | Timeout value for sensor data delivery. |
SL_SH_NUM_OF_SAMPLES | Number of samples for sensor data delivery. |
SL_SH_NO_DATA_MODE |
129
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_sensor_status_t#
sl_sensor_status_t
Enumeration for Sensors Status.
Enumerator | |
---|---|
SL_SENSOR_INVALID | Sensor is Invalid. |
SL_SENSOR_VALID | Sensor is Valid. |
SL_SENSOR_START | Sensor is Started. |
SL_SENSOR_STOP | Sensor is Stoped. |
137
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
Typedef Documentation#
sl_adc_cfg_t#
typedef struct sl_adc_config sl_adc_cfg_t
ADC bus interface configuration structure.
274
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
Variable Documentation#
i2c#
bool sl_sensorhub_errors_t::i2c
I2C bus error status.
154
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
spi#
bool sl_sensorhub_errors_t::spi
SPI bus error status.
155
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
adc#
bool sl_sensorhub_errors_t::adc
ADC bus error status.
156
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sdc#
bool sl_sensorhub_errors_t::sdc
157
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sensor_global_status#
bool sl_sensorhub_errors_t::sensor_global_status
All buses error status.
158
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
data_mode#
sl_data_deliver_mode_t sl_data_deliver_type_t::data_mode
164
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
threshold#
uint32_t sl_data_deliver_type_t::threshold
Threshold value for the sensor.
166
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
threshold#
uint32_t sl_data_deliver_type_t::@0::threshold
Threshold value for the sensor.
166
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
timeout#
uint32_t sl_data_deliver_type_t::timeout
Timeout values for the sensor.
167
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
timeout#
uint32_t sl_data_deliver_type_t::@0::timeout
Timeout values for the sensor.
167
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
numofsamples#
uint32_t sl_data_deliver_type_t::numofsamples
Number of samples for the sensor.
168
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
numofsamples#
uint32_t sl_data_deliver_type_t::@0::numofsamples
Number of samples for the sensor.
168
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
@1#
union sl_data_deliver_type_t::@0 sl_data_deliver_type_t::@1
169
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sensor_name#
char* sl_sensor_info_t::sensor_name
Name of the sensor.
175
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sensor_intr_type#
int16_t sl_sensor_info_t::sensor_intr_type
GPIO Interrupt Configurations.
176
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sampling_intr_req_pin#
uint16_t sl_sensor_info_t::sampling_intr_req_pin
GPIO pin for sampling the sensor data.
177
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sampling_interval#
uint32_t sl_sensor_info_t::sampling_interval
Sensor data sampling interval.
178
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
address#
uint8_t sl_sensor_info_t::address
Address of sensor.
180
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
address#
uint8_t sl_sensor_info_t::@2::address
Address of sensor.
180
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
channel#
uint16_t sl_sensor_info_t::channel
Channel for adc.
181
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
channel#
uint16_t sl_sensor_info_t::@2::channel
Channel for adc.
181
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
@3#
union sl_sensor_info_t::@2 sl_sensor_info_t::@3
182
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sensor_id#
sl_sensor_id_t sl_sensor_info_t::sensor_id
Sensor id.
183
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sensor_bus#
sl_sensor_bus_t sl_sensor_info_t::sensor_bus
Protocol for the sensor(spi/i2c)
184
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sensor_mode#
sl_sensor_mode_t sl_sensor_info_t::sensor_mode
Sensor Mode(Enumeration)
185
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sensor_range#
sl_sensor_range_t sl_sensor_info_t::sensor_range
Range of sensor.
186
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
data_deliver#
sl_data_deliver_type_t sl_sensor_info_t::data_deliver
Data delivery mode for the sensor.
187
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sensor_data_ptr#
sl_sensor_data_group_t* sl_sensor_info_t::sensor_data_ptr
Sensor data storage structure.
188
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sensor_handle#
void* sl_sensor_handle_t::sensor_handle
Sensor handle.
194
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
ctrl_handle#
void* sl_sensor_handle_t::ctrl_handle
Sensor control handle.
195
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sensor_event_bit#
uint8_t sl_sensor_handle_t::sensor_event_bit
Sensor event bits.
196
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
event_ack#
uint8_t sl_sensor_handle_t::event_ack
Sensor event acknowledge.
197
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
max_samples#
uint16_t sl_sensor_handle_t::max_samples
Maximum samples for the sensors.
198
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
config_st#
sl_sensor_info_t* sl_sensor_handle_t::config_st
Sensor configuration structure.
199
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sensor_impl#
sl_sensor_impl_type_t* sl_sensor_handle_t::sensor_impl
Sensor implementation structure.
200
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sensor_status#
sl_sensor_status_t sl_sensor_handle_t::sensor_status
Sensor status.
201
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
timer_handle#
TimerHandle_t sl_sensor_handle_t::timer_handle
RTOS timer handle.
202
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sensor_index#
uint8_t sl_sensor_list_t::sensor_index
Sensor index.
208
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_sensors_st#
sl_sensor_handle_t sl_sensor_list_t::sl_sensors_st[SL_MAX_NUM_SENSORS]
Sensor handle structure.
209
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sensor_list_index#
uint8_t sl_intr_list_t::sensor_list_index
Interrupt mode sensor index.
215
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
intr#
uint16_t sl_intr_list_t::intr
Interrupt GPIO Pin.
216
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
adc_intr_channel#
uint16_t sl_intr_list_t::adc_intr_channel
Channel number for ADC interrupt.
217
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sdc_intr_channel#
uint16_t sl_intr_list_t::sdc_intr_channel
Channel number for ADC interrupt.
218
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
map_index#
uint8_t sl_intr_list_map_t::map_index
Map Table Index.
224
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
map_table#
sl_intr_list_t sl_intr_list_map_t::map_table[MAP_TABLE_SIZE]
Sensor list MAP Table.
225
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
em_sensor_data#
void* sl_em_event_t::em_sensor_data
String the sensor data address.
231
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sensor_id#
sl_sensor_id_t sl_em_event_t::sensor_id
Sensor id information.
232
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
event#
sl_sensorhub_event_t sl_em_event_t::event
Sensors HUB Callback Events.
233
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
cb_event#
sl_sensor_signalEvent_t sl_sensor_cb_info_t::cb_event
Event callback.
239
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
cb_event_ack#
sl_sensor_id_t* sl_sensor_cb_info_t::cb_event_ack
Event callback acknowledge.
240
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
i2c_id#
uint8_t sl_i2c_config_t::i2c_id
I2C instances(I2C0/1/2)
246
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
i2c_power_state#
uint8_t sl_i2c_config_t::i2c_power_state
I2C power state.
247
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
i2c_control_mode#
uint8_t sl_i2c_config_t::i2c_control_mode
I2C bus control configuration.
248
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
i2c_bus_speed#
uint16_t sl_i2c_config_t::i2c_bus_speed
I2C bus speed.
249
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
i2c_slave_addr#
uint32_t sl_i2c_config_t::i2c_slave_addr
I2C slave address.
250
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
spi_bit_width#
uint8_t sl_spi_config_t::spi_bit_width
SPI bus width.
256
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
spi_mode#
uint8_t sl_spi_config_t::spi_mode
SPI Mode(Master/Slave)
257
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
spi_power_state#
uint8_t sl_spi_config_t::spi_power_state
SPI bus power mode.
258
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
spi_cs_number#
uint8_t sl_spi_config_t::spi_cs_number
Chip select number.
259
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
spi_cs_misc_mode#
uint8_t sl_spi_config_t::spi_cs_misc_mode
SPI miscellaneous for chip select.
260
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
spi_sec_sel_sig#
uint8_t sl_spi_config_t::spi_sec_sel_sig
SPI slave select signal definitions.
261
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
spi_baud#
uint32_t sl_spi_config_t::spi_baud
SPI bus data transmission speed(clock)
262
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
spi_control_mode#
uint64_t sl_spi_config_t::spi_control_mode
SPI bus phase and polarity.
263
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
spi_cs_mode#
uint64_t sl_spi_config_t::spi_cs_mode
SPI control slave select mode.
264
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
adc_init#
uint8_t sl_adc_config::adc_init
flag to know if adc is initialized, this is necessary to deinit
270
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
adc_data_ready#
uint16_t sl_adc_config::adc_data_ready
flag to indicate data availability for all 16 channels
271
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
adc_cfg#
sl_adc_config_t sl_adc_config::adc_cfg
adc configuration
272
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
adc_ch_cfg#
sl_adc_channel_config_t sl_adc_config::adc_ch_cfg
adc channel configuration
273
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
c#
uint8_t sl_gpio_config_t::c
279
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
d#
uint32_t sl_gpio_config_t::d
280
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sh_sdc_p_channel_sel#
uint8_t sl_sh_sdc_config_t::sh_sdc_p_channel_sel[4]
286
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sh_sdc_n_channel_sel#
uint8_t sl_sh_sdc_config_t::sh_sdc_n_channel_sel[4]
287
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sh_sdc_sample_ther#
uint8_t sl_sh_sdc_config_t::sh_sdc_sample_ther
288
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sh_sdc_no_channel_sel#
uint8_t sl_sh_sdc_config_t::sh_sdc_no_channel_sel
289
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sh_sdc_data_trigger_sel#
uint8_t sl_sh_sdc_config_t::sh_sdc_data_trigger_sel
290
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sh_sdc_sample_trigger_sel#
uint8_t sl_sh_sdc_config_t::sh_sdc_sample_trigger_sel
291
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sh_sdc_cnt_trig_evnt#
uint8_t sl_sh_sdc_config_t::sh_sdc_cnt_trig_evnt
292
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sh_sdc_auxadc_diff_mode_ch#
uint8_t sl_sh_sdc_config_t::sh_sdc_auxadc_diff_mode_ch[4]
293
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sh_sdc_auxadc_en#
uint8_t sl_sh_sdc_config_t::sh_sdc_auxadc_en
294
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sh_sdc_adc_config_en#
uint8_t sl_sh_sdc_config_t::sh_sdc_adc_config_en
295
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sh_sdc_clk_div#
uint8_t sl_sh_sdc_config_t::sh_sdc_clk_div
296
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sh_sdc_samp_en#
uint8_t sl_sh_sdc_config_t::sh_sdc_samp_en
297
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
i2c_config#
sl_i2c_config_t sl_bus_intf_config_t::i2c_config
I2C configuration structure.
303
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
spi_config#
sl_spi_config_t sl_bus_intf_config_t::spi_config
SPI configuration structure.
304
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
adc_config#
sl_adc_cfg_t sl_bus_intf_config_t::adc_config
ADC configuration structure.
305
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
gpio_config#
sl_gpio_config_t sl_bus_intf_config_t::gpio_config
GPIO configuration structure.
306
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sh_sdc_config#
sl_sh_sdc_config_t sl_bus_intf_config_t::sh_sdc_config
SDC configuration structure.
307
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
Function Documentation#
sl_si91x_sensorhub_init#
sl_status_t sl_si91x_sensorhub_init ( -, -)
Initialization Peripherals of Sensor HUB.
[in] | - | NULL |
[out] | - | Return the Sensor Hub bus Initialization status |
This function will initialize the Peripherals, based on the user configuration. like - I2C/SPI/ADC
Returns
status 0 if successful, else error code as follow:
SL_STATUS_FAIL (0x0001)- Fail, Peripherals initialization failed
SL_STATUS_OK (0X000)- Success, Peripherals initialization done properly
330
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_sensorhub_detect_sensors#
sl_status_t sl_si91x_sensorhub_detect_sensors (sl_sensor_id_t sensor_id_info, uint8_t num_of_sensors, -)
Detect the sensors.
[in] | sensor_id_info | - Sensor IDs |
[in] | num_of_sensors | - Number of sensors given by user |
[out] | - | None |
This function will detect the sensor, based on the user configuration. and it will store the scanned sensor ID in the structure.
Returns
if successful, Return number of sensors scanned else error code
347
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_sensorhub_delete_sensor#
sl_status_t sl_si91x_sensorhub_delete_sensor (sl_sensor_id_t sensor_id, -)
Delete the specific sensor from the Sensor HUB.
[in] | sensor_id | - Sensor ID |
[out] | - | Return the delete sensors status |
This function will delete the specific sensor from the sensor list, modify the sensor status to invalid, and publish the events to the event task.
Returns
status 0 if successful, else error code as follow:
SL_STATUS_FAIL (0x0001) - Fail, Delete sensor failed
SL_STATUS_OK (0X000) - Success, Delete sensor Success
365
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_sensorhub_create_sensor#
sl_status_t sl_si91x_sensorhub_create_sensor (sl_sensor_id_t sensor_id, -)
Create a sensor instance in the sensor hub.
[in] | sensor_id | - Id of sensor |
[out] | - | Return the create sensors status |
This function creates a sensor instance as per user configuration.It also allocates max sample memory for the configured sensor.
Returns
status 0 if successful, else error code as follow:
SL_STATUS_FAIL (0x0001)- Fail, Create sensor instance failed
SL_STATUS _OK (0X000) - Create sensor instanceSuccess ,
382
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_sensorhub_start_sensor#
sl_status_t sl_si91x_sensorhub_start_sensor (sl_sensor_id_t sensor_id, -)
Start the sensor operation for the given sensor.
[in] | sensor_id | - Id of sensor |
[out] | - | Return the Start sensors status |
This function can be called after creating a sensor with given sensor ID It does following operations
Starts timer for sensor with polling mode.
Enable IRQ handle for sensor with interrupt mode.
Returns
status 0 if successful, else error code as follow:
SL_STATUS_FAIL (0x0001)- Fail, Sensor start failed
SL_STATUS _OK (0X000) - Success ,Sensor start done properly
402
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_sensorhub_stop_sensor#
sl_status_t sl_si91x_sensorhub_stop_sensor (sl_sensor_id_t sensor_id, -)
Stop the sensor operation of the given sensor.
[in] | sensor_id | - Id of sensor |
[out] | - | Return the Stop sensor status |
This function does following operations
Stop the sensor operations of the given sensor.
Based on the sensor mode it will stop the Polling/interrupt mode operations and updates the sensor statutes.
Disable IRQ handles of the interrupt mode sensors.
Returns
status 0 if successful, else error code as follows:
SL_STATUS_FAIL (0x0001)- Fail, Sensor stop failed
SL_STATUS _OK (0X000) - Success ,Sensor stop done properly
422
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_em_post_event#
void sl_si91x_em_post_event (sl_sensor_id_t sensor_id, sl_sensorhub_event_t event, void * dataPtr, TickType_t ticks_to_wait, -)
Post the events to event manager(EM) to be notified to the application.
[in] | sensor_id | - id of the sensor |
[in] | event | - sensor hub events |
[in] | dataPtr | - sensor data pointer |
[in] | ticks_to_wait | - max time to wait for the post |
[out] | - | None |
It waits for mutex till ticks_to_wait and updates event queue if mutex is acquired
Returns
- NULL
439
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_sensor_task#
void sl_si91x_sensor_task (void , -)
Task to handle the sensor operations.
[in] | None | |
[out] | - | None |
Sensor Task does following operations
Create the OS event and mutex to perform the sensor operations.
Sample the Sensor data based on the event flags.
Check the events and post the sensor data to the em task based on the sensor data delivery mode.
Returns
- NULL
459
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_power_state_task#
void sl_si91x_power_state_task (void , -)
Task to handle the system power operations.
[in] | None | |
[out] | - | None |
Power state task changes the system from one power save mode to another power save mode like(PS4 to PS2),(PS2toPS4),(Sleep_mode) using Binary semaphore
Returns
- NULL
473
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_em_task#
void sl_si91x_em_task (void , -)
Task to handle the operations of the Event Manager(EM)
[in] | None | |
[out] | - | None |
Em task does following operaions
Create the osMessageQueue and mutex to perform the event operations.
Calls the callback event Returns
- NULL
488
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_si91x_i2c_init#
int32_t sli_si91x_i2c_init (void , -)
Initialize the I2C Interface based on configuration.
[in] | None | |
[out] | - | None |
This function will configure/Initialize I2C Interface based on configuration.
Returns
I2C Initializtion status
502
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_si91x_spi_init#
int32_t sli_si91x_spi_init (void , -)
Initialize SPI Interface based on configuration.
[in] | None | |
[out] | - | None |
This function will configure/Initialize SPI Interface based on configuration.
Returns
SPI Initializtion status.
516
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_si91x_i2c_sensors_scan#
int32_t sli_si91x_i2c_sensors_scan (uint16_t address, -)
Scan the I2C sensors.
[in] | address | - Address of sensor |
[out] | - | None |
This function will scan the I2C sensors based on the sensor address.
Returns
status 0 if successful, else it will wait for the sensor response.
531
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_si91x_get_sensor_implementation#
sl_sensor_impl_type_t * sli_si91x_get_sensor_implementation (int32_t sensor_id, -)
to get sensor implementation.
[in] | sensor_id | - Id of sensor |
[out] | - | None |
This function will get the sensor implementation of the sensor based on sensor ID.
Returns
if successful, returns the Sensor implementation structure else returns an error code.
546
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_si91x_create_sensor_list_index#
int32_t sli_si91x_create_sensor_list_index ( -, -)
Create the sensor list index.
[in] | - | None |
[out] | - | Returns the Sensor ID from the implementation struct |
This function will Create the sensor list index based on the sensor status For the maximum sensors available in the sensor hub
Returns
returns the sensor index in sensor_list
561
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_si91x_get_sensor_index#
uint32_t sli_si91x_get_sensor_index (sl_sensor_id_t sensor_id, -)
Get the sensor index for the sensor list.
[in] | sensor_id | - Id of sensor |
[out] | - | None |
This function will retrieve the sensor index from the sensor list based on the sensor status and sensor ID for the maximum number of sensors available in the sensor hub.
Returns
if successful, returns the sensor index else returns SL_SH_SENSOR_INDEX_NOT_FOUND(0XFF).
578
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_si91x_delete_sensor_list_index#
uint32_t sli_si91x_delete_sensor_list_index (sl_sensor_id_t sensor_id, -)
Delete the sensor index for the sensor list.
[in] | sensor_id | - Id of sensor |
[out] | - | None |
This function will delete the sensor from the sensor list based on The sensor ID for the maximum number of sensors available in the sensor hub.
Returns
if successful, returns the sensor index else returns error code SL_SH_SENSOR_INDEX_NOT_FOUND(0XFF).
594
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_si91x_get_sensor_info#
sl_sensor_info_t * sli_si91x_get_sensor_info (sl_sensor_id_t sensor_id, -)
get the sensor info from the sensor configuration structure.
[in] | sensor_id | - Id of sensor |
[out] | - | None |
This function will retrieve sensor data from the sensor configuration structure to update the sensor list configuration structure for the maximum number of sensors available in the sensor hub.
Returns
if successful, returns the sensor information. else returns NULL.
611
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_sensorhub_notify_cb_register#
sl_status_t sl_si91x_sensorhub_notify_cb_register (sl_sensor_signalEvent_t cb_event, sl_sensor_id_t * cb_ack, -)
Call back function to the application.
[in] | cb_event | - Pointer to the callback event |
[in] | cb_ack | - Pointer to callback acknowledge to the application |
[out] | - | None |
This function will update the callback function event and acknowledgment.
Returns
- If successful returns SL_STATUS_OK else returns error code
626
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_sensors_timer_cb#
void sl_si91x_sensors_timer_cb (TimerHandle_t xTimer, -)
Sensor OS timer callback function.
[in] | xTimer | - Timer handle |
[out] | - | None |
This function will set the event flag bits based on the sensor sampling intervals. In the polling mode call the timer call-back function.
Returns
- NULL
641
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_gpio_interrupt_config#
sl_status_t sl_si91x_gpio_interrupt_config (uint16_t gpio_pin, sl_gpio_intr_type_t intr_type, -)
Configuring the different types of NPSS GPIO interrupts in the Sensor HUB.
[in] | gpio_pin | - NPSS gpio pin number |
[in] | intr_type | NPSS gpio interrupt type |
[out] | - | None |
This function configures the NPSS gpios and enables the interrupt mode for the gpios.
Returns
- If successful returns SL_STATUS_OK else returns error code
656
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_gpio_interrupt_start#
void sl_si91x_gpio_interrupt_start (uint16_t gpio_pin, -)
Enable and set the priority of NPSS GPIO interrupt.
[in] | gpio_pin | - NPSS gpio pin number |
[out] | - | None |
This function configures and sets the priority of the NPSS GPIO interrupt. GPIO interrupt priority is (configMAX_SYSCALL_INTERRUPT_PRIORITY - 1)
Returns
- NULL
671
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_gpio_interrupt_stop#
void sl_si91x_gpio_interrupt_stop (uint16_t gpio_pin, -)
Mask and Disable the NPSS GPIO interrupt.
[in] | gpio_pin | - NPSS gpio pin number |
[out] | - | None |
This function masks and disables the IRQ handler of the NPSS GPIO interrupt.
Returns
- NULL
685
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_sensor_hub_start#
sl_status_t sl_si91x_sensor_hub_start (void , -)
Start the sensor hub Tasks.
[in] | None | |
[out] | - | None |
This Starts the sensor hub Tasks.
Returns
- If succesfull returns SL_STATUS_OK else returns error code
699
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_si91x_set_alarm_intr_time#
void sli_si91x_set_alarm_intr_time (uint16_t interval, -)
set the alarm interrupt time.
[in] | interval | - interval time |
[out] | - | None |
This function will set the alarm interrupt based on the periodic time.
Returns
- NULL
713
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_si91x_init_m4alarm_config#
void sli_si91x_init_m4alarm_config (void , -)
initialize the Alarm block.
[in] | None | |
[out] | - | None |
This function will initialize the Alarm block.
Returns
- NULL
727
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_si91x_config_wakeup_source#
void sli_si91x_config_wakeup_source (uint16_t sleep_time, -)
Configure the wake-up source for the system.
[in] | sleep_time | - Sleep time for the sensor hub |
[out] | - | None |
This function will configure the wake-up source to the system.
Returns
- NULL
741
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_si91x_sleep_wakeup#
void sli_si91x_sleep_wakeup (uint16_t sh_sleep_time, -)
Configures sleep/wakeup sources for the system.
[in] | sh_sleep_time | - Sleep time for the sensor hub, in ADC PS-1 no parameters |
[out] | - | None |
This function will configure sleep/wakeup sources.
Returns
- NULL
758
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_si91x_sensorhub_ps4tops2_state#
void sli_si91x_sensorhub_ps4tops2_state (void , -)
Change the system status from PS4 to PS2.
[in] | None | |
[out] | - | None |
This function will change the system status from PS4 to PS2.
Returns
- NULL
772
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_si91x_sensorhub_ps2tops4_state#
void sli_si91x_sensorhub_ps2tops4_state (void , -)
Change the system status from PS2 to PS4.
[in] | None | |
[out] | - | None |
This function will change the system status from PS2 to PS4.
Returns
- NULL
786
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_si91x_adc_init#
sl_status_t sli_si91x_adc_init (void )
Initialize ADC Interface based on configuration.
[in] | None |
This function will configure/Initialize ADC Interface based on configuration.
Returns
error code SL_STATUS_FAIL (0x0001)- Fail , SL_STATUS_OK (0X000)- Success
801
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
vPortSetupTimerInterrupt#
void vPortSetupTimerInterrupt (void , -)
Initialize and configure the systic timer for the RTOS.
[in] | None | |
[out] | - | None |
Set up the systic timer to generate the tick interrupts at the required frequency.
Returns
Initialize status to the application.
815
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
ARM_I2C_SignalEvent#
void ARM_I2C_SignalEvent (uint32_t event, -)
I2C event handler.
[in] | event | - I2C transmit and receive events |
[out] | - | None |
Returns
None
826
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_fetch_adc_bus_intf_info#
sl_adc_cfg_t * sl_si91x_fetch_adc_bus_intf_info (void )
Fetch ADC bus interface information.
N/A |
This can be used by lower level layers Returns
Pointer to ADC configuration structure
835
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sl_si91x_adc_callback#
void sl_si91x_adc_callback (uint8_t channel_no, uint8_t event)
ADC callback from RSI_ADC_InterruptHandler.
[in] | channel_no | - respective channel number |
[in] | event | - callback event (ADC_STATIC_MODE_CALLBACK, ADC_THRSHOLD_CALLBACK, INTERNAL_DMA, FIFO_MODE_EVENT) |
847
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_si91x_sdc_init#
uint8_t sli_si91x_sdc_init (void )
Initialize the sdc Interface based on the configuration.
[in] |
Returns
status 0 if successful, else error code SL_STATUS_FAIL (0x0001)- Fail , SL_STATUS_OK (0X000)- Success,
860
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
sli_config_sdc_params#
void sli_config_sdc_params (sl_drv_sdc_config_t * sdc_config_st_p)
N/A | sdc_config_st_p |
871
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
Macro Definition Documentation#
SL_SH_SENSOR_TASK_STACK_SIZE#
#define SL_SH_SENSOR_TASK_STACK_SIZEValue:
(512 * 2)
Sensor task stack size.
54
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
SL_SH_EM_TASK_STACK_SIZE#
#define SL_SH_EM_TASK_STACK_SIZEValue:
(512 * 2)
EM task stack size.
55
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
SL_SH_POWER_SAVE_TASK_STACK_SIZE#
#define SL_SH_POWER_SAVE_TASK_STACK_SIZEValue:
(512 * 2)
Power task stack size.
56
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
SL_EM_TASK_RUN_TICKS#
#define SL_EM_TASK_RUN_TICKSValue:
osWaitForever
Max wait time of message queue in Event task.
57
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
MAP_TABLE_SIZE#
#define MAP_TABLE_SIZEValue:
10
Size of the sensors interrupt MAP table.
58
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
NPSS_GPIO_IRQHandler#
#define NPSS_GPIO_IRQHandlerValue:
IRQ021_Handler
NPSS gpio IRQ handler.
63
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
NPSS_GPIO_NVIC#
#define NPSS_GPIO_NVICValue:
NPSS_TO_MCU_GPIO_INTR_IRQn
NPSS gpio IRQ Number 21.
64
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
SL_ALARM_PERIODIC_TIME#
#define SL_ALARM_PERIODIC_TIMEValue:
10
Periodic alarm configuration in milliseconds.
69
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
RC_TRIGGER_TIME#
#define RC_TRIGGER_TIMEValue:
5
RC clock trigger time.
70
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
RO_TRIGGER_TIME#
#define RO_TRIGGER_TIMEValue:
0
RO clock trigger time.
71
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
NO_OF_HOURS_IN_A_DAY#
#define NO_OF_HOURS_IN_A_DAYValue:
24
Number of hours in a day.
72
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
NO_OF_MINUTES_IN_AN_HOUR#
#define NO_OF_MINUTES_IN_AN_HOURValue:
60
Number of minutes in an hour.
73
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
NO_OF_SECONDS_IN_A_MINUTE#
#define NO_OF_SECONDS_IN_A_MINUTEValue:
60
Number of Seconds in a minute.
74
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
NO_OF_MILLISECONDS_IN_A_SECOND#
#define NO_OF_MILLISECONDS_IN_A_SECONDValue:
1000
Number of milliseconds in a second.
75
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
NO_OF_MONTHS_IN_A_YEAR#
#define NO_OF_MONTHS_IN_A_YEARValue:
12
Number of months in a year.
76
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
BASE_YEAR#
#define BASE_YEARValue:
2000
Start year for alarm configuration.
77
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
NO_OF_DAYS_IN_A_MONTH_1#
#define NO_OF_DAYS_IN_A_MONTH_1Value:
28
Month with 28 days.
78
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
NO_OF_DAYS_IN_A_MONTH_2#
#define NO_OF_DAYS_IN_A_MONTH_2Value:
29
Month with 29 days.
79
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
NO_OF_DAYS_IN_A_MONTH_3#
#define NO_OF_DAYS_IN_A_MONTH_3Value:
30
Month with 30 days.
80
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
NO_OF_DAYS_IN_A_MONTH_4#
#define NO_OF_DAYS_IN_A_MONTH_4Value:
31
Month with 31 days.
81
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
RTC_ALARM_IRQHandler#
#define RTC_ALARM_IRQHandlerValue:
IRQ028_Handler
Alarm IRQ handler.
86
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
NVIC_RTC_ALARM#
#define NVIC_RTC_ALARMValue:
MCU_CAL_ALARM_IRQn
Alarm IRQ number 28.
87
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensor_hub.h
SL_SH_SENSORHUB_ERRORS_MASK#
#define SL_SH_SENSORHUB_ERRORS_MASKValue:
0
46
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_TIMER_CREATION_FAILED#
#define SL_SH_TIMER_CREATION_FAILEDValue:
(1 << SL_SH_SENSORHUB_ERRORS_MASK)
Creating OS timer for the sensor failed.
50
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_TIMER_DELETION_FAILED#
#define SL_SH_TIMER_DELETION_FAILEDValue:
(2 << SL_SH_SENSORHUB_ERRORS_MASK)
Deleting OS timer of the sensor failed.
51
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_TIMER_START_FAIL#
#define SL_SH_TIMER_START_FAILValue:
(3 << SL_SH_SENSORHUB_ERRORS_MASK)
Starting OS timer of the sensor failed.
52
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_TIMER_STOP_FAIL#
#define SL_SH_TIMER_STOP_FAILValue:
(4 << SL_SH_SENSORHUB_ERRORS_MASK)
Stopping OS timer of the sensor failed.
53
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_MAX_SENSORS_REACHED#
#define SL_SH_MAX_SENSORS_REACHEDValue:
(5 << SL_SH_SENSORHUB_ERRORS_MASK)
Max number of sensor limit reached.
57
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_MEMORY_LIMIT_EXCEEDED#
#define SL_SH_MEMORY_LIMIT_EXCEEDEDValue:
(6 << SL_SH_SENSORHUB_ERRORS_MASK)
Memory allocation for sensor data storage failed.
58
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_SENSOR_CREATE_FAIL#
#define SL_SH_SENSOR_CREATE_FAILValue:
(7 << SL_SH_SENSORHUB_ERRORS_MASK)
Sensor API is called for a sensor without creating it.
60
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_COMMAND_SET_POWER_FAIL#
#define SL_SH_COMMAND_SET_POWER_FAILValue:
(8 << SL_SH_SENSORHUB_ERRORS_MASK)
Sensor set power command execution failed.
62
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_COMMAND_SET_RANGE_FAIL#
#define SL_SH_COMMAND_SET_RANGE_FAILValue:
(9 << SL_SH_SENSORHUB_ERRORS_MASK)
Sensor set range command execution failed.
63
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_COMMAND_SELF_TEST_FAIL#
#define SL_SH_COMMAND_SELF_TEST_FAILValue:
(10 << SL_SH_SENSORHUB_ERRORS_MASK)
Sensor self-test command execution failed.
64
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_INVALID_PARAMETERS#
#define SL_SH_INVALID_PARAMETERSValue:
(11 << SL_SH_SENSORHUB_ERRORS_MASK)
Generic error code for any invalid parameters.
65
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_GPIO_OUT_OF_RANGE#
#define SL_SH_GPIO_OUT_OF_RANGEValue:
(12 << SL_SH_SENSORHUB_ERRORS_MASK)
Invalid gpio number.
66
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_SENSOR_IMPLEMENTATION_NOT_FOUND#
#define SL_SH_SENSOR_IMPLEMENTATION_NOT_FOUNDValue:
(13 << SL_SH_SENSORHUB_ERRORS_MASK)
No hal implementation found for given sensor type.
67
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_INTERRUPT_TYPE_CONFIG_FAIL#
#define SL_SH_INTERRUPT_TYPE_CONFIG_FAILValue:
(14 << SL_SH_SENSORHUB_ERRORS_MASK)
Interrupt type configuration failed.
69
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_MEMORY_ALLOCATION_FAILED#
#define SL_SH_MEMORY_ALLOCATION_FAILEDValue:
(15 << SL_SH_SENSORHUB_ERRORS_MASK)
Allocating memory for sensor hal failed.
70
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_SENSOR_INDEX_NOT_FOUND#
#define SL_SH_SENSOR_INDEX_NOT_FOUNDValue:
(0xFF)
Sensor not created.
71
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_CONFIG_NOT_FOUND#
#define SL_SH_CONFIG_NOT_FOUNDValue:
(16 << SL_SH_SENSORHUB_ERRORS_MASK)
Sensor configuration not found.
75
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_INVALID_ADDRESS#
#define SL_SH_INVALID_ADDRESSValue:
(17 << SL_SH_SENSORHUB_ERRORS_MASK)
No sensor found at given address.
76
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_WRONG_INTERRUPT_TYPE#
#define SL_SH_WRONG_INTERRUPT_TYPEValue:
(18 << SL_SH_SENSORHUB_ERRORS_MASK)
Invalid interrupt type is given for the sensor.
77
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_INVALID_MODE#
#define SL_SH_INVALID_MODEValue:
(19 << SL_SH_SENSORHUB_ERRORS_MASK)
Invalid mode is given for the sensor.
79
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_INVALID_DELIVERY_MODE#
#define SL_SH_INVALID_DELIVERY_MODEValue:
(20 << SL_SH_SENSORHUB_ERRORS_MASK)
Invalid delivery mode is given for the sensor.
80
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_HAL_SENSOR_CREATION_FAILED#
#define SL_SH_HAL_SENSOR_CREATION_FAILEDValue:
(21 << SL_SH_SENSORHUB_ERRORS_MASK)
Create sensor in HAL failed.
85
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_HAL_SENSOR_DELETION_FAILED#
#define SL_SH_HAL_SENSOR_DELETION_FAILEDValue:
(22 << SL_SH_SENSORHUB_ERRORS_MASK)
Delete sensor in HAL failed.
86
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_HAL_SENSOR_SAMPLE_FAIL#
#define SL_SH_HAL_SENSOR_SAMPLE_FAILValue:
(23 << SL_SH_SENSORHUB_ERRORS_MASK)
Sample sensor in HAL failed.
87
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_HAL_SENSOR_CONTROL_FAIL#
#define SL_SH_HAL_SENSOR_CONTROL_FAILValue:
(24 << SL_SH_SENSORHUB_ERRORS_MASK)
Control sensor in HAL failed.
88
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_POWER_TASK_CREATION_FAILED#
#define SL_SH_POWER_TASK_CREATION_FAILEDValue:
(25 << SL_SH_SENSORHUB_ERRORS_MASK)
Power task creation failed.
92
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_SENSOR_TASK_CREATION_FAILED#
#define SL_SH_SENSOR_TASK_CREATION_FAILEDValue:
(26 << SL_SH_SENSORHUB_ERRORS_MASK)
Sensor task creation failed.
93
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_SH_EM_TASK_CREATION_FAILED#
#define SL_SH_EM_TASK_CREATION_FAILEDValue:
(27 << SL_SH_SENSORHUB_ERRORS_MASK)
EM task creation failed.
94
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h
SL_ALL_PERIPHERALS_INIT_FAILED#
#define SL_ALL_PERIPHERALS_INIT_FAILEDValue:
(28 << SL_SH_SENSORHUB_ERRORS_MASK)
All(i2c,spi,adc) peripheral's initialization failed.
95
of file components/device/silabs/si91x/mcu/drivers/service/sensorhub/inc/sensorhub_error_codes.h