Serial Input-Output#

Modules#

sl_sio_version_t

sl_sio_spi_t

sl_sio_uart_t

sl_sio_i2c_t

Enumerations#

enum
SL_SIO_SPI_TX_DONE
SL_SIO_SPI_RX_DONE
}

SIO-SPI Events.

enum
SL_SIO_UART_TX_DONE
SL_SIO_UART_RX_DONE
SL_SIO_UART_PARITY_ERR
SL_SIO_UART_FRAMING_ERR
SL_SIO_UART_RECEIVE_CHAR
}

SIO-UART Events.

enum
SL_SIO_SPI_MODE_0 = 0
SL_SIO_SPI_MODE_3 = 3
}

SIO-SPI modes configurations.

enum
SL_SIO_SPI_BIT_8 = 8
SL_SIO_SPI_BIT_16 = 16
}

SIO-SPI bit width configurations.

enum
SL_SIO_SPI_LSB_FIRST = 0
SL_SIO_SPI_MSB_FIRST = 1
}

SIO-SPI MSB/LSB first configurations.

enum
SL_SIO_UART_BIT_8 = 8
SL_SIO_UART_BIT_16 = 16
}

SIO-UART bit length configurations.

enum
SL_SIO_UART_EVEN_PARITY = 0
SL_SIO_UART_ODD_PARITY = 1
}

SIO-UART parity configurations.

enum
SL_SIO_UART_STOP_BIT_1 = 1
SL_SIO_UART_STOP_BIT_2 = 2
}

SIO-UART stop bit configurations.

Typedefs#

typedef stc_sio_spi_cfg_t

SIO-SPI configuration structure.

typedef stc_sio_spi_xfer_t

SIO-SPI Transfer structure.

typedef stc_sio_i2s_config_t

SIO-I2S configuration structure.

typedef stc_sio_i2s_xfer_t

SIO-I2S Transfer structure.

typedef stc_sio_uart_config_t

SIO-UART configuration structure.

typedef sio_i2s_func_ptr_t

SIO-I2S callback function pointer.

typedef sio_Spi_func_ptr_t

SIO-SPI callback function pointer.

typedef sio_Uart_func_ptr_t

SIO_UART callback function pointer.

typedef stc_sio_i2c_config_t

SIO-I2C configuration structure.

Functions#

sl_status_t

Initialize the SIO module.

sl_status_t
sl_si91x_sio_spi_init(sl_sio_spi_config_t *configuration)

Initialize the SIO-SPI module.

sl_status_t
sl_si91x_sio_spi_pin_initialization(sl_sio_spi_t *sio_spi_init)

Initialize SIO SPI pins and clock.

sl_status_t
sl_si91x_sio_uart_pin_initialization(sl_sio_uart_t *sio_uart_init)

Initialize SIO UART pins and clock.

sl_status_t
sl_si91x_sio_i2c_pin_initialization(sl_sio_i2c_t *sio_i2c_init)

Initialize SIO I2C pins and clock.

sl_status_t
sl_si91x_sio_spi_cs_assert(uint8_t chip_select_num)

Assert the SIO SPI chip select.

sl_status_t
sl_si91x_sio_spi_cs_deassert(uint8_t chip_select_num)

De-assert the SIO SPI chip select.

sl_status_t
sl_si91x_sio_spi_register_event_callback(sl_sio_spi_callback_t callback_event)

Register the user callback function.

void

Un-register the user callback function.

sl_status_t
sl_si91x_sio_spi_transfer(sl_sio_spi_xfer_config_t *xfer_config)

Transfer the SIO SPI data.

Get the SIO version.

sl_status_t
sl_si91x_sio_uart_init(sl_sio_uart_config_t *configuration)

Initialize SIO-UART, i.e., set baud rate, parity, channel selection, stop bits, and data length.

sl_status_t
sl_si91x_sio_uart_send(const void *buffer, uint16_t length)

Send the data over SIO-UART.

sl_status_t
sl_si91x_sio_uart_send_blocking(const void *buffer, uint16_t length)

Send the data over SIO-UART in blocking mode.

sl_status_t
sl_si91x_sio_uart_read(void *data_buffer, uint16_t num_bytes)

Read data from UART.

sl_status_t
sl_si91x_sio_uart_read_blocking(void *data_buffer, uint16_t num_bytes)

Read data from UART in blocking mode.

sl_status_t
sl_si91x_sio_uart_register_event_callback(sl_sio_uart_callback_t callback_event)

Register the user callback function.

