nRF5 SDK v13.0.0
Typedefs | Enumerations | Functions

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_reg, 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_reg, 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_reg, 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_reg, 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_reg, 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_reg, 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_reg, uint32_t short_mask)
 Function for setting a shortcut. More...
 
__STATIC_INLINE void nrf_twis_shorts_disable (NRF_TWIS_Type *const p_reg, uint32_t short_mask)
 Function for clearing shortcuts. More...
 
__STATIC_INLINE uint32_t nrf_twis_shorts_get (NRF_TWIS_Type *const p_reg)
 Get the shorts mask. More...
 
__STATIC_INLINE void nrf_twis_int_enable (NRF_TWIS_Type *const p_reg, uint32_t int_mask)
 Function for enabling selected interrupts. More...
 
__STATIC_INLINE bool nrf_twis_int_enable_check (NRF_TWIS_Type const *const p_reg, 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_reg, 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_reg)
 Function for retrieving and clearing the TWIS error source. More...
 
__STATIC_INLINE uint_fast8_t nrf_twis_match_get (NRF_TWIS_Type const *p_reg)
 Get information which of addresses matched. More...
 
__STATIC_INLINE void nrf_twis_enable (NRF_TWIS_Type *const p_reg)
 Function for enabling TWIS. More...
 
__STATIC_INLINE void nrf_twis_disable (NRF_TWIS_Type *const p_reg)
 Function for disabling TWIS. More...
 
__STATIC_INLINE void nrf_twis_pins_set (NRF_TWIS_Type *const p_reg, 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_reg, 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_reg, 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_reg)
 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_reg, 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_reg, 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_reg)
 Function for getting number of bytes transmitted in the last transaction. More...
 
__STATIC_INLINE void nrf_twis_address_set (NRF_TWIS_Type *const p_reg, 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_reg, uint_fast8_t n)
 Function for retrieving configured slave address. More...
 
__STATIC_INLINE void nrf_twis_config_address_set (NRF_TWIS_Type *const p_reg, 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_reg)
 Function for retrieving the device address configuration. More...
 
__STATIC_INLINE void nrf_twis_orc_set (NRF_TWIS_Type *const p_reg, 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_reg)
 Function for setting the over-read character. More...
 

Detailed Description

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_reg,
uint_fast8_t  n 
)

Function for retrieving configured slave address.

Function gets the selected address for this TWI interface.

Parameters
[in]p_regPointer to the peripheral registers structure.
nIndex of address to get
__STATIC_INLINE void nrf_twis_address_set ( NRF_TWIS_Type *const  p_reg,
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_regPointer to the peripheral registers structure.
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_reg)

Function for retrieving the device address configuration.

Parameters
[in]p_regPointer to the peripheral registers structure.
Returns
Mask of address indexes of what device should answer to.
__STATIC_INLINE void nrf_twis_config_address_set ( NRF_TWIS_Type *const  p_reg,
nrf_twis_config_addr_mask_t  addr_mask 
)

Function for setting the device address configuration.

Parameters
[in]p_regPointer to the peripheral registers structure.
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_reg)

Function for disabling TWIS.

Parameters
[in]p_regPointer to the peripheral registers structure.
__STATIC_INLINE void nrf_twis_enable ( NRF_TWIS_Type *const  p_reg)

Function for enabling TWIS.

Parameters
[in]p_regPointer to the peripheral registers structure.
__STATIC_INLINE uint32_t nrf_twis_error_source_get_and_clear ( NRF_TWIS_Type *const  p_reg)

Function for retrieving and clearing the TWIS error source.

Attention
Error sources are cleared after read.
Parameters
[in]p_regPointer to the peripheral registers structure.
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_reg,
nrf_twis_event_t  event 
)

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

Parameters
[in]p_regPointer to the peripheral registers structure.
eventEvent.
Returns
Address.
__STATIC_INLINE bool nrf_twis_event_check ( NRF_TWIS_Type const *const  p_reg,
nrf_twis_event_t  event 
)

Function for returning the state of a specific event.

Parameters
[in]p_regPointer to the peripheral registers structure.
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_reg,
nrf_twis_event_t  event 
)

Function for clearing a specific event.

