Multi-Master IIC Interface (MMIIC)
Data Sheet
MC68HC908SR12MC68HC08SR12 — Rev. 5.0
316
Multi-Master IIC Interface (MMIIC)
Freescale Semiconductor
17.10 SMBus Protocol Implementation
Figure 17-20. SMBus Protocol Implementation
START
Address
ACK
Command
ACK
0
START
ACK
STOP
RX Data1
ACK
NAK
RX DataN
Address
1
ACK
Prepare for Master mode
ACTION:
1. Load slave address to MMADR
2. Clear MMRW
3. Load command to MMDTR
4. Set MMAST
OPERATION:
Prepare for repeated START
FLAGS:
MMTXIF set
MMRXAK clear
OPERATION:
ACTION:
1. Set MMRW
2. Set REPSEN
3. Clear MMTXAK
4. Load dummy ($FF) to MMDTR
Get ready to receive data
FLAGS:
MMTXIF set
MMRXAK clear
OPERATION:
ACTION:
Load dummy ($FF) to MMDTR
Generate STOP
FLAGS:
MMRXIF set
OPERATION:
ACTION:
Read DataN from MMDRR
Read received data and prepare for STOP
FLAGS:
MMRXIF set
OPERATION:
ACTION:
1. Set MMTXAK
2. Read Data(N-1) from MMDRR
3. Clear MMAST
Read received data
FLAGS:
MMRXIF set
OPERATION:
ACTION:
Read Data1 from MMDRR
MASTER MODE
START
Address
ACK
Command
ACK
0
START
ACK
STOP
TX Data1
ACK
NAK
TX DataN
Address
1
ACK
Slave address match and
check for data direction
FLAGS:
MMRXIF set
MMATCH set
MMSRW depends on 8th
bit of calling address byte
OPERATION:
ACTION:
1. Check MMSRW
2. Read Slave address
Read and decode received command
FLAGS:
MMRXIF set
MMATCH clear
OPERATION:
ACTION:
Load Data1 to MMDTR
Last data sent
FLAGS:
MMTXIF set
MMRXAK set
OPERATION:
ACTION:
Load dummy ($FF) to MMDTR
Last data is going to be sent
FLAGS:
MMTXIF set
MMRXAK clear
OPERATION:
ACTION:
Load dummy ($FF) to MMDTR
Transmit data
FLAGS:
MMTXIF set
MMRXAK clear
OPERATION:
ACTION:
Load Data3 to MMDTR
Prepare for Slave mode
ACTION:
1. Load slave address to MMADR
2. Clear MMTXAK
3. Clear MMAST
OPERATION:
Slave address match and
get ready to transmit data
FLAGS:
MMRXIF set
MMATCH set
MMSRW depends on 8th
bit of calling address byte
OPERATION:
ACTION:
Check MMSRW
Transmit data
FLAGS:
MMTXIF set
ACTION:
Load Data2 to MMDTR
OPERATION:
SLAVE MODE
Shaded data packets indicate transmissions by the MCU