SAMV71 Xplained Ultra Software Package 1.3

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 289 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 300 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 107 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 334 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 321 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 363 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 349 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 226 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 380 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 197 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 259 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 181 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 311 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 241 of file twi.c.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines