XgAt91Twi


Functions

int TwMasterTransact (uint8_t sla, CONST void *txdata, uint16_t txlen, void *rxdata, uint16_t rxsiz, uint32_t tmo)
 Transmit and/or receive data as a master.
int TwMasterError (void)
 Get last master mode error.
int TwIOCtl (int req, void *conf)
 Perform TWI control functions.
int TwInit (uint8_t sla)
 Initialize TWI interface.

Variables

HANDLE tw_mm_mutex
HANDLE tw_mm_que


Function Documentation

int TwMasterTransact ( uint8_t  sla,
CONST void *  txdata,
uint16_t  txlen,
void *  rxdata,
uint16_t  rxsiz,
uint32_t  tmo 
)

Transmit and/or receive data as a master.

The two-wire serial interface must have been initialized by calling TwInit() before this function can be used.

Parameters:
sla Slave address of the destination. This slave address must be specified as a 7-bit address. For example, the PCF8574A may be configured to slave addresses from 0x38 to 0x3F.
txdata Points to the data to transmit. Ignored, if the number of data bytes to transmit is zero.
txlen Number of data bytes to transmit. If zero, then the interface will not send any data to the slave device and will directly enter the master receive mode.
rxdata Points to a buffer, where the received data will be stored. Ignored, if the maximum number of bytes to receive is zero.
rxsiz Maximum number of bytes to receive. Set to zero, if no bytes are expected from the slave device.
tmo Timeout in milliseconds. To disable timeout, set this parameter to NUT_WAIT_INFINITE.
Returns:
The number of bytes received, -1 in case of an error or timeout.

Definition at line 192 of file at91_twi.c.

References NutEnterCritical, NutEventPost(), NutEventWait(), NutExitCritical, NutIrqDisable(), NutIrqEnable(), outb, outr, tw_mm_mutex, tw_mm_que, TWERR_IF_LOCKED, TWERR_TIMEOUT, TWI_CR, TWI_IDR, TWI_IER, TWI_MMR, TWI_MREAD, TWI_NACK, TWI_RXRDY, TWI_START, TWI_STOP, TWI_THR, TWI_TXCOMP, and TWI_TXRDY.

int TwMasterError ( void   ) 

Get last master mode error.

You may call this function to determine the specific cause of an error after TwMasterTransact() failed.

Note:
This function is only available on ATmega128 systems.

Definition at line 279 of file at91_twi.c.

int TwIOCtl ( int  req,
void *  conf 
)

Perform TWI control functions.

Parameters:
req Requested control function. May be set to one of the following constants:
  • TWI_SETSPEED, if conf points to an uint32_t value containing the bitrate.
  • TWI_GETSPEED, if conf points to an uint32_t value receiving the current bitrate.
conf Points to a buffer that contains any data required for the given control function or receives data from that function.
Returns:
0 on success, -1 otherwise.
Note:
Timeout is limited to the granularity of the system timer.

Definition at line 301 of file at91_twi.c.

References inr, NutGetCpuClock(), outr, TWI_CWGR, TWI_GETSPEED, TWI_GETSTATUS, TWI_SETSPEED, and TWI_SETSTATUS.

int TwInit ( uint8_t  sla  ) 

Initialize TWI interface.

The specified slave address is not used here as we don't support twi-slave on AT91SAM7X

Note:
This function is only available on AT91SAM7xxxx systems.
Parameters:
sla Slave address, must be specified as a 7-bit address, always lower than 128.

Definition at line 365 of file at91_twi.c.

References _BV, NutEventPost(), NutRegisterIrqHandler(), outr, PMC_PCER, tw_mm_mutex, TWI_CR, TWI_ID, TWI_IDR, TWI_MSEN, TWI_SETSPEED, TWI_SVDIS, TWI_SWRST, and TwIOCtl().


Variable Documentation

Definition at line 73 of file at91_twi.c.

Definition at line 74 of file at91_twi.c.


© 2000-2007 by egnite Software GmbH - visit http://www.ethernut.de/