PIC16C926 Microchip Technology Inc., PIC16C926 Datasheet - Page 63
![no-image](/images/manufacturer_photos/0/4/440/microchip_technology_inc__sml.jpg)
PIC16C926
Manufacturer Part Number
PIC16C926
Description
64/68-pin Cmos Microcontrollers With Lcd Driver
Manufacturer
Microchip Technology Inc.
Datasheet
1.PIC16C926.pdf
(182 pages)
Available stocks
Company
Part Number
Manufacturer
Quantity
Price
Company:
Part Number:
PIC16C926-I/L
Manufacturer:
Microchip Technology
Quantity:
135
Company:
Part Number:
PIC16C926-I/L
Manufacturer:
Microchip Technology
Quantity:
10 000
Company:
Part Number:
PIC16C926-I/PT
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC16C926/CL
Manufacturer:
MICROCH
Quantity:
20 000
Company:
Part Number:
PIC16C926T-I/L
Manufacturer:
Microchip Technology
Quantity:
10 000
Company:
Part Number:
PIC16C926T-I/PT
Manufacturer:
Microchip Technology
Quantity:
10 000
9.1
The SPI mode allows 8-bits of data to be synchro-
nously transmitted and received simultaneously. To
accomplish communication, typically three pins are
used:
• Serial Data Out (SDO) RC5/SDO
• Serial Data In (SDI) RC4/SDI
• Serial Clock (SCK) RC3/SCK
Additionally, a fourth pin may be used when in a Slave
mode of operation:
• Slave Select (SS) RA5/AN4/SS
When initializing the SPI, several options need to be
specified. This is done by programming the appropriate
control bits in the SSPCON register (SSPCON<5:0>)
and SSPSTAT<7:6>. These control bits allow the fol-
lowing to be specified:
• Master mode (SCK is the clock output)
• Slave mode (SCK is the clock input)
• Clock Polarity (Idle state of SCK)
• Clock Edge (output data on rising/falling edge of
• Clock Rate (Master mode only)
• Slave Select mode (Slave mode only)
The SSP consists of a transmit/receive shift register
(SSPSR) and a buffer register (SSPBUF). The SSPSR
shifts the data in and out of the device, MSb first. The
SSPBUF holds the data that was written to the SSPSR,
until the received data is ready. Once the 8-bits of data
have been received, that byte is moved to the SSPBUF
register.
(SSPSTAT<0>),
(PIR1<3>), are set. This double buffering of the
received data (SSPBUF) allows the next byte to start
reception before reading the data that was just
received. Any write to the SSPBUF register during
transmission/reception of data will be ignored, and the
write collision detect bit, WCOL (SSPCON<7>), will be
set. User software must clear the WCOL bit so that it
can be determined if the following write(s) to the
SSPBUF register completed successfully. When the
application software is expecting to receive valid data,
the SSPBUF should be read before the next byte of
data to transfer is written to the SSPBUF. Buffer full bit,
BF (SSPSTAT<0>), indicates when SSPBUF has been
loaded with the received data (transmission is com-
plete). When the SSPBUF is read, bit BF is cleared.
This data may be irrelevant if the SPI is only a transmit-
ter. Generally, the SSP interrupt is used to determine
when the transmission/reception has completed. The
SSPBUF must be read and/or written. If the interrupt
method is not going to be used, then software polling
can be done to ensure that a write collision does not
occur. Example 9-1 shows the loading of the SSPBUF
(SSPSR) for data transmission. The MOVWF RXDATA
instruction (shaded) is only required if the received data
is meaningful.
SCK)
2001 Microchip Technology Inc.
SPI Mode
Then,
the
and
buffer
interrupt
full detect bit,
flag
bit,
SSPIF
Preliminary
BF
EXAMPLE 9-1:
The block diagram of the SSP module, when in SPI
mode (Figure 9-1), shows that the SSPSR is not
directly readable or writable, and can only be accessed
from addressing the SSPBUF register. Additionally, the
SSP status register (SSPSTAT) indicates the various
status conditions.
FIGURE 9-1:
LOOP
RC4/SDI/SDA
RA5/AN4/SS
RC5/SDO
RC3/SCK/
SCL
BCF
BSF
BTFSS SSPSTAT, BF
GOTO
BCF
MOVF
MOVWF RXDATA
MOVF
MOVWF SSPBUF
PIC16C925/926
STATUS, RP1
STATUS, RP0
LOOP
STATUS, RP0
SSPBUF, W
TXDATA, W
Read
SS Control
Select
TRISC<3>
Edge
SSPM3:SSPM0
LOADING THE SSPBUF
(SSPSR) REGISTER
SSP BLOCK DIAGRAM
(SPI MODE)
Enable
bit0
Select
Edge
SSPBUF reg
SSPSR reg
Clock Select
4
;Select Bank1
;
;Has data been
;received
;(transmit
;complete)?
;No
;Select Bank0
;W reg = contents
;of SSPBUF
;Save in user RAM
;W reg = contents
; of TXDATA
;New data to xmit
2
DS39544A-page 61
Prescaler
4, 16, 64
TMR2 Output
Write
Clock
Shift
Data Bus
Internal
2
T
CY