sl_status_t
sl_si91x_sio_i2c_write(stc_sio_i2c_config_t *configuration, uint8_t address, uint8_t *data, uint16_t length)

Write data using SIO-I2C.

sl_status_t
sl_si91x_sio_i2c_read(stc_sio_i2c_config_t *configuration, uint8_t address, uint8_t *data, uint16_t length)

Read data using SIO-I2C.

sl_status_t
sl_si91x_sio_i2c_transfer(stc_sio_i2c_config_t *configuration, uint8_t address, uint8_t *tx_buffer, uint16_t tx_length, uint8_t *rx_buffer, uint16_t rx_length)

Transfer data using SIO-I2C.

void

Generate I2C start in SIO.

void

Generate I2C stop in SIO.

void

Un-register the user callback function.

void

Used when UART receive is done.

sl_status_t
sl_si91x_sio_configure_interrupt(en_sio_channels_t channel, interrupt_flag_t flag)

Configure pin detection mode to be considered for GPIO interrupt.

sl_status_t
sl_si91x_sio_match_pattern(en_sio_channels_t channel, pattern_match_t pattern, uint8_t slice, uint32_t slice_pattern)

Match the pattern with data to be detected.

sl_status_t
sl_si91x_sio_shift_clock(uint32_t divider, en_sio_channels_t channel)

Generate the shift clock.

sl_status_t
sl_si91x_sio_select_clock(en_sio_channels_t channel, clock_type_t clock)

Select clock.

sl_status_t
sl_si91x_sio_position_counter(en_sio_channels_t channel, uint32_t data_shift)

Shift the number of bits.

sl_status_t
sl_si91x_sio_control_flow(en_sio_channels_t channel, flow_control_t flow_control)

Enable/disable the flow control bit.

sl_status_t
sl_si91x_sio_reverse_load(en_sio_channels_t channel, reverse_load_t reverse)

Load data to buffer in reverse order.

sl_status_t
sl_si91x_sio_set_interrupt(en_sio_channels_t channel)

Enable the common swap interrupt.

sl_status_t
sl_si91x_sio_clear_interrupt(en_sio_channels_t channel)

Disable the common swap interrupt.

sl_status_t
sl_si91x_sio_mask_interrupt(en_sio_channels_t channel)

Mask the common swap interrupt.

sl_status_t
sl_si91x_sio_unmask_interrupt(en_sio_channels_t channel)

Unmask the common swap interrupt.

uint32_t

Read the common swap interrupt status.

sl_status_t
sl_si91x_sio_set_shift_interrupt(en_sio_channels_t channel)

Enable the common shift interrupt.

sl_status_t
sl_si91x_sio_clear_shift_interrupt(en_sio_channels_t channel)

Disable the common shift interrupt.

sl_status_t
sl_si91x_sio_mask_shift_interrupt(en_sio_channels_t channel)

Mask the common shift interrupt.

sl_status_t
sl_si91x_sio_unmask_shift_interrupt(en_sio_channels_t channel)

Unmask the common shift interrupt.

uint32_t

Read the common shift interrupt status.

sl_status_t
sl_si91x_sio_edge_select(en_sio_channels_t channel, edge_select_t edge_sel)

Select edge of the clock cycle for sampling bits.

uint32_t
sl_si91x_sio_read_buffer(en_sio_channels_t channel)

Read SIO buffer register.

sl_status_t
sl_si91x_sio_write_buffer(en_sio_channels_t channel, uint32_t data)

Write into SIO buffer register.

Macros#

#define

SIO-SPI channel 0.

#define

SIO-SPI channel 1.

#define

SIO-SPI channel 2.

#define

SIO-SPI channel 3.

#define

SIO-SPI channel 4.

#define

SIO-SPI channel 5.

#define

SIO-SPI channel 6.

#define

SIO-SPI channel 7.

Enumeration Documentation#

sl_sio_spi_event_t#

sl_sio_spi_event_t

SIO-SPI Events.

Enumerator
SL_SIO_SPI_TX_DONE

SIO-SPI Transfer done event.

SL_SIO_SPI_RX_DONE

SIO-SPI Receive done event.


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

sl_sio_uart_event_t#

sl_sio_uart_event_t

SIO-UART Events.

Enumerator
SL_SIO_UART_TX_DONE

SIO-UART transfer done event.

SL_SIO_UART_RX_DONE

SIO-UART receive done event.

SL_SIO_UART_PARITY_ERR

SIO-UART parity error.

SL_SIO_UART_FRAMING_ERR

