SPI Slave peripheral driver. More...
Data Structures |
|
| struct | nrfx_spis_t |
|
SPI slave driver instance data structure.
More...
|
|
| struct | nrfx_spis_evt_t |
|
SPI slave driver event structure.
More...
|
|
| struct | nrfx_spis_config_t |
|
SPI peripheral device configuration data.
More...
|
|
Macros |
|
| #define | NRFX_SPIS_INSTANCE (id) |
|
Macro for creating an SPI slave driver instance.
More...
|
|
| #define | NRFX_SPIS_PIN_NOT_USED 0xFF |
|
This value can be provided instead of a pin number for the signals MOSI and MISO to specify that the given signal is not used and therefore does not need to be connected to a pin.
|
|
| #define | NRFX_SPIS_DEFAULT_CSN_PULLUP NRF_GPIO_PIN_NOPULL |
|
Default pull-up configuration of the SPI CS.
|
|
| #define | NRFX_SPIS_DEFAULT_MISO_DRIVE NRF_GPIO_PIN_S0S1 |
|
Default drive configuration of the SPI MISO.
|
|
| #define | NRFX_SPIS_DEFAULT_CONFIG |
|
SPI slave instance default configuration.
More...
|
|
Typedefs |
|
| typedef void(* | nrfx_spis_event_handler_t )( nrfx_spis_evt_t const *p_event, void *p_context) |
|
SPI slave driver event handler type.
More...
|
|
Enumerations |
|
| enum | { NRFX_SPIS_ENABLED_COUNT } |
| enum |
nrfx_spis_evt_type_t
{
NRFX_SPIS_BUFFERS_SET_DONE , NRFX_SPIS_XFER_DONE , NRFX_SPIS_EVT_TYPE_MAX } |
|
SPI slave driver event types.
More...
|
|
Functions |
|
| nrfx_err_t | nrfx_spis_init ( nrfx_spis_t const *const p_instance, nrfx_spis_config_t const *p_config, nrfx_spis_event_handler_t event_handler, void *p_context) |
|
Function for initializing the SPI slave driver instance.
More...
|
|
| void | nrfx_spis_uninit ( nrfx_spis_t const *const p_instance) |
|
Function for uninitializing the SPI slave driver instance.
More...
|
|
| nrfx_err_t | nrfx_spis_buffers_set ( nrfx_spis_t const *const p_instance, uint8_t const *p_tx_buffer, size_t tx_buffer_length, uint8_t *p_rx_buffer, size_t rx_buffer_length) |
|
Function for preparing the SPI slave instance for a single SPI transaction.
More...
|
|
| void | nrfx_spis_0_irq_handler (void) |
| void | nrfx_spis_1_irq_handler (void) |
| void | nrfx_spis_2_irq_handler (void) |
Detailed Description
SPI Slave peripheral driver.
Macro Definition Documentation
| #define NRFX_SPIS_DEFAULT_CONFIG |
SPI slave instance default configuration.
| #define NRFX_SPIS_INSTANCE | ( | id | ) |
Macro for creating an SPI slave driver instance.
Typedef Documentation
| typedef void(* nrfx_spis_event_handler_t)( nrfx_spis_evt_t const *p_event, void *p_context) |
SPI slave driver event handler type.
- Parameters
-
[in] p_event Pointer to the event structure. The structure is allocated on the stack so it is valid only until the event handler returns. [in] p_context Context set on initialization.
Enumeration Type Documentation
| enum nrfx_spis_evt_type_t |
SPI slave driver event types.
Function Documentation
| nrfx_err_t nrfx_spis_buffers_set | ( | nrfx_spis_t const *const | p_instance , |
| uint8_t const * | p_tx_buffer , | ||
| size_t | tx_buffer_length , | ||
| uint8_t * | p_rx_buffer , | ||
| size_t | rx_buffer_length | ||
| ) |
Function for preparing the SPI slave instance for a single SPI transaction.
This function prepares the SPI slave device to be ready for a single SPI transaction. It configures the SPI slave device to use the memory supplied with the function call in SPI transactions.
When either the memory buffer configuration or the SPI transaction has been completed, the event callback function will be called with the appropriate event nrfx_spis_evt_type_t . Note that the callback function can be called before returning from this function, because it is called from the SPI slave interrupt context.
- Note
- This function can be called from the callback function context.
- Client applications must call this function after every NRFX_SPIS_XFER_DONE event if the SPI slave driver should be prepared for a possible new SPI transaction.
- Peripherals using EasyDMA (including SPIS) require the transfer buffers to be placed in the Data RAM region. If this condition is not met, this function will fail with the error code NRFX_ERROR_INVALID_ADDR.
- Parameters
-
[in] p_instance Pointer to the driver instance structure. [in] p_tx_buffer Pointer to the TX buffer. Can be NULL when the buffer length is zero. [in] p_rx_buffer Pointer to the RX buffer. Can be NULL when the buffer length is zero. [in] tx_buffer_length Length of the TX buffer in bytes. [in] rx_buffer_length Length of the RX buffer in bytes.
- Return values
-
NRFX_SUCCESS If the operation was successful. NRFX_ERROR_INVALID_STATE If the operation failed because the SPI slave device is in an incorrect state. NRFX_ERROR_INVALID_ADDR If the provided buffers are not placed in the Data RAM region. NRFX_ERROR_INVALID_LENGTH If provided lengths exceed the EasyDMA limits for the peripheral. NRFX_ERROR_INTERNAL If the operation failed because of an internal error.
| nrfx_err_t nrfx_spis_init | ( | nrfx_spis_t const *const | p_instance , |
| nrfx_spis_config_t const * | p_config , | ||
| nrfx_spis_event_handler_t | event_handler , | ||
| void * | p_context | ||
| ) |
Function for initializing the SPI slave driver instance.
- Note
- When the nRF52 Anomaly 109 workaround for SPIS is enabled, this function initializes the GPIOTE driver as well, and uses one of GPIOTE channels to detect falling edges on CSN pin.
- Parameters
-
[in] p_instance Pointer to the driver instance structure. [in] p_config Pointer to the structure with initial configuration. [in] event_handler Function to be called by the SPI slave driver upon event. Must not be NULL. [in] p_context Context passed to the event handler.
- Return values
-
NRFX_SUCCESS If the initialization was successful. NRFX_ERROR_INVALID_STATE If the instance is already initialized. NRFX_ERROR_INVALID_PARAM If an invalid parameter is supplied. NRFX_ERROR_BUSY If some other peripheral with the same instance ID is already in use. This is possible only if Peripheral Resource Sharing (PRS) module is enabled. NRFX_ERROR_INTERNAL GPIOTE channel for detecting falling edges on CSN pin cannot be initialized. Possible only when using nRF52 Anomaly 109 workaround.
| void nrfx_spis_uninit | ( | nrfx_spis_t const *const | p_instance | ) |
Function for uninitializing the SPI slave driver instance.
- Parameters
-
[in] p_instance Pointer to the driver instance structure.