Robobo
twi.h File Reference
#include "../chip.h"
#include <stdint.h>

Go to the source code of this file.

Macros

#define TWI_STATUS_TXRDY(status)   (((status) & TWI_SR_TXRDY) == TWI_SR_TXRDY)
 
#define TWI_STATUS_RXRDY(status)   (((status) & TWI_SR_RXRDY) == TWI_SR_RXRDY)
 
#define TWI_STATUS_TXCOMP(status)   (((status) & TWI_SR_TXCOMP) == TWI_SR_TXCOMP)
 

Functions

void TWI_ConfigureMaster (Twi *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%. More...
 
void TWI_SetClock (Twi *pTwi, uint32_t dwTwCk, uint32_t dwMCk)
 
void TWI_ConfigureSlave (Twi *pTwi, uint8_t slaveAddress)
 Configures a TWI peripheral to operate in slave mode. More...
 
void TWI_Disable (Twi *pTwi)
 Disables the TWI. More...
 
void TWI_Stop (Twi *pTwi)
 Sends a STOP condition on the TWI. More...
 
void TWI_StartRead (Twi *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()). More...
 
uint8_t TWI_ReadByte (Twi *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()). More...
 
void TWI_WriteByte (Twi *pTwi, uint8_t byte)
 Sends a byte of data to one of the TWI slaves on the bus. More...
 
void TWI_StartWrite (Twi *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. More...
 
uint8_t TWI_ByteReceived (Twi *pTwi)
 Check if a byte have been receiced from TWI. More...
 
uint8_t TWI_ByteSent (Twi *pTwi)
 Check if a byte have been sent to TWI. More...
 
uint8_t TWI_TransferComplete (Twi *pTwi)
 Check if current transmission is complet. More...
 
void TWI_EnableIt (Twi *pTwi, uint32_t sources)
 Enables the selected interrupts sources on a TWI peripheral. More...
 
void TWI_DisableIt (Twi *pTwi, uint32_t sources)
 Disables the selected interrupts sources on a TWI peripheral. More...
 
uint32_t TWI_GetStatus (Twi *pTwi)
 Get the current status register of the given TWI peripheral. More...
 
uint32_t TWI_GetMaskedStatus (Twi *pTwi)
 Returns the current status register of the given TWI peripheral, but masking interrupt sources which are not currently enabled. More...
 
void TWI_SendSTOPCondition (Twi *pTwi)
 Sends a STOP condition. STOP Condition is sent just after completing the current byte transmission in master read mode. More...
 

Detailed Description

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

Function Documentation

uint8_t TWI_ByteReceived ( Twi pTwi)

Check if a byte have been receiced from TWI.

Parameters
pTwiPointer to an Twi 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.
uint8_t TWI_ByteSent ( Twi pTwi)

Check if a byte have been sent to TWI.

Parameters
pTwiPointer to an Twi 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.
void TWI_ConfigureMaster ( Twi 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
pTwiPointer to an Twi instance.
twckDesired TWI clock frequency.
mckMaster clock frequency.
void TWI_ConfigureSlave ( Twi pTwi,
uint8_t  slaveAddress 
)

Configures a TWI peripheral to operate in slave mode.

Parameters
pTwiPointer to an Twi instance.
slaveAddressSlave address.
void TWI_Disable ( Twi pTwi)

Disables the TWI.

Parameters
pTwiPointer to an Twi instance.
void TWI_DisableIt ( Twi pTwi,
uint32_t  sources 
)

Disables the selected interrupts sources on a TWI peripheral.

Parameters
pTwiPointer to an Twi instance.
sourcesBitwise OR of selected interrupt sources.
void TWI_EnableIt ( Twi pTwi,
uint32_t  sources 
)

Enables the selected interrupts sources on a TWI peripheral.

Parameters
pTwiPointer to an Twi instance.
sourcesBitwise OR of selected interrupt sources.
uint32_t TWI_GetMaskedStatus ( Twi 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
pTwiPointer to an Twi instance.
uint32_t TWI_GetStatus ( Twi 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
pTwiPointer to an Twi instance.
Returns
TWI status register.
uint8_t TWI_ReadByte ( Twi 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
pTwiPointer to an Twi instance.
Returns
byte read.
void TWI_SendSTOPCondition ( Twi pTwi)

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

Parameters
pTwiPointer to an Twi instance.
void TWI_StartRead ( Twi 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
pTwiPointer to an Twi instance.
addressSlave address on the bus.
iaddressOptional internal address bytes.
isizeNumber of internal address bytes.
void TWI_StartWrite ( Twi 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
pTwiPointer to an Twi instance.
addressAddress of slave to acccess on the bus.
iaddressOptional slave internal address.
isizeNumber of internal address bytes.
byteFirst byte to send.
void TWI_Stop ( Twi pTwi)

Sends a STOP condition on the TWI.

Parameters
pTwiPointer to an Twi instance.
uint8_t TWI_TransferComplete ( Twi pTwi)

Check if current transmission is complet.

Parameters
pTwiPointer to an Twi instance.
Returns
1 if the current transmission is complete (the STOP has been sent); otherwise returns 0.
void TWI_WriteByte ( Twi 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
pTwiPointer to an Twi instance.
byteByte to send.