SIO-UART framing error.

SL_SIO_UART_RECEIVE_CHAR

SIO-UART receive character.


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

sl_sio_spi_mode_t#

sl_sio_spi_mode_t

SIO-SPI modes configurations.

Enumerator
SL_SIO_SPI_MODE_0

SIO-SPI mode 0.

SL_SIO_SPI_MODE_3

SIO-SPI mode 3.


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

sl_sio_spi_bit_width_t#

sl_sio_spi_bit_width_t

SIO-SPI bit width configurations.

Enumerator
SL_SIO_SPI_BIT_8

SIO-SPI bit width 8.

SL_SIO_SPI_BIT_16

SIO-SPI bit width 16.


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

sl_sio_spi_msb_lsb_t#

sl_sio_spi_msb_lsb_t

SIO-SPI MSB/LSB first configurations.

Enumerator
SL_SIO_SPI_LSB_FIRST

SIO-SPI LSB first.

SL_SIO_SPI_MSB_FIRST

SIO-SPI MSB first.


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

sl_sio_spi_bit_length_t#

sl_sio_spi_bit_length_t

SIO-UART bit length configurations.

Enumerator
SL_SIO_UART_BIT_8

SIO-SPI bit length 8.

SL_SIO_UART_BIT_16

SIO-SPI bit length 16.


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

sl_sio_spi_parity_t#

sl_sio_spi_parity_t

SIO-UART parity configurations.

Enumerator
SL_SIO_UART_EVEN_PARITY

SIO-SPI even parity.

SL_SIO_UART_ODD_PARITY

SIO-SPI odd parity.


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

sl_sio_spi_stop_bit_t#

sl_sio_spi_stop_bit_t

SIO-UART stop bit configurations.

Enumerator
SL_SIO_UART_STOP_BIT_1

SIO-UART stop bit 1.

SL_SIO_UART_STOP_BIT_2

SIO-UART stop bit 2.


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

Typedef Documentation#

sl_sio_spi_config_t#

typedef stc_sio_spi_cfg_t sl_sio_spi_config_t

SIO-SPI configuration structure.


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

sl_sio_spi_xfer_config_t#

typedef stc_sio_spi_xfer_t sl_sio_spi_xfer_config_t

SIO-SPI Transfer structure.


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

sl_sio_i2s_config_t#

typedef stc_sio_i2s_config_t sl_sio_i2s_config_t

SIO-I2S configuration structure.


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

sl_sio_i2s_xfer_config_t#

typedef stc_sio_i2s_xfer_t sl_sio_i2s_xfer_config_t

SIO-I2S Transfer structure.


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

sl_sio_uart_config_t#

typedef stc_sio_uart_config_t sl_sio_uart_config_t

SIO-UART configuration structure.


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

sl_sio_i2s_callback_t#

typedef sio_i2s_func_ptr_t sl_sio_i2s_callback_t

SIO-I2S callback function pointer.


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

sl_sio_spi_callback_t#

typedef sio_Spi_func_ptr_t sl_sio_spi_callback_t

SIO-SPI callback function pointer.


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

sl_sio_uart_callback_t#

typedef sio_Uart_func_ptr_t sl_sio_uart_callback_t

SIO_UART callback function pointer.


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

sl_sio_i2c_config_t#

typedef stc_sio_i2c_config_t sl_sio_i2c_config_t

SIO-I2C configuration structure.


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

Function Documentation#

sl_si91x_sio_init#

sl_status_t sl_si91x_sio_init (void )

Initialize the SIO module.

Parameters
[in]

It initializes the SIO GPIO's and enables the SIO module clock. Returns

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

    • SL_STATUS_FAIL (0x0001) - Fail, SIO initialization failed

    • SL_STATUS_OK (0x0000) - Success, SIO initialization successful


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

sl_si91x_sio_spi_init#

sl_status_t sl_si91x_sio_spi_init (sl_sio_spi_config_t * configuration)

Initialize the SIO-SPI module.

Parameters
[in]configuration

- Pointer to SIO-SPI configuration structure sl_sio_spi_config_t

It configures the SPI mode, bit length, bit order, SIO frequency, and the SIO channels for the SPI transfer lines.

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_OK (0x0000) - Success, SPI initialization done properly


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

sl_si91x_sio_spi_pin_initialization#

sl_status_t sl_si91x_sio_spi_pin_initialization (sl_sio_spi_t * sio_spi_init)

Initialize SIO SPI pins and clock.

Parameters
[in]sio_spi_init

