nrfx 3.3
Macros | Enumerations | Functions
SPIM HAL

Hardware access layer for managing the SPIM peripheral. More...

Macros

#define NRF_SPIM_INST_GET(idx)   NRFX_CONCAT(NRF_, SPIM, idx)
 Macro getting pointer to the structure of registers of the SPIM peripheral.
 
#define NRF_SPIM_HAS_16_MHZ_FREQ   1
 Symbol indicating whether 16 MHz clock frequency is available.
 
#define NRF_SPIM_HAS_32_MHZ_FREQ   1
 Symbol indicating whether 32 MHz clock frequency is available.
 
#define NRF_SPIM_HAS_FREQUENCY   1
 Symbol indicating whether frequency is used.
 
#define NRF_SPIM_HAS_PRESCALER   1
 Symbol indicating whether prescaler is used.
 
#define NRF_SPIM_HAS_ARRAY_LIST   1
 Symbol indicating whether EasyDMA array list feature is present.
 
#define NRF_SPIM_HAS_DMA_REG   1
 Symbol indicating whether dedicated DMA register is present.
 
#define NRF_SPIM_HAS_DMA_TASKS_EVENTS   1
 Symbol indicating whether SPIM DMA tasks and events are present.
 
#define NRF_SPIM_HAS_HW_CSN   1
 Macro for checking if the hardware chip select function is available.
 
#define NRF_SPIM_HAS_DCX   1
 Macro for checking if the DCX pin control is available.
 
#define NRF_SPIM_HAS_RXDELAY   1
 Macro for checking if the RXDELAY function is available.
 
#define NRF_SPIM_HAS_STALLSTAT   1
 Macro for checking if the STALLSTAT feature is available.
 
#define NRF_SPIM_HAS_EXTENDED   1
 Symbol indicating whether any of the SPIM extended features is available.
 
#define NRF_SPIM_DCX_CNT_ALL_CMD   0xF
 This value specified in the DCX line configuration causes this line to be set low during whole transmission (all transmitted bytes are marked as command bytes). Any lower value causes the DCX line to be switched from low to high after this number of bytes is transmitted (all remaining bytes are marked as data bytes).
 
#define NRF_SPIM_PIN_NOT_CONNECTED   0xFFFFFFFF
 This value can be used as a parameter for the nrf_spim_pins_set function to specify that a given SPI signal (SCK, MOSI, or MISO) shall not be connected to a physical pin.
 
#define NRF_SPIM_DMA_RX_PATTERN_MAX_COUNT   SPIM_DMA_RX_MATCH_CANDIDATE_MaxCount
 Max number of RX patterns.
 
#define NRF_SPIM_MIN_FREQUENCY   (NRFX_KHZ_TO_HZ(125UL))
 Minimal SPIM frequency in Hz.
 
#define NRF_SPIM_BASE_FREQUENCY_320MHZ   (NRFX_MHZ_TO_HZ(320UL))
 Base frequency value 320 MHz for SPIM.
 
#define NRF_SPIM_BASE_FREQUENCY_192MHZ   (NRFX_MHZ_TO_HZ(192UL))
 Base frequency value 192 MHz for SPIM.
 
#define NRF_SPIM_BASE_FREQUENCY_128MHZ   (NRFX_MHZ_TO_HZ(128UL))
 Base frequency value 128 MHz for SPIM.
 
#define NRF_SPIM_BASE_FREQUENCY_64MHZ   (NRFX_MHZ_TO_HZ(64UL))
 Base frequency value 64 MHz for SPIM.
 
#define NRF_SPIM_BASE_FREQUENCY_32MHZ   (NRFX_MHZ_TO_HZ(32UL))
 Base frequency value 32 MHz for SPIM.
 
#define NRF_SPIM_BASE_FREQUENCY_16MHZ   (NRFX_MHZ_TO_HZ(16UL))
 Base frequency value 16 MHz for SPIM.
 
#define NRF_SPIM_IS_320MHZ_SPIM(p_reg)
 Macro for checking whether the base frequency for the specified SPIM instance is 320 MHz.
 
#define NRF_SPIM_IS_192MHZ_SPIM(p_reg)   false
 Macro for checking whether the base frequency for the specified SPIM instance is 192 MHz.
 
#define NRF_SPIM_IS_128MHZ_SPIM(p_reg)
 Macro for checking whether the base frequency for the specified SPIM instance is 128 MHz.
 
#define NRF_SPIM_IS_64MHZ_SPIM(p_reg)
 Macro for checking whether the base frequency for the specified SPIM instance is 64 MHz.
 
#define NRF_SPIM_IS_32MHZ_SPIM(p_reg)   false
 Macro for checking whether the base frequency for the specified SPIM instance is 32 MHz.
 
#define NRF_SPIM_BASE_FREQUENCY_GET(p_reg)
 Macro for getting base frequency value in Hz for the specified SPIM instance.
 
#define NRF_SPIM_PRESCALER_MAX_GET(p_reg)
 Macro for getting the maximum value of PRESCALER register.
 
#define NRF_SPIM_PRESCALER_MIN_GET(p_reg)
 Macro for getting the minimum value of PRESCALER register.
 
#define NRF_SPIM_PRESCALER_CALCULATE(p_reg, frequency)    ((uint32_t)(NRF_SPIM_BASE_FREQUENCY_GET(p_reg)) / (uint32_t)(frequency))
 Macro for computing prescaler value for a given SPIM instance and desired frequency.
 
#define NRF_SPIM_FREQUENCY_STATIC_CHECK(p_reg, frequency)
 Macro for checking whether specified frequency can be achieved for a given SPIM instance.
 

Enumerations

enum  nrf_spim_task_t {
  NRF_SPIM_TASK_START = offsetof(NRF_SPIM_Type, TASKS_START) ,
  NRF_SPIM_TASK_STOP = offsetof(NRF_SPIM_Type, TASKS_STOP) ,
  NRF_SPIM_TASK_SUSPEND = offsetof(NRF_SPIM_Type, TASKS_SUSPEND) ,
  NRF_SPIM_TASK_RESUME = offsetof(NRF_SPIM_Type, TASKS_RESUME) ,
  NRF_SPIM_TASK_ENABLERXMATCH0 = offsetof(NRF_SPIM_Type, TASKS_DMA.RX.ENABLEMATCH[0]) ,
  NRF_SPIM_TASK_ENABLERXMATCH1 = offsetof(NRF_SPIM_Type, TASKS_DMA.RX.ENABLEMATCH[1]) ,
  NRF_SPIM_TASK_ENABLERXMATCH2 = offsetof(NRF_SPIM_Type, TASKS_DMA.RX.ENABLEMATCH[2]) ,
  NRF_SPIM_TASK_ENABLERXMATCH3 = offsetof(NRF_SPIM_Type, TASKS_DMA.RX.ENABLEMATCH[3]) ,
  NRF_SPIM_TASK_DISABLERXMATCH0 = offsetof(NRF_SPIM_Type, TASKS_DMA.RX.DISABLEMATCH[0]) ,
  NRF_SPIM_TASK_DISABLERXMATCH1 = offsetof(NRF_SPIM_Type, TASKS_DMA.RX.DISABLEMATCH[1]) ,
  NRF_SPIM_TASK_DISABLERXMATCH2 = offsetof(NRF_SPIM_Type, TASKS_DMA.RX.DISABLEMATCH[2]) ,
  NRF_SPIM_TASK_DISABLERXMATCH3 = offsetof(NRF_SPIM_Type, TASKS_DMA.RX.DISABLEMATCH[3])
}
 SPIM tasks. More...
 
