2000 Microchip Technology Inc.
DS30605C-page 61
PIC16C63A/65B/73B/74B
10.3.1.1
Addressing
Once the SSP module has been enabled, it waits for a
START condition to occur. Following the START condi-
tion, 8-bits are shifted into the SSPSR register. All
incoming bits are sampled with the rising edge of the
clock (SCL) line. The value of register SSPSR<7:1> is
compared to the value of the SSPADD register. The
address is compared on the falling edge of the eighth
clock (SCL) pulse. If the addresses match, and the BF
and SSPOV bits are clear, the following events occur:
a)
The SSPSR register value is loaded into the
SSPBUF register.
b)
The buffer full bit, BF is set.
c)
An ACK pulse is generated.
d)
SSP interrupt flag bit, SSPIF (PIR1<3>) is set
(interrupt is generated if enabled) - on the falling
edge of the ninth SCL pulse.
In 10-bit address mode, two address bytes need to be
received by the slave (Figure 10-7). The five Most Sig-
nificant bits (MSbs) of the first address byte specify if
this is a 10-bit address. Bit R/W (SSPSTAT<2>) must
specify a write so the slave device will receive the sec-
ond address byte. For a 10-bit address, the first byte
would equal ‘
1111 0 A9 A8 0
’, where
A9
and
A8
are
the two MSbs of the address. The sequence of events
for 10-bit address is as follows, with steps 7 - 9 for
slave-transmitter:
1.
Receive first (high) byte of address (bits SSPIF,
BF, and bit UA (SSPSTAT<1>) are set).
2.
Update the SSPADD register with second (low)
byte of Address (clears bit UA and releases the
SCL line).
3.
Read the SSPBUF register (clears bit BF) and
clear flag bit SSPIF.
4.
Receive second (low) byte of address (bits
SSPIF, BF, and UA are set).
5.
Update the SSPADD register with the first (high)
byte of address, if match releases SCL line, this
will clear bit UA.
6.
Read the SSPBUF register (clears bit BF) and
clear flag bit SSPIF.
7.
Receive Repeated START condition.
8.
Receive first (high) byte of address (bits SSPIF
and BF are set).
9.
Read the SSPBUF register (clears bit BF) and
clear flag bit SSPIF.
TABLE 10-2:
DATA TRANSFER RECEIVED BYTE ACTIONS
Status Bits as Data
Transfer is Received
SSPSR
→
SSPBUF
Generate ACK
Pulse
Set bit SSPIF
(SSP Interrupt occurs
if enabled)
BF
SSPOV
0
0
Yes
Yes
Yes
1
0
No
No
Yes, SSPOV is set
1
1
No
No
Yes
0
1
No
No
Yes
Note:
Shaded cells show the conditions where the user software did not properly clear the overflow condition.
Summary of Contents for PIC16C63A
Page 4: ...PIC16C63A 65B 73B 74B DS30605C page 4 2000 Microchip Technology Inc NOTES ...
Page 6: ...PIC16C63A 65B 73B 74B DS30605C page 6 2000 Microchip Technology Inc NOTES ...
Page 8: ...PIC16C63A 65B 73B 74B DS30605C page 8 2000 Microchip Technology Inc NOTES ...
Page 28: ...PIC16C63A 65B 73B 74B DS30605C page 28 2000 Microchip Technology Inc NOTES ...
Page 42: ...PIC16C63A 65B 73B 74B DS30605C page 42 2000 Microchip Technology Inc NOTES ...
Page 78: ...PIC16C63A 65B 73B 74B DS30605C page 78 2000 Microchip Technology Inc NOTES ...
Page 112: ...PIC16C63A 65B 73B 74B DS30605C page 112 2000 Microchip Technology Inc NOTES ...
Page 152: ...PIC16C63A 65B 73B 74B DS30605C page 152 2000 Microchip Technology Inc NOTES ...
Page 164: ...PIC16C63A 65B 73B 74B DS30605C page 164 2000 Microchip Technology Inc NOTES ...
Page 174: ...PIC16C63A 65B 73B 74B DS30605C page 174 2000 Microchip Technology Inc NOTES ...
Page 178: ...PIC16C63A 65B 73B 74B DS30605C page 178 2000 Microchip Technology Inc NOTES ...
Page 179: ... 2000 Microchip Technology Inc DS30605C page 179 PIC16C63A 65B 73B 74B NOTES ...
Page 180: ...PIC16C63A 65B 73B 74B DS30605C page 180 2000 Microchip Technology Inc NOTES ...
Page 181: ... 2000 Microchip Technology Inc DS30605C page 181 PIC16C63A 65B 73B 74B NOTES ...
Page 182: ...PIC16C63A 65B 73B 74B DS30605C page 182 2000 Microchip Technology Inc NOTES ...
Page 183: ... 2000 Microchip Technology Inc DS30605C page 183 PIC16C63A 65B 73B 74B NOTES ...