nRF5 SDK v11.0.0
Typedefs | Enumerations | Functions

nRF52 only: Hardware access layer for Two Wire Interface Slave with EasyDMA (TWIS) peripheral. More...

Typedefs

typedef uint8_t nrf_twis_amount_t
 Variable type to hold amount of data for EasyDMA. More...
 
typedef uint8_t nrf_twis_address_t
 Smallest variable type to hold TWI address. More...
 

Enumerations

enum  nrf_twis_task_t {
  NRF_TWIS_TASK_STOP = offsetof(NRF_TWIS_Type, TASKS_STOP),
  NRF_TWIS_TASK_SUSPEND = offsetof(NRF_TWIS_Type, TASKS_SUSPEND),
  NRF_TWIS_TASK_RESUME = offsetof(NRF_TWIS_Type, TASKS_RESUME),
  NRF_TWIS_TASK_PREPARERX = offsetof(NRF_TWIS_Type, TASKS_PREPARERX),
  NRF_TWIS_TASK_PREPARETX = offsetof(NRF_TWIS_Type, TASKS_PREPARETX)
}
 TWIS tasks. More...
 
enum  nrf_twis_event_t {
  NRF_TWIS_EVENT_STOPPED = offsetof(NRF_TWIS_Type, EVENTS_STOPPED),
  NRF_TWIS_EVENT_ERROR = offsetof(NRF_TWIS_Type, EVENTS_ERROR),
  NRF_TWIS_EVENT_RXSTARTED = offsetof(NRF_TWIS_Type, EVENTS_RXSTARTED),
  NRF_TWIS_EVENT_TXSTARTED = offsetof(NRF_TWIS_Type, EVENTS_TXSTARTED),
  NRF_TWIS_EVENT_WRITE = offsetof(NRF_TWIS_Type, EVENTS_WRITE),
  NRF_TWIS_EVENT_READ = offsetof(NRF_TWIS_Type, EVENTS_READ)
}
 TWIS events. More...
 
enum  nrf_twis_short_mask_t {
  NRF_TWIS_SHORT_WRITE_SUSPEND_MASK = TWIS_SHORTS_WRITE_SUSPEND_Msk,
  NRF_TWIS_SHORT_READ_SUSPEND_MASK = TWIS_SHORTS_READ_SUSPEND_Msk
}
 TWIS shortcuts. More...
 
enum  nrf_twis_int_mask_t {
  NRF_TWIS_INT_STOPPED_MASK = TWIS_INTEN_STOPPED_Msk,
  NRF_TWIS_INT_ERROR_MASK = TWIS_INTEN_ERROR_Msk,
  NRF_TWIS_INT_RXSTARTED_MASK = TWIS_INTEN_RXSTARTED_Msk,
  NRF_TWIS_INT_TXSTARTED_MASK = TWIS_INTEN_TXSTARTED_Msk,
  NRF_TWIS_INT_WRITE_MASK = TWIS_INTEN_WRITE_Msk,
  NRF_TWIS_INT_READ_MASK = TWIS_INTEN_READ_Msk
}
 TWIS interrupts. More...
 
enum  nrf_twis_error_t {
  NRF_TWIS_ERROR_OVERFLOW = TWIS_ERRORSRC_OVERFLOW_Msk,
  NRF_TWIS_ERROR_DATA_NACK = TWIS_ERRORSRC_DNACK_Msk,
  NRF_TWIS_ERROR_OVERREAD = TWIS_ERRORSRC_OVERREAD_Msk
}
 TWIS error source. More...
 
enum  nrf_twis_config_addr_mask_t {
  NRF_TWIS_CONFIG_ADDRESS0_MASK = TWIS_CONFIG_ADDRESS0_Msk,
  NRF_TWIS_CONFIG_ADDRESS1_MASK = TWIS_CONFIG_ADDRESS1_Msk,
  NRF_TWIS_CONFIG_ADDRESS01_MASK = TWIS_CONFIG_ADDRESS0_Msk | TWIS_CONFIG_ADDRESS1_Msk
}
 TWIS address matching configuration. More...
 

Functions

__STATIC_INLINE void nrf_twis_task_trigger (NRF_TWIS_Type *const p_twis, nrf_twis_task_t task)
 Function for activating a specific TWIS task. More...
 