enum  nrf_spim_event_t {
  NRF_SPIM_EVENT_STARTED = offsetof(NRF_SPIM_Type, EVENTS_STARTED) ,
  NRF_SPIM_EVENT_STOPPED = offsetof(NRF_SPIM_Type, EVENTS_STOPPED) ,
  NRF_SPIM_EVENT_RXSTARTED = offsetof(NRF_SPIM_Type, EVENTS_DMA.RX.READY) ,
  NRF_SPIM_EVENT_RXBUSERROR = offsetof(NRF_SPIM_Type, EVENTS_DMA.RX.BUSERROR) ,
  NRF_SPIM_EVENT_RXMATCH0 = offsetof(NRF_SPIM_Type, EVENTS_DMA.RX.MATCH[0]) ,
  NRF_SPIM_EVENT_RXMATCH1 = offsetof(NRF_SPIM_Type, EVENTS_DMA.RX.MATCH[1]) ,
  NRF_SPIM_EVENT_RXMATCH2 = offsetof(NRF_SPIM_Type, EVENTS_DMA.RX.MATCH[2]) ,
  NRF_SPIM_EVENT_RXMATCH3 = offsetof(NRF_SPIM_Type, EVENTS_DMA.RX.MATCH[3]) ,
  NRF_SPIM_EVENT_TXSTARTED = offsetof(NRF_SPIM_Type, EVENTS_DMA.TX.READY) ,
  NRF_SPIM_EVENT_TXBUSERROR = offsetof(NRF_SPIM_Type, EVENTS_DMA.TX.BUSERROR) ,
  NRF_SPIM_EVENT_ENDRX = offsetof(NRF_SPIM_Type, EVENTS_DMA.RX.END) ,
  NRF_SPIM_EVENT_ENDTX = offsetof(NRF_SPIM_Type, EVENTS_DMA.TX.END) ,
  NRF_SPIM_EVENT_END = offsetof(NRF_SPIM_Type, EVENTS_END)
}
 SPIM events. More...
 
enum  nrf_spim_short_mask_t {
  NRF_SPIM_SHORT_END_START_MASK = SPIM_SHORTS_END_START_Msk ,
  NRF_SPIM_SHORT_RXMATCH0_ENABLERXMATCH1_MASK = SPIM_SHORTS_DMA_RX_MATCH0_DMA_RX_ENABLEMATCH1_Msk ,
  NRF_SPIM_SHORT_RXMATCH1_ENABLERXMATCH2_MASK = SPIM_SHORTS_DMA_RX_MATCH1_DMA_RX_ENABLEMATCH2_Msk ,
  NRF_SPIM_SHORT_RXMATCH2_ENABLERXMATCH3_MASK = SPIM_SHORTS_DMA_RX_MATCH2_DMA_RX_ENABLEMATCH3_Msk ,
  NRF_SPIM_SHORT_RXMATCH3_ENABLERXMATCH0_MASK = SPIM_SHORTS_DMA_RX_MATCH3_DMA_RX_ENABLEMATCH0_Msk ,
  NRF_SPIM_SHORT_RXMATCH0_DISABLERXMATCH0_MASK = SPIM_SHORTS_DMA_RX_MATCH0_DMA_RX_DISABLEMATCH0_Msk ,
  NRF_SPIM_SHORT_RXMATCH1_DISABLERXMATCH1_MASK = SPIM_SHORTS_DMA_RX_MATCH1_DMA_RX_DISABLEMATCH1_Msk ,
  NRF_SPIM_SHORT_RXMATCH2_DISABLERXMATCH2_MASK = SPIM_SHORTS_DMA_RX_MATCH2_DMA_RX_DISABLEMATCH2_Msk ,
  NRF_SPIM_SHORT_RXMATCH3_DISABLERXMATCH3_MASK = SPIM_SHORTS_DMA_RX_MATCH3_DMA_RX_DISABLEMATCH3_Msk ,
  NRF_SPIM_ALL_SHORTS_MASK
}
 SPIM shortcuts. More...
 
enum  nrf_spim_int_mask_t {
  NRF_SPIM_INT_STARTED_MASK = SPIM_INTENSET_STARTED_Msk ,
  NRF_SPIM_INT_STOPPED_MASK = SPIM_INTENSET_STOPPED_Msk ,
  NRF_SPIM_INT_RXREADY_MASK = SPIM_INTENSET_DMARXREADY_Msk ,
  NRF_SPIM_INT_RXBUSERROR_MASK = SPIM_INTENSET_DMARXBUSERROR_Msk ,
  NRF_SPIM_INT_RXMATCH0_MASK = SPIM_INTENSET_DMARXMATCH0_Msk ,
  NRF_SPIM_INT_RXMATCH1_MASK = SPIM_INTENSET_DMARXMATCH1_Msk ,
  NRF_SPIM_INT_RXMATCH2_MASK = SPIM_INTENSET_DMARXMATCH2_Msk ,
  NRF_SPIM_INT_RXMATCH3_MASK = SPIM_INTENSET_DMARXMATCH3_Msk ,
  NRF_SPIM_INT_TXREADY_MASK = SPIM_INTENSET_DMATXREADY_Msk ,
  NRF_SPIM_INT_TXBUSERROR_MASK = SPIM_INTENSET_DMATXBUSERROR_Msk ,
  NRF_SPIM_INT_ENDRX_MASK = SPIM_INTENSET_DMARXEND_Msk ,
  NRF_SPIM_INT_ENDTX_MASK = SPIM_INTENSET_DMATXEND_Msk ,
  NRF_SPIM_INT_END_MASK = SPIM_INTENSET_END_Msk ,
  NRF_SPIM_ALL_INTS_MASK
}
 SPIM interrupts. More...
 
enum  nrf_spim_frequency_t {
  NRF_SPIM_FREQ_125K = SPIM_FREQUENCY_FREQUENCY_K125 ,
  NRF_SPIM_FREQ_250K = SPIM_FREQUENCY_FREQUENCY_K250 ,
  NRF_SPIM_FREQ_500K = SPIM_FREQUENCY_FREQUENCY_K500 ,
  NRF_SPIM_FREQ_1M = SPIM_FREQUENCY_FREQUENCY_M1 ,
  NRF_SPIM_FREQ_2M = SPIM_FREQUENCY_FREQUENCY_M2 ,
  NRF_SPIM_FREQ_4M = SPIM_FREQUENCY_FREQUENCY_M4 ,
  NRF_SPIM_FREQ_8M = (int)SPIM_FREQUENCY_FREQUENCY_M8 ,
  NRF_SPIM_FREQ_16M = SPIM_FREQUENCY_FREQUENCY_M16 ,
  NRF_SPIM_FREQ_32M = SPIM_FREQUENCY_FREQUENCY_M32
}
 SPI master data rates. More...
 
enum  nrf_spim_mode_t {
  NRF_SPIM_MODE_0 ,
  NRF_SPIM_MODE_1 ,
  NRF_SPIM_MODE_2 ,
  NRF_SPIM_MODE_3
}
 SPI modes. More...
 
enum  nrf_spim_bit_order_t {
  NRF_SPIM_BIT_ORDER_MSB_FIRST = SPIM_CONFIG_ORDER_MsbFirst ,
  NRF_SPIM_BIT_ORDER_LSB_FIRST = SPIM_CONFIG_ORDER_LsbFirst
}
 SPI bit orders. More...
 
enum  nrf_spim_csn_pol_t {
  NRF_SPIM_CSN_POL_LOW = SPIM_CSNPOL_CSNPOL_LOW ,
  NRF_SPIM_CSN_POL_HIGH = SPIM_CSNPOL_CSNPOL_HIGH
}
 SPI CSN pin polarity. More...
 

Functions

NRF_STATIC_INLINE void nrf_spim_task_trigger (NRF_SPIM_Type *p_reg, nrf_spim_task_t task)
 Function for activating the specified SPIM task.
 
NRF_STATIC_INLINE uint32_t nrf_spim_task_address_get (NRF_SPIM_Type const *p_reg, nrf_spim_task_t task)
 Function for getting the address of the specified SPIM task register.
 
NRF_STATIC_INLINE void nrf_spim_event_clear (NRF_SPIM_Type *p_reg, nrf_spim_event_t event)
 Function for clearing the specified SPIM event.
 
NRF_STATIC_INLINE bool nrf_spim_event_check (NRF_SPIM_Type const *p_reg, nrf_spim_event_t event)
 Function for retrieving the state of the SPIM event.
 