: Pointer to the structure of type sl_sio_spi_t

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 226 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_sio.h

sl_si91x_sio_uart_pin_initialization#

sl_status_t sl_si91x_sio_uart_pin_initialization (sl_sio_uart_t * sio_uart_init)

Initialize SIO UART pins and clock.

Parameters
[in]sio_uart_init

: Pointer to the structure of type sl_sio_uart_t

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 236 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_sio.h

sl_si91x_sio_i2c_pin_initialization#

sl_status_t sl_si91x_sio_i2c_pin_initialization (sl_sio_i2c_t * sio_i2c_init)

Initialize SIO I2C pins and clock.

Parameters
[in]sio_i2c_init

: Pointer to the structure of type sl_sio_i2c_t

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 246 of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_sio.h

sl_si91x_sio_spi_cs_assert#

sl_status_t sl_si91x_sio_spi_cs_assert (uint8_t chip_select_num)

Assert the SIO SPI chip select.

Parameters
[in]chip_select_num

- Chip select number (0 to 7)

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_OK (0x0000) - Success


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

sl_si91x_sio_spi_cs_deassert#

sl_status_t sl_si91x_sio_spi_cs_deassert (uint8_t chip_select_num)

De-assert the SIO SPI chip select.

Parameters
[in]chip_select_num

- Chip select number (0 to 7)

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_OK (0x0000) - Success


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

sl_si91x_sio_spi_register_event_callback#

sl_status_t sl_si91x_sio_spi_register_event_callback (sl_sio_spi_callback_t callback_event)

Register the user callback function.

Parameters
[in]callback_event

- Pointer to the function sl_sio_spi_callback_t which needs to be called at the time of interrupt.

Returns

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

    • SL_STATUS_OK (0x0000) - Success

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_BUSY (0x0004) - Driver is busy


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

sl_si91x_sio_spi_unregister_event_callback#

void sl_si91x_sio_spi_unregister_event_callback (void )

Un-register the user callback function.

Parameters
[in]

Returns

  • none


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

sl_si91x_sio_spi_transfer#

sl_status_t sl_si91x_sio_spi_transfer (sl_sio_spi_xfer_config_t * xfer_config)

Transfer the SIO SPI data.

Parameters
[in]xfer_config

- Pointer to SIO-SPI transfer configuration structure sl_sio_spi_xfer_config_t

It is used to make the SIO-SPI transfer in non-blocking mode.

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_OK (0x0000) - Success


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

sl_si91x_sio_get_version#

sl_sio_version_t sl_si91x_sio_get_version (void )

Get the SIO version.

Parameters
[in]

Returns


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

sl_si91x_sio_uart_init#

sl_status_t sl_si91x_sio_uart_init (sl_sio_uart_config_t * configuration)

Initialize SIO-UART, i.e., set baud rate, parity, channel selection, stop bits, and data length.

Parameters
[in]configuration

- Pointer to SIO-UART configuration structure sl_sio_uart_config_t

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_OK (0x0000) - Success, UART initialization done properly


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

sl_si91x_sio_uart_send#

sl_status_t sl_si91x_sio_uart_send (const void * buffer, uint16_t length)

Send the data over SIO-UART.

Parameters
[in]buffer

- data pointer to send

[in]length

- data length

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_OK (0x0000) - Success


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

sl_si91x_sio_uart_send_blocking#

sl_status_t sl_si91x_sio_uart_send_blocking (const void * buffer, uint16_t length)

Send the data over SIO-UART in blocking mode.

Parameters
[in]buffer

- data pointer to send

[in]length

- number of bytes to send

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_OK (0x0000) - Success


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

sl_si91x_sio_uart_read#

sl_status_t sl_si91x_sio_uart_read (void * data_buffer, uint16_t num_bytes)

Read data from UART.

Parameters
[in]data_buffer

- data buffer pointer to read

[in]num_bytes

- number of bytes read

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_OK (0x0000) - Success


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

sl_si91x_sio_uart_read_blocking#

sl_status_t sl_si91x_sio_uart_read_blocking (void * data_buffer, uint16_t num_bytes)

Read data from UART in blocking mode.

Parameters
[in]data_buffer

- data buffer pointer to read

[in]num_bytes

- number of bytes read

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_OK (0x0000) - Success


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

sl_si91x_sio_uart_register_event_callback#

sl_status_t sl_si91x_sio_uart_register_event_callback (sl_sio_uart_callback_t callback_event)

Register the user callback function.

Parameters
[in]callback_event

