| Table | ||||
|
|
|
|
|
|
Code | I2C State |
| Microprocessor Response |
| Next I2C Action |
40h | Addr + W transmitted, |
|
|
| |
| ACK received |
| Clear IFLG, AAK=0 |
| Transmit data byte, receive not ACK |
|
|
| OR |
| Receive data byte, transmit ACK |
|
|
| Clear IFLG, AAK=1 |
| |
|
|
|
|
| |
|
|
|
|
| |
|
|
| Write extended address byte to |
| Transmit extended address byte |
|
|
| DATA, clear IFLG |
|
|
48h | Addr + W transmitted, |
|
|
| |
| ACK not received |
| Set STA, clear IFLG |
| Transmit repeated START |
|
|
| OR |
| Transmit STOP |
|
|
| Set STP, clear IFLG |
| |
|
|
|
|
| |
|
|
| OR |
|
|
|
|
| Set STA & STP, clear IFLG |
| Transmit STOP and START |
|
|
|
|
| |
|
|
| Write extended address byte to |
| Transmit extended address byte |
|
|
| DATA, clear IFLG |
|
|
38h | Arbitration lost |
| Clear IFLG |
| Return to idle |
|
|
| OR |
|
|
|
|
| Set STA, clearIFLG |
| Transmit START when bus is free |
68h | Arbitration lost, |
| Clear IFLG, AAK=0 |
| Receive data byte, transmit not ACK |
| SLA + W received, |
|
|
|
|
| ACK transmitted |
| OR |
|
|
|
|
| Clear IFLG, AAK=1 |
| Receive data byte, transmit ACK |
78h | Arbitration lost, |
| Same as code 68h |
| Same as code 68h |
| general call addr |
|
|
|
|
| received, ACK |
|
|
|
|
| transmitted |
|
|
|
|
B0h | Arbitration lost, SLA + R |
| Write byte to DATA, clear IFLG, |
| Transmit last byte, receive ACK |
| received, ACK |
| AAK=0 |
|
|
| transmitted |
| OR |
|
|
|
|
|
|
| |
|
|
| Write byte to DATA, clear IFLG, |
| Transmit data byte, receive ACK |
|
|
| AAK=1 |
|
|
17