__STATIC_INLINE uint32_t nrf_twis_task_address_get (NRF_TWIS_Type const *const p_twis, nrf_twis_task_t task)
 Function for returning the address of a specific TWIS task register. More...
 
__STATIC_INLINE void nrf_twis_event_clear (NRF_TWIS_Type *const p_twis, nrf_twis_event_t event)
 Function for clearing a specific event. More...
 
__STATIC_INLINE bool nrf_twis_event_check (NRF_TWIS_Type const *const p_twis, nrf_twis_event_t event)
 Function for returning the state of a specific event. More...
 
__STATIC_INLINE bool nrf_twis_event_get_and_clear (NRF_TWIS_Type *const p_twis, nrf_twis_event_t event)
 Function for getting and clearing the state of specific event. More...
 
__STATIC_INLINE uint32_t nrf_twis_event_address_get (NRF_TWIS_Type const *const p_twis, nrf_twis_event_t event)
 Function for returning the address of a specific TWIS event register. More...
 
__STATIC_INLINE void nrf_twis_shorts_enable (NRF_TWIS_Type *const p_twis, uint32_t short_mask)
 Function for setting a shortcut. More...
 
__STATIC_INLINE void nrf_twis_shorts_disable (NRF_TWIS_Type *const p_twis, uint32_t short_mask)
 Function for clearing shortcuts. More...
 
__STATIC_INLINE uint32_t nrf_twis_shorts_get (NRF_TWIS_Type *const p_twis)
 Get the shorts mask. More...
 
__STATIC_INLINE void nrf_twis_int_enable (NRF_TWIS_Type *const p_twis, uint32_t int_mask)
 Function for enabling selected interrupts. More...
 
__STATIC_INLINE bool nrf_twis_int_enable_check (NRF_TWIS_Type const *const p_twis, uint32_t int_mask)
 Function for retrieving the state of selected interrupts. More...
 
__STATIC_INLINE void nrf_twis_int_disable (NRF_TWIS_Type *const p_twis, uint32_t int_mask)
 Function for disabling selected interrupts. More...
 
__STATIC_INLINE uint32_t nrf_twis_error_source_get_and_clear (NRF_TWIS_Type *const p_twis)
 Function for retrieving and clearing the TWIS error source. More...
 
__STATIC_INLINE uint_fast8_t nrf_twis_match_get (NRF_TWIS_Type const *p_twis)
 Get information which of addresses matched. More...
 
__STATIC_INLINE void nrf_twis_enable (NRF_TWIS_Type *const p_twis)
 Function for enabling TWIS. More...
 
__STATIC_INLINE void nrf_twis_disable (NRF_TWIS_Type *const p_twis)
 Function for disabling TWIS. More...
 
__STATIC_INLINE void nrf_twis_pins_set (NRF_TWIS_Type *const p_twis, uint32_t scl, uint32_t sda)
 Function for configuring TWIS pins. More...
 
__STATIC_INLINE void nrf_twis_rx_buffer_set (NRF_TWIS_Type *const p_twis, uint8_t *p_buf, nrf_twis_amount_t length)
 Function for setting the receive buffer. More...
 
__STATIC_INLINE void nrf_twis_rx_prepare (NRF_TWIS_Type *const p_twis, uint8_t *p_buf, nrf_twis_amount_t length)
 Function that prepares TWIS for receiving. More...
 
__STATIC_INLINE nrf_twis_amount_t nrf_twis_rx_amount_get (NRF_TWIS_Type const *const p_twis)
 Function for getting number of bytes received in the last transaction. More...
 
__STATIC_INLINE void nrf_twis_tx_buffer_set (NRF_TWIS_Type *const p_twis, uint8_t const *p_buf, nrf_twis_amount_t length)
 Function for setting the transmit buffer. More...
 
__STATIC_INLINE void nrf_twis_tx_prepare (NRF_TWIS_Type *const p_twis, uint8_t const *p_buf, nrf_twis_amount_t length)
 Function that prepares TWIS for transmitting. More...
 
__STATIC_INLINE nrf_twis_amount_t nrf_twis_tx_amount_get (NRF_TWIS_Type const *const p_twis)
 Function for getting number of bytes transmitted in the last transaction. More...
 
__STATIC_INLINE void nrf_twis_address_set (NRF_TWIS_Type *const p_twis, uint_fast8_t n, nrf_twis_address_t addr)
 Function for setting slave address. More...
 