- Pointer to the function sl_sio_uart_callback_t which needs to be called at the time of interrupt.

Returns

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

    • SL_STATUS_OK (0x0000) - Success

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_BUSY (0x0004) - Driver is busy


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

sl_si91x_sio_i2c_write#

sl_status_t sl_si91x_sio_i2c_write (stc_sio_i2c_config_t * configuration, uint8_t address, uint8_t * data, uint16_t length)

Write data using SIO-I2C.

Parameters
[in]configuration

- pointer to the I2C configuration structure stc_sio_i2c_config_t in SIO module

[in]address

- slave address

[in]data

- pointer to the data

[in]length

- data length

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_i2c_read#

sl_status_t sl_si91x_sio_i2c_read (stc_sio_i2c_config_t * configuration, uint8_t address, uint8_t * data, uint16_t length)

Read data using SIO-I2C.

Parameters
[in]configuration

- pointer to the I2C configuration structure stc_sio_i2c_config_t in SIO module

[in]address

- slave address

[in]data

- pointer to the data

[in]length

- data length

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_i2c_transfer#

sl_status_t sl_si91x_sio_i2c_transfer (stc_sio_i2c_config_t * configuration, uint8_t address, uint8_t * tx_buffer, uint16_t tx_length, uint8_t * rx_buffer, uint16_t rx_length)

Transfer data using SIO-I2C.

Parameters
[in]configuration

- Pointer to the I2C configuration structure stc_sio_i2c_config_t in SIO module

[in]address

- Slave address

[in]tx_buffer

- Pointer to the data transmit buffer

[in]tx_length

- TX data length

[in]rx_buffer

- Pointer to the data receive buffer

[in]rx_length

- RX data length

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_i2c_generate_start#

void sl_si91x_sio_i2c_generate_start (void )

Generate I2C start in SIO.

Parameters
[in]

Returns

  • none


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

sl_si91x_sio_i2c_generate_stop#

void sl_si91x_sio_i2c_generate_stop (void )

Generate I2C stop in SIO.

Parameters
[in]

Returns

  • none


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

sl_si91x_sio_uart_unregister_event_callback#

void sl_si91x_sio_uart_unregister_event_callback (void )

Un-register the user callback function.

Parameters
[in]

Returns

  • none


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

sl_si91x_sio_uart_rx_done#

void sl_si91x_sio_uart_rx_done (void )

Used when UART receive is done.

Parameters
[in]

Returns

  • none


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

sl_si91x_sio_configure_interrupt#

sl_status_t sl_si91x_sio_configure_interrupt (en_sio_channels_t channel, interrupt_flag_t flag)

Configure pin detection mode to be considered for GPIO interrupt.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

[in]flag

- GPIO interrupt generated interrupt_flag_t

  • Rise edge: 0

  • Fall edge: 1

  • Level 0: 2

  • Level 1: 3

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_match_pattern#

sl_status_t sl_si91x_sio_match_pattern (en_sio_channels_t channel, pattern_match_t pattern, uint8_t slice, uint32_t slice_pattern)

Match the pattern with data to be detected.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

[in]pattern

- Pattern match bit to be enabled for pattern match to take place pattern_match_t

  • Pattern match disable: 0

  • Pattern match enable: 1

[in]slice

- Slice number (0,1,2,8,9,10) to select

[in]slice_pattern

- Pattern to match for selected slice

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_shift_clock#

sl_status_t sl_si91x_sio_shift_clock (uint32_t divider, en_sio_channels_t channel)

Generate the shift clock.

Parameters
[in]divider

- Desired clock frequency configuration

[in]channel

- SIO channel to be selected en_sio_channels_t

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_select_clock#

sl_status_t sl_si91x_sio_select_clock (en_sio_channels_t channel, clock_type_t clock)

Select clock.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

[in]clock

- Clock used for shift operations clock_type_t

  • Internal clock: 0

  • External clock: 1

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022n) - The parameter is null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_position_counter#

sl_status_t sl_si91x_sio_position_counter (en_sio_channels_t channel, uint32_t data_shift)

Shift the number of bits.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

[in]data_shift

- Number of shifts to happen before reloading register with data. Value to be set = (total no. of valid bits in shift register/ no. of bits per shift) - 1

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022) - The parameter is null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_control_flow#

sl_status_t sl_si91x_sio_control_flow (en_sio_channels_t channel, flow_control_t flow_control)

Enable/disable the flow control bit.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

[in]flow_control

- It decides whether to continue data shifting based on data present in shift register validation flow_control_t

  • Flow control disable: 0

  • Flow control enable: 1

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022n) - The parameter is null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_reverse_load#

