UM10413
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2011. All rights reserved.
User manual
Rev. 1 — 16 December 2011
143 of 268
NXP Semiconductors
UM10413
MPT612 User manual
16.8.14 I
2
C state service routines
This section provides examples of operations that must be performed by various I
2
C state
service routines. This includes:
•
Initialization of the I
2
C block after a reset
•
I
2
C interrupt service
•
The 26 state service routines providing support for all four I
2
C operating modes
16.8.15 Initialization
In the initialization example, the I
2
C block is enabled for both master and slave modes.
For each mode, a buffer is used for transmission and reception. The initialization routine
performs the following functions:
•
I2ADR is loaded with the part’s own slave address and the general call bit (GC)
•
The I
2
C interrupt enable and interrupt priority bits are set
•
Slave mode is enabled by simultaneously setting the I2EN and AA bits in I2CON, and
the serial clock frequency (for master modes) is defined by loading CR0 and CR1 in
I2CON. The master routines must be started in the main program.
Fig 40. Forced access to a busy I
2
C-bus
(1) Unsuccessful attempt to send a Start condition.
(2) SDA line is released.
(3) Successful attempt to send a Start condition. State 08H is entered.
Fig 41. Recovering from a bus obstruction caused by a LOW level on SDA
STO flag
STA flag
SCL line
SDA line
start condition
aaa-000603
time limit
(2)
(1)
(1)
(3)
start
condition
aaa-000604
SDA line
STA flag
SCL line