__STATIC_INLINE nrf_twis_address_t nrf_twis_address_get (NRF_TWIS_Type const *const p_twis, uint_fast8_t n)
 Function for retrieving configured slave address. More...
 
__STATIC_INLINE void nrf_twis_config_address_set (NRF_TWIS_Type *const p_twis, nrf_twis_config_addr_mask_t addr_mask)
 Function for setting the device address configuration. More...
 
__STATIC_INLINE
nrf_twis_config_addr_mask_t 
nrf_twis_config_address_get (NRF_TWIS_Type const *const p_twis)
 Function for retrieving the device address configuration. More...
 
__STATIC_INLINE void nrf_twis_orc_set (NRF_TWIS_Type *const p_twis, uint8_t orc)
 Function for setting the over-read character. More...
 
__STATIC_INLINE uint8_t nrf_twis_orc_get (NRF_TWIS_Type const *const p_twis)
 Function for setting the over-read character. More...
 

Detailed Description

nRF52 only: Hardware access layer for Two Wire Interface Slave with EasyDMA (TWIS) peripheral.

Typedef Documentation

typedef uint8_t nrf_twis_address_t

Smallest variable type to hold TWI address.

Variable of the minimum size that can hold single TWI address.

Note
Defined to make it simple to change if new TWI would support for example 10 bit addressing mode.
typedef uint8_t nrf_twis_amount_t

Variable type to hold amount of data for EasyDMA.

Variable of the minimum size that can hold the amount of data to transfer.

Note
Defined to make it simple to change if EasyDMA would be updated to support more data in the future devices to.

Enumeration Type Documentation

TWIS address matching configuration.

Enumerator
NRF_TWIS_CONFIG_ADDRESS0_MASK 

Enable or disable address matching on ADDRESS[0]

NRF_TWIS_CONFIG_ADDRESS1_MASK 

Enable or disable address matching on ADDRESS[1]

NRF_TWIS_CONFIG_ADDRESS01_MASK 

Enable both address matching

TWIS error source.

Enumerator
NRF_TWIS_ERROR_OVERFLOW 

RX buffer overflow detected, and prevented

NRF_TWIS_ERROR_DATA_NACK 

NACK sent after receiving a data byte

NRF_TWIS_ERROR_OVERREAD 

TX buffer over-read detected, and prevented

TWIS events.

Enumerator
NRF_TWIS_EVENT_STOPPED 

TWIS stopped

NRF_TWIS_EVENT_ERROR 

TWIS error

NRF_TWIS_EVENT_RXSTARTED 

Receive sequence started

NRF_TWIS_EVENT_TXSTARTED 

Transmit sequence started

NRF_TWIS_EVENT_WRITE 

Write command received

NRF_TWIS_EVENT_READ 

Read command received

TWIS interrupts.

Enumerator
NRF_TWIS_INT_STOPPED_MASK 

Interrupt on STOPPED event

NRF_TWIS_INT_ERROR_MASK 

Interrupt on ERROR event

NRF_TWIS_INT_RXSTARTED_MASK 

Interrupt on RXSTARTED event

NRF_TWIS_INT_TXSTARTED_MASK 

Interrupt on TXSTARTED event

NRF_TWIS_INT_WRITE_MASK 

Interrupt on WRITE event

NRF_TWIS_INT_READ_MASK 

Interrupt on READ event

TWIS shortcuts.

Enumerator
NRF_TWIS_SHORT_WRITE_SUSPEND_MASK 

Shortcut between WRITE event and SUSPEND task

NRF_TWIS_SHORT_READ_SUSPEND_MASK 

Shortcut between READ event and SUSPEND task

TWIS tasks.

Enumerator
NRF_TWIS_TASK_STOP 

Stop TWIS transaction

NRF_TWIS_TASK_SUSPEND 

Suspend TWIS transaction

NRF_TWIS_TASK_RESUME 

Resume TWIS transaction

NRF_TWIS_TASK_PREPARERX 

Prepare the TWIS slave to respond to a write command

NRF_TWIS_TASK_PREPARETX 

Prepare the TWIS slave to respond to a read command

Function Documentation

__STATIC_INLINE nrf_twis_address_t nrf_twis_address_get ( NRF_TWIS_Type const *const  p_twis,
uint_fast8_t  n 
)

Function for retrieving configured slave address.

Function gets the selected address for this TWI interface.

