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