SAMV71 Xplained Ultra Software Package 1.5

twi.h File Reference

#include "chip.h"
#include <stdint.h>

Go to the source code of this file.

Defines

#define TWI_STATUS_TXRDY(status)   ((status & TWIHS_SR_TXRDY) == TWIHS_SR_TXRDY)
#define TWI_STATUS_RXRDY(status)   ((status & TWIHS_SR_RXRDY) == TWIHS_SR_RXRDY)
#define TWI_STATUS_TXCOMP(status)   ((status & TWIHS_SR_TXCOMP) == TWIHS_SR_TXCOMP)

Functions

void TWI_ConfigureMaster (Twihs *pTwi, uint32_t twck, uint32_t mck)
 Configures a TWI peripheral to operate in master mode, at the given frequency (in Hz). The duty cycle of the TWI clock is set to 50%.
void TWI_ConfigureSlave (Twihs *pTwi, uint8_t slaveAddress)
 Configures a TWI peripheral to operate in slave mode.
void TWI_Stop (Twihs *pTwi)
 Sends a STOP condition on the TWI.
void TWI_StartRead (Twihs *pTwi, uint8_t address, uint32_t iaddress, uint8_t isize)
 Starts a read operation on the TWI bus with the specified slave, it returns immediately. Data must then be read using TWI_ReadByte() whenever a byte is available (poll using TWI_ByteReceived()).
uint8_t TWI_ReadByte (Twihs *pTwi)
 Reads a byte from the TWI bus. The read operation must have been started using TWI_StartRead() and a byte must be available (check with TWI_ByteReceived()).
void TWI_WriteByte (Twihs *pTwi, uint8_t byte)
 Sends a byte of data to one of the TWI slaves on the bus.
void TWI_StartWrite (Twihs *pTwi, uint8_t address, uint32_t iaddress, uint8_t isize, uint8_t byte)
 Starts a write operation on the TWI to access the selected slave, then returns immediately. A byte of data must be provided to start the write; other bytes are written next. after that to send the remaining bytes.
uint8_t TWI_ByteReceived (Twihs *pTwi)
 Check if a byte have been received from TWI.
uint8_t TWI_ByteSent (Twihs *pTwi)
 Check if a byte have been sent to TWI.
uint8_t TWI_TransferComplete (Twihs *pTwi)
 Check if current transmission is completed.
void TWI_EnableIt (Twihs *pTwi, uint32_t sources)
 Enables the selected interrupts sources on a TWI peripheral.
void TWI_DisableIt (Twihs *pTwi, uint32_t sources)
 Disables the selected interrupts sources on a TWI peripheral.
uint32_t TWI_GetStatus (Twihs *pTwi)
 Get the current status register of the given TWI peripheral.
uint32_t TWI_GetMaskedStatus (Twihs *pTwi)
 Returns the current status register of the given TWI peripheral, but masking interrupt sources which are not currently enabled.
void TWI_SendSTOPCondition (Twihs *pTwi)
 Sends a STOP condition. STOP Condition is sent just after completing the current byte transmission in master read mode.

Detailed Description

Interface for configuration the Two Wire Interface (TWI) peripheral.

Definition in file twi.h.


Function Documentation

uint8_t TWI_ByteReceived ( Twihs pTwi  ) 

Check if a byte have been received from TWI.

Parameters:
pTwi Pointer to an Twihs instance.
Returns:
1 if a byte has been received and can be read on the given TWI peripheral; otherwise, returns 0. This function resets the status register.

Definition at line 285 of file twi.c.

uint8_t TWI_ByteSent ( Twihs pTwi  ) 

Check if a byte have been sent to TWI.

Parameters:
pTwi Pointer to an Twihs instance.
Returns:
1 if a byte has been sent so another one can be stored for transmission; otherwise returns 0. This function clears the status register.

Definition at line 296 of file twi.c.

void TWI_ConfigureMaster ( Twihs pTwi,
uint32_t  dwTwCk,
uint32_t  dwMCk 
)

Configures a TWI peripheral to operate in master mode, at the given frequency (in Hz). The duty cycle of the TWI clock is set to 50%.

Parameters:
pTwi Pointer to an Twihs instance.
twck Desired TWI clock frequency.
mck Master clock frequency.

