![](http://datasheet.mmic.net.cn/260000/PIC16LC72_datasheet_15942878/PIC16LC72_91.png)
1995 Microchip Technology Inc.
DS30390B-page 91
PIC16C7X
11.3.2
MASTER MODE
Master mode of operation is supported by interrupt
generation on the detection of the START and STOP
conditions. The STOP (P) and START (S) bits are
cleared from a reset or when the SSP module is dis-
abled. Control of the I
2
C bus may be taken when the P
bit is set, or the bus is idle and both the S and P bits are
clear.
In master mode the SCL and SDA lines are manipu-
lated by clearing the corresponding TRISC<4:3> bit(s).
The output level is always low, irrespective of the
value(s) in PORTB<4:3>. So when transmitting data, a
'1' data bit must have the TRISC<4> bit set (input) and
a '0' data bit must have the TRISC<4> bit cleared (out-
put). The same scenario is true for the SCL line with the
TRISC<3> bit.
The following events will cause the SSP Interrupt Flag
bit SSPIF to be set (SSP Interrupt if enabled):
START condition
STOP condition
Data transfer byte transmitted/received
Master mode of operation can be done with either the
slave mode idle (SSPM3:SSPM0 =
1011
) or with the
slave active. When both master and slave modes are
enabled, the software needs to differentiate the
source(s) of the interrupt.
11.3.3
MULTI-MASTER MODE
In multi-master mode, the interrupt generation on the
detection of the START and STOP conditions allows
the determination of when the bus is free. The STOP
(P) and START (S) bits are cleared from a reset or
when the SSP module is disabled. Control of the I
2
C
bus may be taken when bit P (SSPSTAT<4>) is set, or
the bus is idle and both the S and P bits are cleared.
When the bus is busy, enabling the SSP Interrupt will
generate the interrupt when the STOP condition
occurs.
In multi-master operation, the SDA line must be moni-
tored to see if the signal level is the expected output
level. This check only needs to be done when a high
level is output. If a high level is expected and a low level
is present, the device needs to release the SDA and
SCL lines (set TRISC<4:3>). There are two stages
where this arbitration can be lost, these are:
Address Transfer
Data Transfer
When the slave logic is enabled, the slave continues to
receive. If arbitration was lost during the address trans-
fer stage, the device may be being addressed. If
addressed an ACK pulse will be generated. If arbitra-
tion was lost during the data transfer stage, the device
will need to re-transfer the data at a later time.
TABLE 11-4:
REGISTERS ASSOCIATED WITH I
2
C OPERATION
Address Name
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Value on:
POR
BOR
Value on all
other resets
0Bh/8Bh INTCON
GIE
PEIE
T0IE
RCIF
(2)
RCIE
(2)
INTE
TXIF
(2)
TXIE
(2)
RBIE
T0IF
INTF
RBIF
0000 000x
0000 000u
0Ch
PIR1
PSPIF
(1,2)
PSPIE
(1,2)
ADIF
SSPIF
CCP1IF TMR2IF TMR1IF
0000 0000
0000 0000
8Ch
PIE1
ADIE
SSPIE
CCP1IE TMR2IE TMR1IE
0000 0000
0000 0000
13h
SSPBUF
Synchronous Serial Port Receive Buffer/Transmit Register
Synchronous Serial Port (I
2
C mode) Address Register
xxxx xxxx
uuuu uuuu
93h
SSPADD
0000 0000
0000 0000
14h
SSPCON
WCOL
SSPOV SSPEN
CKP
SSPM3 SSPM2 SSPM1
SSPM0
0000 0000
0000 0000
94h
SSPSTAT
—
—
D/A
P
S
R/W
UA
BF
--00 0000
--00 0000
89h
Legend:
x
= unknown,
u
= unchanged,
-
= unimplemented read as '0'. Shaded cells are not used by SSP in I
2
C mode.
Note 1:
Bits PSPIE and PSPIF are reserved on the PIC16C73/73A, always maintain these bits clear.
2:
The PIC16C72 does not have a Parallel Slave Port or USART, these bits are unimplemented, read as '0'.
TRISC
TRISC7
TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0
1111 1111
1111 1111