Parameters
[in]p_regPointer to the peripheral registers structure.
eventEvent.
__STATIC_INLINE bool nrf_twis_event_get_and_clear ( NRF_TWIS_Type *const  p_reg,
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_regPointer to the peripheral registers structure.
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_reg,
uint32_t  int_mask 
)

Function for disabling selected interrupts.

Parameters
[in]p_regPointer to the peripheral registers structure.
int_maskInterrupts mask.
__STATIC_INLINE void nrf_twis_int_enable ( NRF_TWIS_Type *const  p_reg,
uint32_t  int_mask 
)

Function for enabling selected interrupts.

Parameters
[in]p_regPointer to the peripheral registers structure.
int_maskInterrupts mask.
__STATIC_INLINE bool nrf_twis_int_enable_check ( NRF_TWIS_Type const *const  p_reg,
uint32_t  int_mask 
)

Function for retrieving the state of selected interrupts.

Parameters
[in]p_regPointer to the peripheral registers structure.
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_reg)

Get information which of addresses matched.

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

Parameters
[in]p_regPointer to the peripheral registers structure.
Returns
Index of matched address
__STATIC_INLINE uint8_t nrf_twis_orc_get ( NRF_TWIS_Type const *const  p_reg)

Function for setting the over-read character.

Parameters
[in]p_regPointer to the peripheral registers structure.
Returns
Over-read character configured for selected instance.
__STATIC_INLINE void nrf_twis_orc_set ( NRF_TWIS_Type *const  p_reg,
uint8_t  orc 
)

Function for setting the over-read character.

Parameters
[in]p_regPointer to the peripheral registers structure.
[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_reg,
uint32_t  scl,
uint32_t  sda 
)

Function for configuring TWIS pins.

Parameters
[in]p_regPointer to the peripheral registers structure.
sclSCL pin number.
sdaSDA pin number.
__STATIC_INLINE nrf_twis_amount_t nrf_twis_rx_amount_get ( NRF_TWIS_Type const *const  p_reg)

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

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

Function for setting the receive buffer.

Parameters
[in]p_regPointer to the peripheral registers structure.
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_reg,
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_regPointer to the peripheral registers structure.
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_reg,
uint32_t  short_mask 
)

Function for clearing shortcuts.

Parameters
[in]p_regPointer to the peripheral registers structure.
short_maskShortcuts mask.
__STATIC_INLINE void nrf_twis_shorts_enable ( NRF_TWIS_Type *const  p_reg,
uint32_t  short_mask 
)

Function for setting a shortcut.

Parameters
[in]p_regPointer to the peripheral registers structure.
short_maskShortcuts mask.
__STATIC_INLINE uint32_t nrf_twis_shorts_get ( NRF_TWIS_Type *const  p_reg)

Get the shorts mask.

Function returns shorts register.

Parameters
[in]p_regPointer to the peripheral registers structure.
Returns
Flags of currently enabled shortcuts
__STATIC_INLINE uint32_t nrf_twis_task_address_get ( NRF_TWIS_Type const *const  p_reg,
nrf_twis_task_t  task 
)

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

Parameters
[in]p_regPointer to the peripheral registers structure.
taskTask.
Returns
Task address.
__STATIC_INLINE void nrf_twis_task_trigger ( NRF_TWIS_Type *const  p_reg,
nrf_twis_task_t  task 
)

Function for activating a specific TWIS task.

Parameters
[in]p_regPointer to the peripheral registers structure.
taskTask.
__STATIC_INLINE nrf_twis_amount_t nrf_twis_tx_amount_get ( NRF_TWIS_Type const *const  p_reg)

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

Parameters
[in]p_regPointer to the peripheral registers structure.
Returns
Amount of bytes transmitted.
__STATIC_INLINE void nrf_twis_tx_buffer_set ( NRF_TWIS_Type *const  p_reg,
uint8_t const *  p_buf,
nrf_twis_amount_t  length 
)

Function for setting the transmit buffer.

Parameters
[in]p_regPointer to the peripheral registers structure.
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_reg,
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_regPointer to the peripheral registers structure.
p_bufPointer to the buffer with data to send.
lengthMaximum number of data bytes to transmit.

Documentation feedback | Developer Zone | Subscribe | Updated