Definition at line 112 of file twi.c.

void TWI_ConfigureSlave ( Twihs pTwi,
uint8_t  slaveAddress 
)

Configures a TWI peripheral to operate in slave mode.

Parameters:
pTwi Pointer to an Twihs instance.
slaveAddress Slave address.

Definition at line 151 of file twi.c.

void TWI_DisableIt ( Twihs pTwi,
uint32_t  sources 
)

Disables the selected interrupts sources on a TWI peripheral.

Parameters:
pTwi Pointer to an Twihs instance.
sources Bitwise OR of selected interrupt sources.

Definition at line 330 of file twi.c.

void TWI_EnableIt ( Twihs pTwi,
uint32_t  sources 
)

Enables the selected interrupts sources on a TWI peripheral.

Parameters:
pTwi Pointer to an Twihs instance.
sources Bitwise OR of selected interrupt sources.

Definition at line 317 of file twi.c.

uint32_t TWI_GetMaskedStatus ( Twihs pTwi  ) 

Returns the current status register of the given TWI peripheral, but masking interrupt sources which are not currently enabled.

Note:
This resets the internal value of the status register, so further read may yield different values.
Parameters:
pTwi Pointer to an Twihs instance.

Definition at line 359 of file twi.c.

uint32_t TWI_GetStatus ( Twihs pTwi  ) 

Get the current status register of the given TWI peripheral.

Note:
This resets the internal value of the status register, so further read may yield different values.
Parameters:
pTwi Pointer to an Twihs instance.
Returns:
TWI status register.

Definition at line 345 of file twi.c.

uint8_t TWI_ReadByte ( Twihs pTwi  ) 

Reads a byte from the TWI bus. The read operation must have been started using TWI_StartRead() and a byte must be available (check with TWI_ByteReceived()).

Parameters:
pTwi Pointer to an Twihs instance.
Returns:
byte read.

Definition at line 222 of file twi.c.

void TWI_SendSTOPCondition ( Twihs pTwi  ) 

Sends a STOP condition. STOP Condition is sent just after completing the current byte transmission in master read mode.

Parameters:
pTwi Pointer to an Twihs instance.

Definition at line 376 of file twi.c.

void TWI_StartRead ( Twihs pTwi,
uint8_t  address,
uint32_t  iaddress,
uint8_t  isize 
)

Starts a read operation on the TWI bus with the specified slave, it returns immediately. Data must then be read using TWI_ReadByte() whenever a byte is available (poll using TWI_ByteReceived()).

Parameters:
pTwi Pointer to an Twihs instance.
address Slave address on the bus.
iaddress Optional internal address bytes.
isize Number of internal address bytes.

Definition at line 188 of file twi.c.

void TWI_StartWrite ( Twihs pTwi,
uint8_t  address,
uint32_t  iaddress,
uint8_t  isize,
uint8_t  byte 
)

Starts a write operation on the TWI to access the selected slave, then returns immediately. A byte of data must be provided to start the write; other bytes are written next. after that to send the remaining bytes.

Parameters:
pTwi Pointer to an Twihs instance.
address Address of slave to acccess on the bus.
iaddress Optional slave internal address.
isize Number of internal address bytes.
byte First byte to send.

Definition at line 255 of file twi.c.

Here is the call graph for this function:

void TWI_Stop ( Twihs pTwi  ) 

Sends a STOP condition on the TWI.

Parameters:
pTwi Pointer to an Twihs instance.

Definition at line 172 of file twi.c.

uint8_t TWI_TransferComplete ( Twihs pTwi  ) 

Check if current transmission is completed.

Parameters:
pTwi Pointer to an Twihs instance.
Returns:
1 if the current transmission is complete (the STOP has been sent); otherwise returns 0.

Definition at line 307 of file twi.c.

void TWI_WriteByte ( Twihs pTwi,
uint8_t  byte 
)

Sends a byte of data to one of the TWI slaves on the bus.

Note:
This function must be called once before TWI_StartWrite() with the first byte of data to send, then it shall be called repeatedly after that to send the remaining bytes.
Parameters:
pTwi Pointer to an Twihs instance.
byte Byte to send.

Definition at line 237 of file twi.c.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines