8 master receive states – NXP Semiconductors LPC24XX UM10237 User Manual

Page 606

Advertising
background image

UM10237_4

© NXP B.V. 2009. All rights reserved.

User manual

Rev. 04 — 26 August 2009

606 of 792

NXP Semiconductors

UM10237

Chapter 22: LPC24XX I

2

C interfaces I

2

C0/1/2

10.7.5 State : 0x38

Arbitration has been lost during Slave Address + Write or data. The bus has been
released and not addressed Slave mode is entered. A new Start condition will be
transmitted when the bus is free again.

1. Write 0x24 to I2CONSET to set the STA and AA bits.

2. Write 0x08 to I2CONCLR to clear the SI flag.

3. Exit

10.8 Master Receive states

10.8.1 State : 0x40

Previous state was State 08 or State 10. Slave Address + Read has been transmitted,
ACK has been received. Data will be

received and ACK returned.

1. Write 0x04 to I2CONSET to set the AA bit.

2. Write 0x08 to I2CONCLR to clear the SI flag.

3. Exit

10.8.2 State : 0x48

Slave Address + Read has been transmitted, NOT ACK has been received. A Stop
condition will be transmitted.

1. Write 0x14 to I2CONSET to set the STO and AA bits.

2. Write 0x08 to I2CONCLR to clear the SI flag.

3. Exit

10.8.3 State : 0x50

Data has been received, ACK has been returned. Data will be read from I2DAT. Additional
data will be received. If this is the last data byte then NOT ACK will be returned, otherwise
ACK will be returned.

1. Read data byte from I2DAT into Master Receive buffer.

2. Decrement the Master data counter, skip to step 5 if not the last data byte.

3. Write 0x0C to I2CONCLR to clear the SI flag and the AA bit.

4. Exit

5. Write 0x04 to I2CONSET to set the AA bit.

6. Write 0x08 to I2CONCLR to clear the SI flag.

7. Increment Master Receive buffer pointer

8. Exit

10.8.4 State : 0x58

Data has been received, NOT ACK has been returned. Data will be read from I2DAT. A
Stop condition will be transmitted.

Advertising