7 transmission modes, Atmega128rfa1 – Rainbow Electronics ATmega128RFA1 User Manual
Page 387

387
8266A-MCU Wireless-12/09
ATmega128RFA1
Assembly Code Example
C Example
Comments
4 wait2:
in r16,TWCR
sbrs r16,TWINT
rjmp wait2
while (!(TWCR & (1< Wait for TWINT Flag set. This in r16,TWSR andi r16, 0xF8 cpi r16, MT_SLA_ACK brne ERROR if ((TWSR & 0xF8) != MT_SLA_ACK) ERROR(); Check value of TWI Status Register. 5 ldi r16, DATA out TWDR, r16 ldi r16, (1< out TWCR, r16 TWDR = DATA; TWCR = (1< Load DATA into TWDR Register. 6 wait3: in r16,TWCR sbrs r16,TWINT rjmp wait3 while (!(TWCR & (1< Wait for TWINT Flag set. This in r16,TWSR andi r16, 0xF8 cpi r16, MT_DATA_ACK brne ERROR if ((TWSR & 0xF8) != MT_DATA_ACK) ERROR(); Check value of TWI Status Register. 7 ldi r16,(1< (1< out TWCR, r16 TWCR = (1< Transmit STOP condition 25.7 Transmission Modes The TWI can operate in one of four major modes. These are named Master Transmitter The following sections describe each of these modes. Possible status codes are S: START condition Rs: REPEATED START condition R: Read bit (high level at SDA) W: Write bit (low level at SDA) Data: 8-bit data byte P: STOP condition SLA: Slave Address A: Acknowledge bit (low level at SDA) A _ : Not acknowledge bit (high level at SDA) page 389 to page 399 circles are used to indicate that the TWINT Flag is set. The numbers in the circles show the status code held in When the TWINT Flag is set, the status code in TWSR is used to determine the
indicates that the SLA+W has been
transmitted, and ACK/NACK has
been received.
Mask prescaler bits. If status different
from MT_SLA_ACK go to ERROR
Clear TWINT bit in TWCR to start
transmission of data
indicates that the DATA has been
transmitted, and ACK/NACK has
been received.
Mask prescaler bits. If status different
from MT_DATA_ACK go to ERROR
(MT), Master Receiver (MR), Slave Transmitter (ST) and Slave Receiver (SR). Several
of these modes can be used in the same application. As an example, the TWI can use
MT mode to write data into a TWI EEPROM, MR mode to read the data back from the
EEPROM. If other masters are present in the system, some of these might transmit
data to the TWI, and then SR mode would be used. It is the application software that
decides which modes are legal.
described along with figures detailing data transmission in each of the modes. These
figures contain the following abbreviations:
TWSR, with the prescaler bits masked to zero. At these points, actions must be taken
by the application to continue or complete the TWI transfer. The TWI transfer is
suspended until the TWINT Flag is cleared by software.
appropriate software action. For each status code, the required software action and