NRF_STATIC_INLINE uint32_t nrf_spim_event_address_get (NRF_SPIM_Type const *p_reg, nrf_spim_event_t event)
 Function for getting the address of the specified SPIM event register.
 
NRF_STATIC_INLINE void nrf_spim_shorts_enable (NRF_SPIM_Type *p_reg, uint32_t mask)
 Function for enabling the specified shortcuts.
 
NRF_STATIC_INLINE void nrf_spim_shorts_disable (NRF_SPIM_Type *p_reg, uint32_t mask)
 Function for disabling the specified shortcuts.
 
NRF_STATIC_INLINE uint32_t nrf_spim_shorts_get (NRF_SPIM_Type const *p_reg)
 Function for getting the shortcut setting.
 
NRF_STATIC_INLINE void nrf_spim_int_enable (NRF_SPIM_Type *p_reg, uint32_t mask)
 Function for enabling the specified interrupts.
 
NRF_STATIC_INLINE void nrf_spim_int_disable (NRF_SPIM_Type *p_reg, uint32_t mask)
 Function for disabling the specified interrupts.
 
NRF_STATIC_INLINE uint32_t nrf_spim_int_enable_check (NRF_SPIM_Type const *p_reg, uint32_t mask)
 Function for checking if the specified interrupts are enabled.
 
NRF_STATIC_INLINE void nrf_spim_prescaler_set (NRF_SPIM_Type *p_reg, uint32_t prescaler)
 Function for setting the prescaler value.
 
NRF_STATIC_INLINE uint32_t nrf_spim_prescaler_get (NRF_SPIM_Type const *p_reg)
 Function for getting the prescaler value.
 
NRF_STATIC_INLINE void nrf_spim_subscribe_set (NRF_SPIM_Type *p_reg, nrf_spim_task_t task, uint8_t channel)
 Function for setting the subscribe configuration for a given SPIM task.
 
NRF_STATIC_INLINE void nrf_spim_subscribe_clear (NRF_SPIM_Type *p_reg, nrf_spim_task_t task)
 Function for clearing the subscribe configuration for a given SPIM task.
 
NRF_STATIC_INLINE void nrf_spim_publish_set (NRF_SPIM_Type *p_reg, nrf_spim_event_t event, uint8_t channel)
 Function for setting the publish configuration for a given SPIM event.
 
NRF_STATIC_INLINE void nrf_spim_publish_clear (NRF_SPIM_Type *p_reg, nrf_spim_event_t event)
 Function for clearing the publish configuration for a given SPIM event.
 
NRF_STATIC_INLINE void nrf_spim_enable (NRF_SPIM_Type *p_reg)
 Function for enabling the SPIM peripheral.
 
NRF_STATIC_INLINE void nrf_spim_disable (NRF_SPIM_Type *p_reg)
 Function for disabling the SPIM peripheral.
 
NRF_STATIC_INLINE bool nrf_spim_enable_check (NRF_SPIM_Type const *p_reg)
 Function for checking if the SPIM peripheral is enabled.
 
NRF_STATIC_INLINE void nrf_spim_pins_set (NRF_SPIM_Type *p_reg, uint32_t sck_pin, uint32_t mosi_pin, uint32_t miso_pin)
 Function for configuring SPIM pins.
 
NRF_STATIC_INLINE uint32_t nrf_spim_sck_pin_get (NRF_SPIM_Type const *p_reg)
 Function for getting the SCK pin selection.
 
NRF_STATIC_INLINE uint32_t nrf_spim_mosi_pin_get (NRF_SPIM_Type const *p_reg)
 Function for getting the MOSI pin selection.
 
NRF_STATIC_INLINE uint32_t nrf_spim_miso_pin_get (NRF_SPIM_Type const *p_reg)
 Function for getting the MISO pin selection.
 
NRF_STATIC_INLINE void nrf_spim_csn_configure (NRF_SPIM_Type *p_reg, uint32_t pin, nrf_spim_csn_pol_t polarity, uint32_t duration)
 Function for configuring the SPIM hardware CSN pin.
 
NRF_STATIC_INLINE uint32_t nrf_spim_csn_pin_get (NRF_SPIM_Type const *p_reg)
 Function for getting the CSN pin selection.
 
NRF_STATIC_INLINE void nrf_spim_dcx_pin_set (NRF_SPIM_Type *p_reg, uint32_t dcx_pin)
 Function for configuring the SPIM DCX pin.
 
NRF_STATIC_INLINE uint32_t nrf_spim_dcx_pin_get (NRF_SPIM_Type const *p_reg)
 Function for getting the DCX pin selection.
 
NRF_STATIC_INLINE void nrf_spim_dcx_cnt_set (NRF_SPIM_Type *p_reg, uint32_t count)
 Function for configuring the number of command bytes.
 
NRF_STATIC_INLINE void nrf_spim_iftiming_set (NRF_SPIM_Type *p_reg, uint32_t rxdelay)
 Function for configuring the extended SPIM interface.
 
NRF_STATIC_INLINE void nrf_spim_stallstat_rx_clear (NRF_SPIM_Type *p_reg)
 Function for clearing stall status for RX EasyDMA RAM accesses.
 
NRF_STATIC_INLINE bool nrf_spim_stallstat_rx_get (NRF_SPIM_Type const *p_reg)
 Function for getting stall status for RX EasyDMA RAM accesses.
 
NRF_STATIC_INLINE void nrf_spim_stallstat_tx_clear (NRF_SPIM_Type *p_reg)
 Function for clearing stall status for TX EasyDMA RAM accesses.
 
NRF_STATIC_INLINE bool nrf_spim_stallstat_tx_get (NRF_SPIM_Type const *p_reg)
 Function for getting stall status for TX EasyDMA RAM accesses.
 
NRF_STATIC_INLINE void nrf_spim_frequency_set (NRF_SPIM_Type *p_reg, nrf_spim_frequency_t frequency)
 Function for setting the SPI master data rate.
 
NRF_STATIC_INLINE nrf_spim_frequency_t nrf_spim_frequency_get (NRF_SPIM_Type *p_reg)
 Function for getting the SPI master data rate.
 
NRF_STATIC_INLINE void nrf_spim_tx_buffer_set (NRF_SPIM_Type *p_reg, uint8_t const *p_buffer, size_t length)
 Function for setting the transmit buffer.
 
NRF_STATIC_INLINE uint32_t nrf_spim_tx_amount_get (NRF_SPIM_Type const *p_reg)
 Function for getting number of bytes transmitted in the last transaction.
 
NRF_STATIC_INLINE uint32_t nrf_spim_tx_maxcnt_get (NRF_SPIM_Type const *p_reg)
 Function for getting number of bytes to be transmitted in the next transaction.
 
NRF_STATIC_INLINE void nrf_spim_rx_buffer_set (NRF_SPIM_Type *p_reg, uint8_t *p_buffer, size_t length)
 Function for setting the receive buffer.
 
NRF_STATIC_INLINE uint32_t nrf_spim_rx_amount_get (NRF_SPIM_Type const *p_reg)
 Function for getting number of bytes received in the last transaction.
 
NRF_STATIC_INLINE uint32_t nrf_spim_rx_maxcnt_get (NRF_SPIM_Type const *p_reg)
 Function for getting number of bytes to be received in the next transaction.
 
NRF_STATIC_INLINE void nrf_spim_configure (NRF_SPIM_Type *p_reg, nrf_spim_mode_t spi_mode, nrf_spim_bit_order_t spi_bit_order)
 Function for setting the SPI configuration.
 
NRF_STATIC_INLINE void nrf_spim_orc_set (NRF_SPIM_Type *p_reg, uint8_t orc)
 Function for setting the over-read character.
 
NRF_STATIC_INLINE void nrf_spim_tx_list_enable (NRF_SPIM_Type *p_reg)
 Function for enabling the TX list feature.
 
NRF_STATIC_INLINE void nrf_spim_tx_list_disable (NRF_SPIM_Type *p_reg)
 Function for disabling the TX list feature.
 
