beautypg.com

Atmega163(l), Table 35. status codes for slave transmitter mode – Rainbow Electronics ATmega163L User Manual

Page 84

background image

ATmega163(L)

84

in

r16, TWSR

; Check value of TWI Status Register. If status

cpi

r16, SR_DATA_NACK

; different from SR_DATA_NACK, go to ERROR

brne

ERROR

in

r16, TWDR

; Input received data from TWDR.

nop

;

ldi

r16, (1<

out

TWCR, r16

; Clear TWINT bit in TWCR to start reception of data.

; Setting TWEA causes TWI unit to enter

; not addressed slave mode with reckognition of own SLA

;

Table 35. Status Codes for Slave Transmitter Mode

Status code

(TWSR)

Status of the 2-wire Serial Bus

and 2-wire Serial Interface hard-

ware

Application software response

Next action taken by 2-wire Serial Interface hardware

To/from TWDR

To TWCR

STA

STO

TWIN

T

TWE

A

$A8

Own SLA+R has been received;

ACK has been returned

Load data byte or

Load data byte

X

X

0

0

1

1

0

1

Last data byte will be transmitted and NOT ACK should
be received
Data byte will be transmitted and ACK should be re-
ceived

$B0

Arbitration lost in SLA+R/W as

master; own SLA+R has been

received; ACK has been returned

Load data byte or

Load data byte

X

X

0

0

1

1

0

1

Last data byte will be transmitted and NOT ACK should
be received
Data byte will be transmitted and ACK should be re-
ceived

$B8

Data byte in TWDR has been

transmitted; ACK has been

received

Load data byte or

Load data byte

X

X

0

0

1

1

0

1

Last data byte will be transmitted and NOT ACK should
be received
Data byte will be transmitted and ACK should be re-
ceived

$C0

Data byte in TWDR has been

transmitted; NOT ACK has been

received

No TWDR action or

No TWDR action or

No TWDR action or

No TWDR action

0

0

1

1

0

0

0

0

1

1

1

1

0

1

0

1

Switched to the not addressed slave mode;
no recognition of own SLA or GCA
Switched to the not addressed slave mode;
own SLA will be recognized;
GCA will be recognized if TWGCE = ‘1’
Switched to the not addressed slave mode;
no recognition of own SLA or GCA;
a START condition will be transmitted when the bus
becomes free
Switched to the not addressed slave mode;
own SLA will be recognized;
GCA will be recognized if TWGCE = ‘1’;
a START condition will be transmitted when the bus
becomes free

$C8

Last data byte in TWDR has been

transmitted (TWEA = ‘0’); ACK

has been received

No TWDR action or

No TWDR action or

No TWDR action or

No TWDR action

0

0

1

1

0

0

0

0

1

1

1

1

0

1

0

1

Switched to the not addressed slave mode;
no recognition of own SLA or GCA
Switched to the not addressed slave mode;
own SLA will be recognized;
GCA will be recognized if TWGCE = ‘1’
Switched to the not addressed slave mode;
no recognition of own SLA or GCA;
a START condition will be transmitted when the bus
becomes free
Switched to the not addressed slave mode;
own SLA will be recognized;
GCA will be recognized if TWGCE = ‘1’;
a START condition will be transmitted when the bus
becomes free