Parameters
[in]p_twisTWIS instance.
nIndex of address to get
__STATIC_INLINE void nrf_twis_address_set ( NRF_TWIS_Type *const  p_twis,
uint_fast8_t  n,
nrf_twis_address_t  addr 
)

Function for setting slave address.

Function sets the selected address for this TWI interface.

Parameters
[in]p_twisTWIS instance.
nIndex of address to set
addrAddres to set
See Also
nrf_twis_config_address_set
nrf_twis_config_address_get
__STATIC_INLINE nrf_twis_config_addr_mask_t nrf_twis_config_address_get ( NRF_TWIS_Type const *const  p_twis)

Function for retrieving the device address configuration.

Parameters
[in]p_twisTWIS instance.
Returns
Mask of address indexes of what device should answer to.
__STATIC_INLINE void nrf_twis_config_address_set ( NRF_TWIS_Type *const  p_twis,
nrf_twis_config_addr_mask_t  addr_mask 
)

Function for setting the device address configuration.

Parameters
[in]p_twisTWIS instance.
addr_maskMask of address indexes of what device should answer to.
See Also
nrf_twis_address_set
__STATIC_INLINE void nrf_twis_disable ( NRF_TWIS_Type *const  p_twis)

Function for disabling TWIS.

Parameters
[in]p_twisTWIS instance.
__STATIC_INLINE void nrf_twis_enable ( NRF_TWIS_Type *const  p_twis)

Function for enabling TWIS.

Parameters
[in]p_twisTWIS instance.
__STATIC_INLINE uint32_t nrf_twis_error_source_get_and_clear ( NRF_TWIS_Type *const  p_twis)

Function for retrieving and clearing the TWIS error source.

Attention
Error sources are cleared after read.
Parameters
[in]p_twisTWIS instance
Returns
Error source mask with values from nrf_twis_error_t.
__STATIC_INLINE uint32_t nrf_twis_event_address_get ( NRF_TWIS_Type const *const  p_twis,
nrf_twis_event_t  event 
)

Function for returning the address of a specific TWIS event register.

Parameters
[in]p_twisTWIS instance.
eventEvent.
Returns
Address.
__STATIC_INLINE bool nrf_twis_event_check ( NRF_TWIS_Type const *const  p_twis,
nrf_twis_event_t  event 
)

Function for returning the state of a specific event.

Parameters
[in]p_twisTWIS instance.
eventEvent.
Return values
trueIf the event is set.
falseIf the event is not set.
__STATIC_INLINE void nrf_twis_event_clear ( NRF_TWIS_Type *const  p_twis,
nrf_twis_event_t  event 
)

Function for clearing a specific event.

Parameters
[in]p_twisTWIS instance.
eventEvent.
__STATIC_INLINE bool nrf_twis_event_get_and_clear ( NRF_TWIS_Type *const  p_twis,
nrf_twis_event_t  event 
)

Function for getting and clearing the state of specific event.

This function checks the state of the event and clears it.

Parameters
[in,out]p_twisTWIS instance
eventEvent.
Return values
trueIf the event was set.
falseIf the event was not set.
__STATIC_INLINE void nrf_twis_int_disable ( NRF_TWIS_Type *const  p_twis,
uint32_t  int_mask 
)

Function for disabling selected interrupts.

Parameters
[in]p_twisTWIS instance.
int_maskInterrupts mask.
__STATIC_INLINE void nrf_twis_int_enable ( NRF_TWIS_Type *const  p_twis,
uint32_t  int_mask 
)

Function for enabling selected interrupts.

Parameters
[in]p_twisTWIS instance.
int_maskInterrupts mask.
__STATIC_INLINE bool nrf_twis_int_enable_check ( NRF_TWIS_Type const *const  p_twis,
uint32_t  int_mask 
)

Function for retrieving the state of selected interrupts.

Parameters
[in]p_twisTWIS instance.
int_maskInterrupts mask.
Return values
trueIf any of selected interrupts is enabled.
falseIf none of selected interrupts is enabled.
__STATIC_INLINE uint_fast8_t nrf_twis_match_get ( NRF_TWIS_Type const *  p_twis)

Get information which of addresses matched.

Function returns index in the address table that points to the address that already matched.

Parameters
[in]p_twisTWIS instance
Returns
Index of matched address
__STATIC_INLINE uint8_t nrf_twis_orc_get ( NRF_TWIS_Type const *const  p_twis)