NRF_STATIC_INLINE void nrf_spim_rx_list_enable (NRF_SPIM_Type *p_reg)
 Function for enabling the RX list feature.
 
NRF_STATIC_INLINE void nrf_spim_rx_list_disable (NRF_SPIM_Type *p_reg)
 Function for disabling the RX list feature.
 
NRF_STATIC_INLINE void nrf_spim_rx_pattern_match_enable_set (NRF_SPIM_Type *p_reg, uint8_t index, bool enable)
 Function for enabling individual pattern match filters.
 
NRF_STATIC_INLINE bool nrf_spim_rx_pattern_match_enable_check (NRF_SPIM_Type const *p_reg, uint8_t index)
 Function for checking if the specified pattern match filter is enabled.
 
NRF_STATIC_INLINE void nrf_spim_rx_pattern_match_one_shot_enable (NRF_SPIM_Type *p_reg, uint8_t index)
 Function for enabling one-shot operation for the specified match filter.
 
NRF_STATIC_INLINE void nrf_spim_rx_pattern_match_one_shot_disable (NRF_SPIM_Type *p_reg, uint8_t index)
 Function for disabling one-shot operation for the specified match filter.
 
NRF_STATIC_INLINE bool nrf_spim_rx_pattern_match_one_shot_check (NRF_SPIM_Type const *p_reg, uint8_t index)
 Function for checking if specified pattern match filter is configured as one-shot.
 
NRF_STATIC_INLINE void nrf_spim_rx_pattern_match_candidate_set (NRF_SPIM_Type *p_reg, uint8_t index, uint32_t pattern)
 Function for setting the pattern to be looked for by the specified match filter.
 
NRF_STATIC_INLINE uint32_t nrf_spim_rx_pattern_match_candidate_get (NRF_SPIM_Type const *p_reg, uint8_t index)
 Function for getting the pattern that the specified match filter is looking for.
 
NRF_STATIC_INLINE void nrf_spim_rx_terminate_on_bus_error_enable (NRF_SPIM_Type *p_reg)
 Function for enabling the termination of the RX transaction after detecting the BUSERROR event.
 
NRF_STATIC_INLINE void nrf_spim_rx_terminate_on_bus_error_disable (NRF_SPIM_Type *p_reg)
 Function for disabling the termination of the RX transaction after detecting the BUSERROR event.
 
NRF_STATIC_INLINE bool nrf_spim_rx_terminate_on_bus_error_check (NRF_SPIM_Type const *p_reg)
 Function for checking if RX transaction termination after detecting the BUSERROR event is enabled.
 
NRF_STATIC_INLINE void nrf_spim_tx_terminate_on_bus_error_enable (NRF_SPIM_Type *p_reg)
 Function for enabling the termination of the TX transaction after detecting the BUSERROR event.
 
NRF_STATIC_INLINE void nrf_spim_tx_terminate_on_bus_error_disable (NRF_SPIM_Type *p_reg)
 Function for disabling the termination of the TX transaction after detecting the BUSERROR event.
 
NRF_STATIC_INLINE bool nrf_spim_tx_terminate_on_bus_error_check (NRF_SPIM_Type const *p_reg)
 Function for checking if TX transaction termination after detecting the BUSERROR event is enabled.
 

Detailed Description

Hardware access layer for managing the SPIM peripheral.

Macro Definition Documentation

◆ NRF_SPIM_BASE_FREQUENCY_GET

#define NRF_SPIM_BASE_FREQUENCY_GET (   p_reg)
Value:
#define NRF_SPIM_BASE_FREQUENCY_32MHZ
Base frequency value 32 MHz for SPIM.
Definition: nrf_spim.h:175
#define NRF_SPIM_IS_32MHZ_SPIM(p_reg)
Macro for checking whether the base frequency for the specified SPIM instance is 32 MHz.
Definition: nrf_spim.h:210
#define NRF_SPIM_BASE_FREQUENCY_192MHZ
Base frequency value 192 MHz for SPIM.
Definition: nrf_spim.h:166
#define NRF_SPIM_IS_64MHZ_SPIM(p_reg)
Macro for checking whether the base frequency for the specified SPIM instance is 64 MHz.
Definition: nrf_spim.h:202
#define NRF_SPIM_IS_128MHZ_SPIM(p_reg)
Macro for checking whether the base frequency for the specified SPIM instance is 128 MHz.
Definition: nrf_spim.h:194
#define NRF_SPIM_BASE_FREQUENCY_128MHZ
Base frequency value 128 MHz for SPIM.
Definition: nrf_spim.h:169
#define NRF_SPIM_BASE_FREQUENCY_320MHZ
Base frequency value 320 MHz for SPIM.
Definition: nrf_spim.h:163
#define NRF_SPIM_BASE_FREQUENCY_64MHZ
Base frequency value 64 MHz for SPIM.
Definition: nrf_spim.h:172
#define NRF_SPIM_BASE_FREQUENCY_16MHZ
Base frequency value 16 MHz for SPIM.
Definition: nrf_spim.h:178
#define NRF_SPIM_IS_192MHZ_SPIM(p_reg)
Macro for checking whether the base frequency for the specified SPIM instance is 192 MHz.
Definition: nrf_spim.h:189
#define NRF_SPIM_IS_320MHZ_SPIM(p_reg)
Macro for checking whether the base frequency for the specified SPIM instance is 320 MHz.
Definition: nrf_spim.h:182

Macro for getting base frequency value in Hz for the specified SPIM instance.

◆ NRF_SPIM_FREQUENCY_STATIC_CHECK

#define NRF_SPIM_FREQUENCY_STATIC_CHECK (   p_reg,
  frequency 
)
Value:
((NRF_SPIM_BASE_FREQUENCY_GET(p_reg) % (uint32_t)frequency == 0) && \
(NRFX_IS_EVEN(NRF_SPIM_PRESCALER_CALCULATE(p_reg, (uint32_t)frequency))) && \
(NRF_SPIM_PRESCALER_CALCULATE(p_reg, (uint32_t)frequency) >= (NRF_SPIM_PRESCALER_MIN_GET(p_reg))) && \
(NRF_SPIM_PRESCALER_CALCULATE(p_reg, (uint32_t)frequency) <= (NRF_SPIM_PRESCALER_MAX_GET(p_reg)))) \
, \
(((uint32_t)frequency == (uint32_t)NRFX_KHZ_TO_HZ(125)) || \
((uint32_t)frequency == (uint32_t)NRFX_KHZ_TO_HZ(250)) || \
((uint32_t)frequency == (uint32_t)NRFX_KHZ_TO_HZ(500)) || \
((uint32_t)frequency == (uint32_t)NRFX_MHZ_TO_HZ(1)) || \
((uint32_t)frequency == (uint32_t)NRFX_MHZ_TO_HZ(2)) || \
((uint32_t)frequency == (uint32_t)NRFX_MHZ_TO_HZ(4)) || \
((uint32_t)frequency == (uint32_t)NRFX_MHZ_TO_HZ(8)) || \
(((uint32_t)frequency == (uint32_t)NRFX_MHZ_TO_HZ(16)) && (NRF_SPIM_HAS_16_MHZ_FREQ)) || \
(((uint32_t)frequency == (uint32_t)NRFX_MHZ_TO_HZ(32)) && (NRF_SPIM_HAS_32_MHZ_FREQ)))))
#define NRF_SPIM_BASE_FREQUENCY_GET(p_reg)
Macro for getting base frequency value in Hz for the specified SPIM instance.
Definition: nrf_spim.h:214
#define NRF_SPIM_PRESCALER_CALCULATE(p_reg, frequency)
Macro for computing prescaler value for a given SPIM instance and desired frequency.
Definition: nrf_spim.h:250
#define NRF_SPIM_HAS_32_MHZ_FREQ
Symbol indicating whether 32 MHz clock frequency is available.
Definition: nrf_spim.h:57
#define NRF_SPIM_HAS_PRESCALER
Symbol indicating whether prescaler is used.
Definition: nrf_spim.h:71
#define NRF_SPIM_PRESCALER_MAX_GET(p_reg)
Macro for getting the maximum value of PRESCALER register.
Definition: nrf_spim.h:228
#define NRF_SPIM_PRESCALER_MIN_GET(p_reg)
Macro for getting the minimum value of PRESCALER register.
Definition: nrf_spim.h:237
#define NRF_SPIM_HAS_16_MHZ_FREQ
Symbol indicating whether 16 MHz clock frequency is available.
Definition: nrf_spim.h:50
#define NRFX_MHZ_TO_HZ(freq)
Macro for converting frequency in MHz to Hz.
Definition: nrfx_common.h:539
#define NRFX_KHZ_TO_HZ(freq)
Macro for converting frequency in kHz to Hz.
Definition: nrfx_common.h:530
#define NRFX_IS_EVEN(val)
Macro for checking whether a given number is even.
Definition: nrfx_common.h:456
#define NRFX_STATIC_ASSERT(expression)
Macro for placing a compile time assertion.
Definition: nrfx_glue.h:43
#define NRFX_COND_CODE_1(_flag, _if_1_code, _else_code)
Macro for inserting code depending on whether _flag exists and expands to 1 or not.
Definition: nrfx_utils.h:58