sl_status_t sl_si91x_sio_reverse_load (en_sio_channels_t channel, reverse_load_t reverse)

Load data to buffer in reverse order.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

[in]reverse

- If data to be shifted out MSB first, it is to be set reverse_load_t

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022n) - The parameter is null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_set_interrupt#

sl_status_t sl_si91x_sio_set_interrupt (en_sio_channels_t channel)

Enable the common swap interrupt.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022n) - The parameter is null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_clear_interrupt#

sl_status_t sl_si91x_sio_clear_interrupt (en_sio_channels_t channel)

Disable the common swap interrupt.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022n) - The parameter is null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_mask_interrupt#

sl_status_t sl_si91x_sio_mask_interrupt (en_sio_channels_t channel)

Mask the common swap interrupt.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022n) - The parameter is null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_unmask_interrupt#

sl_status_t sl_si91x_sio_unmask_interrupt (en_sio_channels_t channel)

Unmask the common swap interrupt.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022n) - The parameter is null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_get_interrupt_status#

uint32_t sl_si91x_sio_get_interrupt_status (void )

Read the common swap interrupt status.

Parameters
[in]

Returns

  • returns interrupt status


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

sl_si91x_sio_set_shift_interrupt#

sl_status_t sl_si91x_sio_set_shift_interrupt (en_sio_channels_t channel)

Enable the common shift interrupt.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022n) - The parameter is null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_clear_shift_interrupt#

sl_status_t sl_si91x_sio_clear_shift_interrupt (en_sio_channels_t channel)

Disable the common shift interrupt.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022n) - The parameter is null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_mask_shift_interrupt#

sl_status_t sl_si91x_sio_mask_shift_interrupt (en_sio_channels_t channel)

Mask the common shift interrupt.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022n) - The parameter is null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_unmask_shift_interrupt#

sl_status_t sl_si91x_sio_unmask_shift_interrupt (en_sio_channels_t channel)

Unmask the common shift interrupt.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022n) - The parameter is null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_shift_interrupt_status#

uint32_t sl_si91x_sio_shift_interrupt_status (void )

Read the common shift interrupt status.

Parameters
[in]

- SIO channel to be selected en_sio_channels_t

Returns

  • returns shift interrupt status


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

sl_si91x_sio_edge_select#

sl_status_t sl_si91x_sio_edge_select (en_sio_channels_t channel, edge_select_t edge_sel)

Select edge of the clock cycle for sampling bits.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

[in]edge_sel

- Select the edge for bit sample to start edge_select_t

  • Positive edge: 0

  • Negative edge: 1

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022n) - The parameter is null pointer

    • SL_STATUS_OK (0X000) - Success


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

sl_si91x_sio_read_buffer#

uint32_t sl_si91x_sio_read_buffer (en_sio_channels_t channel)

Read SIO buffer register.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

Returns

  • returns data from buffer


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

sl_si91x_sio_write_buffer#

sl_status_t sl_si91x_sio_write_buffer (en_sio_channels_t channel, uint32_t data)

Write into SIO buffer register.

Parameters
[in]channel

- SIO channel to be selected en_sio_channels_t

[in]data

- Data to be written to buffer

Returns

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

    • SL_STATUS_INVALID_PARAMETER (0x0021) - The parameter is an invalid argument

    • SL_STATUS_NULL_POINTER (0x0022n) - The parameter is null pointer

    • SL_STATUS_OK (0X000) - Success


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

Macro Definition Documentation#

SL_SIO_CH_0#

#define SL_SIO_CH_0
Value:
0

SIO-SPI channel 0.


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

SL_SIO_CH_1#

#define SL_SIO_CH_1
Value:
1

SIO-SPI channel 1.


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

SL_SIO_CH_2#

#define SL_SIO_CH_2
Value:
2

SIO-SPI channel 2.


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

SL_SIO_CH_3#

#define SL_SIO_CH_3
Value:
3

SIO-SPI channel 3.


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

SL_SIO_CH_4#

#define SL_SIO_CH_4
Value:
4

SIO-SPI channel 4.


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

SL_SIO_CH_5#

#define SL_SIO_CH_5
Value:
5

SIO-SPI channel 5.


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

SL_SIO_CH_6#

#define SL_SIO_CH_6
Value:
6

SIO-SPI channel 6.


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

SL_SIO_CH_7#

#define SL_SIO_CH_7
Value:
7

SIO-SPI channel 7.


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