
2001 Microchip Technology Inc.
Advance Information
DS39582A-page 81
PIC16F87XA
REGISTER 9-5:
SSPCON2: MSSP CONTROL REGISTER2 (I
2
C MODE) (ADDRESS 91h)
R/W-0
GCEN
bit 7
R/W-0
ACKSTAT
R/W-0
ACKDT
R/W-0
ACKEN
R/W-0
RCEN
R/W-0
PEN
R/W-0
RSEN
R/W-0
SEN
bit 0
bit 7
GCEN:
General Call Enable bit (Slave mode only)
1
= Enable interrupt when a general call address (0000h) is received in the SSPSR
0
= General call address disabled
ACKSTAT:
Acknowledge Status bit (Master Transmit mode only)
1
= Acknowledge was not received from slave
0
= Acknowledge was received from slave
ACKDT:
Acknowledge Data bit (Master Receive mode only)
1
= Not Acknowledge
0
= Acknowledge
Note:
Value that will be transmitted when the user initiates an Acknowledge sequence at
the end of a receive.
ACKEN:
Acknowledge Sequence Enable bit (Master Receive mode only)
1
= Initiate Acknowledge sequence on SDA and SCL pins, and transmit ACKDT data bit.
Automatically cleared by hardware.
0
= Acknowledge sequence IDLE
RCEN:
Receive Enable bit (Master mode only)
1
= Enables Receive mode for I
2
C
0
= Receive IDLE
PEN:
STOP Condition Enable bit (Master mode only)
1
= Initiate STOP condition on SDA and SCL pins. Automatically cleared by hardware.
0
= STOP condition IDLE
RSEN:
Repeated START Condition Enabled bit (Master mode only)
1
= Initiate Repeated START condition on SDA and SCL pins.
Automatically cleared by hardware.
0
= Repeated START condition IDLE
SEN:
START Condition Enabled/Stretch Enabled bit
In Master mode:
1
= Initiate START condition on SDA and SCL pins. Automatically cleared by hardware.
0
= START condition IDLE
In Slave mode:
1
= Clock stretching is enabled for both Slave Transmit and Slave Receive (stretch enabled)
0
= Clock stretching is enabled for Slave Transmit only (PIC16F87X compatibility)
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
Note:
For bits ACKEN, RCEN, PEN, RSEN, SEN: If the I
2
C module is not in the IDLE
mode, this bit may not be set (no spooling) and the SSPBUF may not be written (or
writes to the SSPBUF are disabled).
Legend:
R = Readable bit
- n = Value at POR reset
W = Writable bit
’1’ = Bit is set
U = Unimplemented bit, read as ‘0’
’0’ = Bit is cleared
x = Bit is unknown