Macro for checking whether specified frequency can be achieved for a given SPIM instance.

Note
This macro uses a compile-time assertion.
Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]frequencyDesired frequency value in Hz.

◆ NRF_SPIM_INST_GET

#define NRF_SPIM_INST_GET (   idx)    NRFX_CONCAT(NRF_, SPIM, idx)

Macro getting pointer to the structure of registers of the SPIM peripheral.

Parameters
[in]idxSPIM instance index.
Returns
Pointer to the structure of registers of the SPIM peripheral.

◆ NRF_SPIM_IS_128MHZ_SPIM

#define NRF_SPIM_IS_128MHZ_SPIM (   p_reg)
Value:
(NRFX_COND_CODE_1(NRFX_IS_ENABLED(NRF_CPU_FREQ_IS_128MHZ), \
(NRFX_COND_CODE_1(NRFX_INSTANCE_PRESENT(SPIM00), (p_reg == NRF_SPIM00), (false))), \
(false)))
#define NRFX_INSTANCE_PRESENT(_inst)
Macro for checking if given peripheral instance is present on the target.
Definition: nrfx_common.h:357
#define NRFX_IS_ENABLED(config_macro)
Macro for checking for macro definition in compiler-visible expressions.
Definition: nrfx_utils.h:100

Macro for checking whether the base frequency for the specified SPIM instance is 128 MHz.

◆ NRF_SPIM_IS_320MHZ_SPIM

#define NRF_SPIM_IS_320MHZ_SPIM (   p_reg)
Value:
(NRFX_COND_CODE_1(NRFX_INSTANCE_PRESENT(SPIM120), (p_reg == NRF_SPIM120), (false)) || \
NRFX_COND_CODE_1(NRFX_INSTANCE_PRESENT(SPIM121), (p_reg == NRF_SPIM121), (false)))

Macro for checking whether the base frequency for the specified SPIM instance is 320 MHz.

◆ NRF_SPIM_IS_64MHZ_SPIM

#define NRF_SPIM_IS_64MHZ_SPIM (   p_reg)
Value:
(NRFX_COND_CODE_1(NRFX_IS_ENABLED(NRF_CPU_FREQ_IS_64MHZ), \
(NRFX_COND_CODE_1(NRFX_INSTANCE_PRESENT(SPIM00), (p_reg == NRF_SPIM00), (false))), \
(false)))

Macro for checking whether the base frequency for the specified SPIM instance is 64 MHz.

◆ NRF_SPIM_PRESCALER_CALCULATE

#define NRF_SPIM_PRESCALER_CALCULATE (   p_reg,
  frequency 
)     ((uint32_t)(NRF_SPIM_BASE_FREQUENCY_GET(p_reg)) / (uint32_t)(frequency))

Macro for computing prescaler value for a given SPIM instance and desired frequency.

Warning
Not every combination of base and desired frequency is supported. The NRF_SPIM_FREQUENCY_STATIC_CHECK macro can be used to check if the desired frequency is supported.
Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]frequencyDesired frequency value in Hz.

◆ NRF_SPIM_PRESCALER_MAX_GET

#define NRF_SPIM_PRESCALER_MAX_GET (   p_reg)
Value:
(NRFX_FOREACH_ENABLED(SPIM, _NRF_SPIM_PRESCALER_MAX_GET, (), (), p_reg) \
SPIM_PRESCALER_DIVISOR_Max)
#define NRFX_FOREACH_ENABLED(periph_name, macro, sep, off_code,...)
Macro for resolving provided user macro for enabled instances of a driver.
Definition: nrfx_common.h:212

Macro for getting the maximum value of PRESCALER register.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.

◆ NRF_SPIM_PRESCALER_MIN_GET

#define NRF_SPIM_PRESCALER_MIN_GET (   p_reg)
Value:
(NRFX_FOREACH_ENABLED(SPIM, _NRF_SPIM_PRESCALER_MIN_GET, (), (), p_reg) \
SPIM_PRESCALER_DIVISOR_Min)

Macro for getting the minimum value of PRESCALER register.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.

Enumeration Type Documentation

◆ nrf_spim_bit_order_t

SPI bit orders.

Enumerator
NRF_SPIM_BIT_ORDER_MSB_FIRST 

Most significant bit shifted out first.

NRF_SPIM_BIT_ORDER_LSB_FIRST 

Least significant bit shifted out first.

◆ nrf_spim_csn_pol_t

SPI CSN pin polarity.

Enumerator
NRF_SPIM_CSN_POL_LOW 

Active low (idle state high).

NRF_SPIM_CSN_POL_HIGH 

Active high (idle state low).

◆ nrf_spim_event_t

SPIM events.

Enumerator
NRF_SPIM_EVENT_STARTED 

SPI transaction has started.

NRF_SPIM_EVENT_STOPPED 

SPI transaction has stopped.

NRF_SPIM_EVENT_RXSTARTED 

Receive sequence started.

NRF_SPIM_EVENT_RXBUSERROR 

Memory bus error occurred during the RX transfer.

NRF_SPIM_EVENT_RXMATCH0 

Pattern match for pattern 0 detected.

NRF_SPIM_EVENT_RXMATCH1 

Pattern match for pattern 1 detected.

NRF_SPIM_EVENT_RXMATCH2 

Pattern match for pattern 2 detected.

NRF_SPIM_EVENT_RXMATCH3 

Pattern match for pattern 3 detected.

NRF_SPIM_EVENT_TXSTARTED 

Transmit sequence started.

NRF_SPIM_EVENT_TXBUSERROR 

Memory bus error occurred during the TX transfer.

NRF_SPIM_EVENT_ENDRX 

End of RXD buffer reached.

NRF_SPIM_EVENT_ENDTX 

End of TXD buffer reached.

NRF_SPIM_EVENT_END 

End of RXD buffer and TXD buffer reached.

◆ nrf_spim_frequency_t

SPI master data rates.

Enumerator
NRF_SPIM_FREQ_125K 

125 kbps.

NRF_SPIM_FREQ_250K 

250 kbps.

NRF_SPIM_FREQ_500K 

500 kbps.

NRF_SPIM_FREQ_1M 

1 Mbps.

NRF_SPIM_FREQ_2M 

2 Mbps.

NRF_SPIM_FREQ_4M 

4 Mbps.

NRF_SPIM_FREQ_8M 

8 Mbps.

NRF_SPIM_FREQ_16M 

16 Mbps.

NRF_SPIM_FREQ_32M 

32 Mbps.

◆ nrf_spim_int_mask_t

SPIM interrupts.

Enumerator
NRF_SPIM_INT_STARTED_MASK 

Interrupt on STARTED event.

NRF_SPIM_INT_STOPPED_MASK 

Interrupt on STOPPED event.

NRF_SPIM_INT_RXREADY_MASK 

Interrupt on DMA.RX.READY event.

NRF_SPIM_INT_RXBUSERROR_MASK 