Function for setting the over-read character.

Parameters
[in]p_twisTWIS instance.
Returns
Over-read character configured for selected instance.
__STATIC_INLINE void nrf_twis_orc_set ( NRF_TWIS_Type *const  p_twis,
uint8_t  orc 
)

Function for setting the over-read character.

Parameters
[in]p_twisTWIS instance.
[in]orcOver-read character. Character clocked out in case of over-read of the TXD buffer.
__STATIC_INLINE void nrf_twis_pins_set ( NRF_TWIS_Type *const  p_twis,
uint32_t  scl,
uint32_t  sda 
)

Function for configuring TWIS pins.

Parameters
[in]p_twisTWIS instance.
sclSCL pin number.
sdaSDA pin number.
__STATIC_INLINE nrf_twis_amount_t nrf_twis_rx_amount_get ( NRF_TWIS_Type const *const  p_twis)

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

Parameters
[in]p_twisTWIS instance.
Returns
Amount of bytes received.
__STATIC_INLINE void nrf_twis_rx_buffer_set ( NRF_TWIS_Type *const  p_twis,
uint8_t *  p_buf,
nrf_twis_amount_t  length 
)

Function for setting the receive buffer.

Parameters
[in]p_twisTWIS instance.
p_bufPointer to the buffer for received data.
lengthMaximum number of data bytes to receive.
__STATIC_INLINE void nrf_twis_rx_prepare ( NRF_TWIS_Type *const  p_twis,
uint8_t *  p_buf,
nrf_twis_amount_t  length 
)

Function that prepares TWIS for receiving.

This function sets receive buffer and then sets NRF_TWIS_TASK_PREPARERX task.

Parameters
[in]p_twisTWIS instance.
p_bufPointer to the buffer for received data.
lengthMaximum number of data bytes to receive.
__STATIC_INLINE void nrf_twis_shorts_disable ( NRF_TWIS_Type *const  p_twis,
uint32_t  short_mask 
)

Function for clearing shortcuts.

Parameters
[in]p_twisTWIS instance.
short_maskShortcuts mask.
__STATIC_INLINE void nrf_twis_shorts_enable ( NRF_TWIS_Type *const  p_twis,
uint32_t  short_mask 
)

Function for setting a shortcut.

Parameters
[in]p_twisTWIS instance.
short_maskShortcuts mask.
__STATIC_INLINE uint32_t nrf_twis_shorts_get ( NRF_TWIS_Type *const  p_twis)

Get the shorts mask.

Function returns shorts register.

Parameters
[in]p_twisTWIS instance.
Returns
Flags of currently enabled shortcuts
__STATIC_INLINE uint32_t nrf_twis_task_address_get ( NRF_TWIS_Type const *const  p_twis,
nrf_twis_task_t  task 
)

Function for returning the address of a specific TWIS task register.

Parameters
[in]p_twisTWIS instance.
taskTask.
Returns
Task address.
__STATIC_INLINE void nrf_twis_task_trigger ( NRF_TWIS_Type *const  p_twis,
nrf_twis_task_t  task 
)

Function for activating a specific TWIS task.

Parameters
[in]p_twisTWIS instance.
taskTask.
__STATIC_INLINE nrf_twis_amount_t nrf_twis_tx_amount_get ( NRF_TWIS_Type const *const  p_twis)

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

Parameters
[in]p_twisTWIS instance.
Returns
Amount of bytes transmitted.
__STATIC_INLINE void nrf_twis_tx_buffer_set ( NRF_TWIS_Type *const  p_twis,
uint8_t const *  p_buf,
nrf_twis_amount_t  length 
)

Function for setting the transmit buffer.

Parameters
[in]p_twisTWIS instance.
p_bufPointer to the buffer with data to send.
lengthMaximum number of data bytes to transmit.
__STATIC_INLINE void nrf_twis_tx_prepare ( NRF_TWIS_Type *const  p_twis,
uint8_t const *  p_buf,
nrf_twis_amount_t  length 
)

Function that prepares TWIS for transmitting.

This function sets transmit buffer and then sets NRF_TWIS_TASK_PREPARETX task.

Parameters
[in]p_twisTWIS instance.
p_bufPointer to the buffer with data to send.
lengthMaximum number of data bytes to transmit.

Documentation feedback | Developer Zone | Updated