
PIC16F87X
DS30292C-page 66
2001 Microchip Technology Inc.
REGISTER 9-1:
SSPSTAT: SYNC SERIAL PORT STATUS REGISTER (ADDRESS: 94h)
R/W-0
SMP
bit 7
R/W-0
CKE
R-0
D/A
R-0
P
R-0
S
R-0
R/W
R-0
UA
R-0
BF
bit 0
bit 7
SMP
:
Sample bit
SPI Master mode:
1
= Input data sampled at end of data output time
0
= Input data sampled at middle of data output time
SPI Slave mode:
SMP must be cleared when SPI is used in slave mode
In I
2
C Master or Slave mode:
1
= Slew rate control disabled for standard speed mode (100 kHz and 1 MHz)
0
= Slew rate control enabled for high speed mode (400 kHz)
CKE
: SPI Clock Edge Select (Figure 9-2, Figure 9-3 and Figure 9-4)
SPI mode:
For CKP = 0
1
= Data transmitted on rising edge of SCK
0
= Data transmitted on falling edge of SCK
For CKP = 1
1
= Data transmitted on falling edge of SCK
0
= Data transmitted on rising edge of SCK
In I
2
C Master or Slave mode:
1
= Input levels conform to SMBus spec
0
= Input levels conform to I
2
C specs
D/A
: Data/Address bit (I
2
C mode only)
1
= Indicates that the last byte received or transmitted was data
0
= Indicates that the last byte received or transmitted was address
P
: STOP bit
(I
2
C mode only. This bit is cleared when the MSSP module is disabled, SSPEN is cleared.)
1
= Indicates that a STOP bit has been detected last (this bit is
’
0
’
on RESET)
0
= STOP bit was not detected last
S
: START bit
(I
2
C mode only. This bit is cleared when the MSSP module is disabled, SSPEN is cleared.)
1
= Indicates that a START bit has been detected last (this bit is
’
0
’
on RESET)
0
= START bit was not detected last
R/W
: Read/Write bit Information (I
2
C mode only)
This bit holds the R/W bit information following the last address match. This bit is only valid from the
address match to the next START bit, STOP bit or not ACK bit.
In I
2
C Slave mode:
1
= Read
0
= Write
In I
2
C Master mode:
1
= Transmit is in progress
0
= Transmit is not in progress
Logical OR of this bit with SEN, RSEN, PEN, RCEN, or ACKEN will indicate if the MSSP is in IDLE mode.
UA
: Update Address (10-bit I
2
C mode only)
1
= Indicates that the user needs to update the address in the SSPADD register
0
= Address does not need to be updated
BF
: Buffer Full Status bit
Receive (SPI and I
2
C modes):
1
= Receive complete, SSPBUF is full
0
= Receive not complete, SSPBUF is empty
Transmit (I
2
C mode only):
1
= Data transmit in progress (does not include the ACK and STOP bits), SSPBUF is full
0
= Data transmit complete (does not include the ACK and STOP bits), SSPBUF is empty
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit
Legend:
R = Readable bit
- n = Value at POR
W = Writable bit
’
1
’
= Bit is set
U = Unimplemented bit, read as
‘
0
’
’
0
’
= Bit is cleared
x = Bit is unknown