Interrupt on DMA.RX.BUSERROR event.

NRF_SPIM_INT_RXMATCH0_MASK 

Interrupt on DMA.RX.MATCH0 event.

NRF_SPIM_INT_RXMATCH1_MASK 

Interrupt on DMA.RX.MATCH1 event.

NRF_SPIM_INT_RXMATCH2_MASK 

Interrupt on DMA.RX.MATCH2 event.

NRF_SPIM_INT_RXMATCH3_MASK 

Interrupt on DMA.RX.MATCH3 event.

NRF_SPIM_INT_TXREADY_MASK 

Interrupt on DMA.TX.READY event.

NRF_SPIM_INT_TXBUSERROR_MASK 

Interrupt on DMA.TX.BUSERROR event.

NRF_SPIM_INT_ENDRX_MASK 

Interrupt on ENDRX event.

NRF_SPIM_INT_ENDTX_MASK 

Interrupt on ENDTX event.

NRF_SPIM_INT_END_MASK 

Interrupt on END event.

NRF_SPIM_ALL_INTS_MASK 

All SPIM interrupts.

◆ nrf_spim_mode_t

SPI modes.

Enumerator
NRF_SPIM_MODE_0 

SCK active high, sample on leading edge of clock.

NRF_SPIM_MODE_1 

SCK active high, sample on trailing edge of clock.

NRF_SPIM_MODE_2 

SCK active low, sample on leading edge of clock.

NRF_SPIM_MODE_3 

SCK active low, sample on trailing edge of clock.

◆ nrf_spim_short_mask_t

SPIM shortcuts.

Enumerator
NRF_SPIM_SHORT_END_START_MASK 

Shortcut between END event and START task.

NRF_SPIM_SHORT_RXMATCH0_ENABLERXMATCH1_MASK 

Shortcut between DMA.RX.MATCH0 event and DMA.RX.ENABLEMATCH1 task.

NRF_SPIM_SHORT_RXMATCH1_ENABLERXMATCH2_MASK 

Shortcut between DMA.RX.MATCH1 event and DMA.RX.ENABLEMATCH2 task.

NRF_SPIM_SHORT_RXMATCH2_ENABLERXMATCH3_MASK 

Shortcut between DMA.RX.MATCH2 event and DMA.RX.ENABLEMATCH3 task.

NRF_SPIM_SHORT_RXMATCH3_ENABLERXMATCH0_MASK 

Shortcut between DMA.RX.MATCH3 event and DMA.RX.ENABLEMATCH4 task.

NRF_SPIM_SHORT_RXMATCH0_DISABLERXMATCH0_MASK 

Shortcut between DMA.RX.MATCH0 event and DMA.RX.DISABLEMATCH0 task.

NRF_SPIM_SHORT_RXMATCH1_DISABLERXMATCH1_MASK 

Shortcut between DMA.RX.MATCH1 event and DMA.RX.DISABLEMATCH1 task.

NRF_SPIM_SHORT_RXMATCH2_DISABLERXMATCH2_MASK 

Shortcut between DMA.RX.MATCH2 event and DMA.RX.DISABLEMATCH2 task.

NRF_SPIM_SHORT_RXMATCH3_DISABLERXMATCH3_MASK 

Shortcut between DMA.RX.MATCH3 event and DMA.RX.DISABLEMATCH3 task.

NRF_SPIM_ALL_SHORTS_MASK 

All SPIM shortcuts.

◆ nrf_spim_task_t

SPIM tasks.

Enumerator
NRF_SPIM_TASK_START 

Start SPI transaction.

NRF_SPIM_TASK_STOP 

Stop SPI transaction.

NRF_SPIM_TASK_SUSPEND 

Suspend SPI transaction.

NRF_SPIM_TASK_RESUME 

Resume SPI transaction.

NRF_SPIM_TASK_ENABLERXMATCH0 

Enable SPI pattern matching functionality for pattern 0.

NRF_SPIM_TASK_ENABLERXMATCH1 

Enable SPI pattern matching functionality for pattern 1.

NRF_SPIM_TASK_ENABLERXMATCH2 

Enable SPI pattern matching functionality for pattern 2.

NRF_SPIM_TASK_ENABLERXMATCH3 

Enable SPI pattern matching functionality for pattern 3.

NRF_SPIM_TASK_DISABLERXMATCH0 

Disable SPI pattern matching functionality for pattern 0.

NRF_SPIM_TASK_DISABLERXMATCH1 

Disable SPI pattern matching functionality for pattern 1.

NRF_SPIM_TASK_DISABLERXMATCH2 

Disable SPI pattern matching functionality for pattern 2.

NRF_SPIM_TASK_DISABLERXMATCH3 

Disable SPI pattern matching functionality for pattern 3.

Function Documentation

◆ nrf_spim_configure()

NRF_STATIC_INLINE void nrf_spim_configure ( NRF_SPIM_Type *  p_reg,
nrf_spim_mode_t  spi_mode,
nrf_spim_bit_order_t  spi_bit_order 
)

Function for setting the SPI configuration.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]spi_modeSPI mode.
[in]spi_bit_orderSPI bit order.

◆ nrf_spim_csn_configure()

NRF_STATIC_INLINE void nrf_spim_csn_configure ( NRF_SPIM_Type *  p_reg,
uint32_t  pin,
nrf_spim_csn_pol_t  polarity,
uint32_t  duration 
)

Function for configuring the SPIM hardware CSN pin.

If this signal is not needed, pass the NRF_SPIM_PIN_NOT_CONNECTED value instead of its pin number.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]pinCSN pin number.
[in]polarityCSN pin polarity.
[in]durationMinimum duration between the edge of CSN and the edge of SCK and minimum duration of CSN must stay unselected between transactions. The value is specified in number of 64 MHz clock cycles (15.625 ns).

◆ nrf_spim_csn_pin_get()

NRF_STATIC_INLINE uint32_t nrf_spim_csn_pin_get ( NRF_SPIM_Type const *  p_reg)

Function for getting the CSN pin selection.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
CSN pin selection.

◆ nrf_spim_dcx_cnt_set()

NRF_STATIC_INLINE void nrf_spim_dcx_cnt_set ( NRF_SPIM_Type *  p_reg,
uint32_t  count 
)

Function for configuring the number of command bytes.

Maximum value available for dividing the transmitted bytes into command bytes and data bytes is NRF_SPIM_DCX_CNT_ALL_CMD - 1. The NRF_SPIM_DCX_CNT_ALL_CMD value passed as the count parameter causes all transmitted bytes to be marked as command bytes.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]countNumber of command bytes preceding the data bytes.

◆ nrf_spim_dcx_pin_get()

NRF_STATIC_INLINE uint32_t nrf_spim_dcx_pin_get ( NRF_SPIM_Type const *  p_reg)

Function for getting the DCX pin selection.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
DCX pin selection.

◆ nrf_spim_dcx_pin_set()

NRF_STATIC_INLINE void nrf_spim_dcx_pin_set ( NRF_SPIM_Type *  p_reg,
uint32_t  dcx_pin 
)

Function for configuring the SPIM DCX pin.

If this signal is not needed, pass the NRF_SPIM_PIN_NOT_CONNECTED value instead of its pin number.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]dcx_pinDCX pin number.

◆ nrf_spim_disable()

NRF_STATIC_INLINE void nrf_spim_disable ( NRF_SPIM_Type *  p_reg)

Function for disabling the SPIM peripheral.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.

◆ nrf_spim_enable()

NRF_STATIC_INLINE void nrf_spim_enable ( NRF_SPIM_Type *  p_reg)

Function for enabling the SPIM peripheral.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.

◆ nrf_spim_enable_check()

NRF_STATIC_INLINE bool nrf_spim_enable_check ( NRF_SPIM_Type const *  p_reg)

Function for checking if the SPIM peripheral is enabled.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Return values
trueThe SPIM is enabled.
falseThe SPIM is not enabled.

◆ nrf_spim_event_address_get()

NRF_STATIC_INLINE uint32_t nrf_spim_event_address_get ( NRF_SPIM_Type const *  p_reg,
nrf_spim_event_t  event 
)

Function for getting the address of the specified SPIM event register.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventThe specified event.
Returns
Address of the specified event register.

◆ nrf_spim_event_check()

NRF_STATIC_INLINE bool nrf_spim_event_check ( NRF_SPIM_Type const *  p_reg,
nrf_spim_event_t  event 
)

Function for retrieving the state of the SPIM event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventEvent to be checked.
Return values
trueThe event has been generated.
falseThe event has not been generated.

◆ nrf_spim_event_clear()

NRF_STATIC_INLINE void nrf_spim_event_clear ( NRF_SPIM_Type *  p_reg,
nrf_spim_event_t  event 
)

Function for clearing the specified SPIM event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventEvent to be cleared.

◆ nrf_spim_frequency_get()

NRF_STATIC_INLINE nrf_spim_frequency_t nrf_spim_frequency_get ( NRF_SPIM_Type *  p_reg)

Function for getting the SPI master data rate.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Return values
SPImaster frequency.

◆ nrf_spim_frequency_set()

NRF_STATIC_INLINE void nrf_spim_frequency_set ( NRF_SPIM_Type *  p_reg,
nrf_spim_frequency_t  frequency 
)

Function for setting the SPI master data rate.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]frequencySPI frequency.

◆ nrf_spim_iftiming_set()

NRF_STATIC_INLINE void nrf_spim_iftiming_set ( NRF_SPIM_Type *  p_reg,
uint32_t  rxdelay 
)

Function for configuring the extended SPIM interface.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]rxdelaySample delay for input serial data on MISO, specified in 64 MHz clock cycles (15.625 ns) from the sampling edge of SCK.

◆ nrf_spim_int_disable()

NRF_STATIC_INLINE void nrf_spim_int_disable ( NRF_SPIM_Type *  p_reg,
uint32_t  mask 
)

Function for disabling the specified interrupts.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]maskMask of interrupts to be disabled. Use nrf_spim_int_mask_t values for bit masking.

◆ nrf_spim_int_enable()

NRF_STATIC_INLINE void nrf_spim_int_enable ( NRF_SPIM_Type *  p_reg,
uint32_t  mask 
)

Function for enabling the specified interrupts.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]maskMask of interrupts to be enabled. Use nrf_spim_int_mask_t values for bit masking.

◆ nrf_spim_int_enable_check()

NRF_STATIC_INLINE uint32_t nrf_spim_int_enable_check ( NRF_SPIM_Type const *  p_reg,
uint32_t  mask 
)

Function for checking if the specified interrupts are enabled.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]maskMask of interrupts to be checked. Use nrf_spim_int_mask_t values for bit masking.
Returns
Mask of enabled interrupts.

◆ nrf_spim_miso_pin_get()

NRF_STATIC_INLINE uint32_t nrf_spim_miso_pin_get ( NRF_SPIM_Type const *  p_reg)

Function for getting the MISO pin selection.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
MISO pin selection.

◆ nrf_spim_mosi_pin_get()

NRF_STATIC_INLINE uint32_t nrf_spim_mosi_pin_get ( NRF_SPIM_Type const *  p_reg)

Function for getting the MOSI pin selection.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
MOSI pin selection.

◆ nrf_spim_orc_set()

NRF_STATIC_INLINE void nrf_spim_orc_set ( NRF_SPIM_Type *  p_reg,
uint8_t  orc 
)

Function for setting the over-read character.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]orcOver-read character that is clocked out in case of an over-read of the TXD buffer.

◆ nrf_spim_pins_set()

NRF_STATIC_INLINE void nrf_spim_pins_set ( NRF_SPIM_Type *  p_reg,
uint32_t  sck_pin,
uint32_t  mosi_pin,
uint32_t  miso_pin 
)

Function for configuring SPIM pins.

If a given signal is not needed, pass the NRF_SPIM_PIN_NOT_CONNECTED value instead of its pin number.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]sck_pinSCK pin number.
[in]mosi_pinMOSI pin number.
[in]miso_pinMISO pin number.

◆ nrf_spim_prescaler_get()

NRF_STATIC_INLINE uint32_t nrf_spim_prescaler_get ( NRF_SPIM_Type const *  p_reg)

Function for getting the prescaler value.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Prescaler value.

◆ nrf_spim_prescaler_set()

NRF_STATIC_INLINE void nrf_spim_prescaler_set ( NRF_SPIM_Type *  p_reg,
uint32_t  prescaler 
)

Function for setting the prescaler value.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]prescalerPrescaler value.

◆ nrf_spim_publish_clear()

NRF_STATIC_INLINE void nrf_spim_publish_clear ( NRF_SPIM_Type *  p_reg,
nrf_spim_event_t  event 
)

Function for clearing the publish configuration for a given SPIM event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventEvent for which to clear the configuration.

◆ nrf_spim_publish_set()

NRF_STATIC_INLINE void nrf_spim_publish_set ( NRF_SPIM_Type *  p_reg,
nrf_spim_event_t  event,
uint8_t  channel 
)

Function for setting the publish configuration for a given SPIM event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventEvent for which to set the configuration.
[in]channelChannel through which to publish the event.

◆ nrf_spim_rx_amount_get()

NRF_STATIC_INLINE uint32_t nrf_spim_rx_amount_get ( NRF_SPIM_Type const *  p_reg)

Function for getting number of bytes received in the last transaction.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Return values
Amountof bytes received.

◆ nrf_spim_rx_buffer_set()

NRF_STATIC_INLINE void nrf_spim_rx_buffer_set ( NRF_SPIM_Type *  p_reg,
uint8_t *  p_buffer,
size_t  length 
)

Function for setting the receive buffer.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]p_bufferPointer to the buffer for received data.
[in]lengthMaximum number of data bytes to receive.

◆ nrf_spim_rx_list_disable()

NRF_STATIC_INLINE void nrf_spim_rx_list_disable ( NRF_SPIM_Type *  p_reg)

Function for disabling the RX list feature.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.

◆ nrf_spim_rx_list_enable()

NRF_STATIC_INLINE void nrf_spim_rx_list_enable ( NRF_SPIM_Type *  p_reg)

Function for enabling the RX list feature.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.

◆ nrf_spim_rx_maxcnt_get()

NRF_STATIC_INLINE uint32_t nrf_spim_rx_maxcnt_get ( NRF_SPIM_Type const *  p_reg)

Function for getting number of bytes to be received in the next transaction.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Return values
Amountof bytes to be received.

◆ nrf_spim_rx_pattern_match_candidate_get()

NRF_STATIC_INLINE uint32_t nrf_spim_rx_pattern_match_candidate_get ( NRF_SPIM_Type const *  p_reg,
uint8_t  index 
)

Function for getting the pattern that the specified match filter is looking for.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]indexIndex of pattern match filter.
Returns
Pattern that the specified match filter is looking for.

◆ nrf_spim_rx_pattern_match_candidate_set()

NRF_STATIC_INLINE void nrf_spim_rx_pattern_match_candidate_set ( NRF_SPIM_Type *  p_reg,
uint8_t  index,
uint32_t  pattern 
)

Function for setting the pattern to be looked for by the specified match filter.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]indexIndex of pattern match filter.
[in]patternPattern to be looked for. Match will trigger the corresponding event, if enabled.

◆ nrf_spim_rx_pattern_match_enable_check()

NRF_STATIC_INLINE bool nrf_spim_rx_pattern_match_enable_check ( NRF_SPIM_Type const *  p_reg,
uint8_t  index 
)

Function for checking if the specified pattern match filter is enabled.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]indexIndex of pattern match filter.
Return values
truePattern match filter is enabled.
falsePattern match filter is disabled.

◆ nrf_spim_rx_pattern_match_enable_set()

NRF_STATIC_INLINE void nrf_spim_rx_pattern_match_enable_set ( NRF_SPIM_Type *  p_reg,
uint8_t  index,
bool  enable 
)

Function for enabling individual pattern match filters.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]indexIndex of pattern match filter.
[in]enableTrue if pattern match filter is to be enabled, false otherwise.

◆ nrf_spim_rx_pattern_match_one_shot_check()

NRF_STATIC_INLINE bool nrf_spim_rx_pattern_match_one_shot_check ( NRF_SPIM_Type const *  p_reg,
uint8_t  index 
)

Function for checking if specified pattern match filter is configured as one-shot.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]indexIndex of pattern match filter.
Return values
truePattern match filter is configured as one-shot.
falsePattern match filter is configured as continuous.

◆ nrf_spim_rx_pattern_match_one_shot_disable()

NRF_STATIC_INLINE void nrf_spim_rx_pattern_match_one_shot_disable ( NRF_SPIM_Type *  p_reg,
uint8_t  index 
)

Function for disabling one-shot operation for the specified match filter.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]indexIndex of pattern match filter.

◆ nrf_spim_rx_pattern_match_one_shot_enable()

NRF_STATIC_INLINE void nrf_spim_rx_pattern_match_one_shot_enable ( NRF_SPIM_Type *  p_reg,
uint8_t  index 
)

Function for enabling one-shot operation for the specified match filter.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]indexIndex of pattern match filter.

◆ nrf_spim_rx_terminate_on_bus_error_check()

NRF_STATIC_INLINE bool nrf_spim_rx_terminate_on_bus_error_check ( NRF_SPIM_Type const *  p_reg)

Function for checking if RX transaction termination after detecting the BUSERROR event is enabled.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Return values
trueRX transaction termination after detecting a BUSERROR event is enabled.
falseRX transaction termination after detecting a BUSERROR event is disabled.

◆ nrf_spim_rx_terminate_on_bus_error_disable()

NRF_STATIC_INLINE void nrf_spim_rx_terminate_on_bus_error_disable ( NRF_SPIM_Type *  p_reg)

Function for disabling the termination of the RX transaction after detecting the BUSERROR event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.

◆ nrf_spim_rx_terminate_on_bus_error_enable()

NRF_STATIC_INLINE void nrf_spim_rx_terminate_on_bus_error_enable ( NRF_SPIM_Type *  p_reg)

Function for enabling the termination of the RX transaction after detecting the BUSERROR event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.

◆ nrf_spim_sck_pin_get()

NRF_STATIC_INLINE uint32_t nrf_spim_sck_pin_get ( NRF_SPIM_Type const *  p_reg)

Function for getting the SCK pin selection.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
SCK pin selection.

◆ nrf_spim_shorts_disable()

NRF_STATIC_INLINE void nrf_spim_shorts_disable ( NRF_SPIM_Type *  p_reg,
uint32_t  mask 
)

Function for disabling the specified shortcuts.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]maskShortcuts to be disabled.

◆ nrf_spim_shorts_enable()

NRF_STATIC_INLINE void nrf_spim_shorts_enable ( NRF_SPIM_Type *  p_reg,
uint32_t  mask 
)

Function for enabling the specified shortcuts.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]maskShortcuts to be enabled.

◆ nrf_spim_shorts_get()

NRF_STATIC_INLINE uint32_t nrf_spim_shorts_get ( NRF_SPIM_Type const *  p_reg)

Function for getting the shortcut setting.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Current shortcut configuration.

◆ nrf_spim_stallstat_rx_clear()

NRF_STATIC_INLINE void nrf_spim_stallstat_rx_clear ( NRF_SPIM_Type *  p_reg)

Function for clearing stall status for RX EasyDMA RAM accesses.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.

◆ nrf_spim_stallstat_rx_get()

NRF_STATIC_INLINE bool nrf_spim_stallstat_rx_get ( NRF_SPIM_Type const *  p_reg)

Function for getting stall status for RX EasyDMA RAM accesses.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Stall status of RX EasyDMA RAM accesses.

◆ nrf_spim_stallstat_tx_clear()

NRF_STATIC_INLINE void nrf_spim_stallstat_tx_clear ( NRF_SPIM_Type *  p_reg)

Function for clearing stall status for TX EasyDMA RAM accesses.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.

◆ nrf_spim_stallstat_tx_get()

NRF_STATIC_INLINE bool nrf_spim_stallstat_tx_get ( NRF_SPIM_Type const *  p_reg)

Function for getting stall status for TX EasyDMA RAM accesses.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Stall status of TX EasyDMA RAM accesses.

◆ nrf_spim_subscribe_clear()

NRF_STATIC_INLINE void nrf_spim_subscribe_clear ( NRF_SPIM_Type *  p_reg,
nrf_spim_task_t  task 
)

Function for clearing the subscribe configuration for a given SPIM task.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]taskTask for which to clear the configuration.

◆ nrf_spim_subscribe_set()

NRF_STATIC_INLINE void nrf_spim_subscribe_set ( NRF_SPIM_Type *  p_reg,
nrf_spim_task_t  task,
uint8_t  channel 
)

Function for setting the subscribe configuration for a given SPIM task.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]taskTask for which to set the configuration.
[in]channelChannel through which to subscribe events.

◆ nrf_spim_task_address_get()

NRF_STATIC_INLINE uint32_t nrf_spim_task_address_get ( NRF_SPIM_Type const *  p_reg,
nrf_spim_task_t  task 
)

Function for getting the address of the specified SPIM task register.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]taskThe specified task.
Returns
Address of the specified task register.

◆ nrf_spim_task_trigger()

NRF_STATIC_INLINE void nrf_spim_task_trigger ( NRF_SPIM_Type *  p_reg,
nrf_spim_task_t  task 
)

Function for activating the specified SPIM task.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]taskTask to be activated.

◆ nrf_spim_tx_amount_get()

NRF_STATIC_INLINE uint32_t nrf_spim_tx_amount_get ( NRF_SPIM_Type const *  p_reg)

Function for getting number of bytes transmitted in the last transaction.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Return values
Amountof bytes transmitted.

◆ nrf_spim_tx_buffer_set()

NRF_STATIC_INLINE void nrf_spim_tx_buffer_set ( NRF_SPIM_Type *  p_reg,
uint8_t const *  p_buffer,
size_t  length 
)

Function for setting the transmit buffer.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]p_bufferPointer to the buffer with data to send.
[in]lengthMaximum number of data bytes to transmit.

◆ nrf_spim_tx_list_disable()

NRF_STATIC_INLINE void nrf_spim_tx_list_disable ( NRF_SPIM_Type *  p_reg)

Function for disabling the TX list feature.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.

◆ nrf_spim_tx_list_enable()

NRF_STATIC_INLINE void nrf_spim_tx_list_enable ( NRF_SPIM_Type *  p_reg)

Function for enabling the TX list feature.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.

◆ nrf_spim_tx_maxcnt_get()

NRF_STATIC_INLINE uint32_t nrf_spim_tx_maxcnt_get ( NRF_SPIM_Type const *  p_reg)

Function for getting number of bytes to be transmitted in the next transaction.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Return values
Amountof bytes to be transmitted.

◆ nrf_spim_tx_terminate_on_bus_error_check()

NRF_STATIC_INLINE bool nrf_spim_tx_terminate_on_bus_error_check ( NRF_SPIM_Type const *  p_reg)

Function for checking if TX transaction termination after detecting the BUSERROR event is enabled.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Return values
trueTX transaction termination after detecting a BUSERROR event is enabled.
falseTX transaction termination after detecting a BUSERROR event is disabled.

◆ nrf_spim_tx_terminate_on_bus_error_disable()

NRF_STATIC_INLINE void nrf_spim_tx_terminate_on_bus_error_disable ( NRF_SPIM_Type *  p_reg)

Function for disabling the termination of the TX transaction after detecting the BUSERROR event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.

◆ nrf_spim_tx_terminate_on_bus_error_enable()

NRF_STATIC_INLINE void nrf_spim_tx_terminate_on_bus_error_enable ( NRF_SPIM_Type *  p_reg)

Function for enabling the termination of the TX transaction after detecting the BUSERROR event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.

Documentation feedback | Developer Zone | Subscribe | Updated