2006 Microchip Technology Inc.
Preliminary
DS70178C-page 145
dsPIC30F1010/202X
13.0
SERIAL PERIPHERAL
INTERFACE (SPI)
The Serial Peripheral Interface (SPI) module is a syn-
chronous serial interface useful for communicating with
other peripheral or microcontroller devices. These
peripheral devices may be serial EEPROMs, shift regis-
ters, display drivers, ADC, etc. The SPI module is
compatible with SPI and SIOP from Motorola.
The SPI module consists of a 16-bit shift register,
SPIxSR (where x = 1 or 2), used for shifting data in and
out, and a buffer register, SPIxBUF. Two control registers,
SPIxCON1 and SPIxCON2, configure the module. The
SPIxSR register is not accessible by user software. A sta-
tus register, SPIxSTAT, indicates various status
conditions.
The serial interface consists of 4 pins: SDIx (serial data
input), SDOx (serial data output), SCKx (shift clock input
or output), and SSx (active-low slave select).
In Master mode operation, SCK is a clock output but in
Slave mode, it is a clock input.
A series of eight (8) or sixteen (16) clock pulses shift out
bits from the SPIxSR to SDOx pin and simultaneously
shift in data from SDIx pin. An interrupt is generated
when the transfer is complete and the corresponding
interrupt flag bit (SPI1IF or SPI2IF) is set. This interrupt
can be disabled through an interrupt enable bit (SPI1IE
or SPI2IE).
The receive operation is double-buffered. When a com-
plete byte is received, it is transferred from SPIxSR to
SPIxBUF.
If the receive buffer is full when new data is being trans-
ferred from SPIxSR to SPIxBUF, the module sets the
SPIROV bit (SPIxSTAT<6>) to indicate an overflow con-
dition. The transfer of the data from SPIxSR to SPIxBUF
is not completed, and the new data is lost. The module
does not respond to transitions on the SCKx pin while
SPIROV (SPIxSTAT<6>) is ‘1’, effectively disabling the
module until SPIxBUF is read by user software.
Transmit writes are also double-buffered. The user soft-
ware writes to SPIxBUF. When the master or slave trans-
fer is completed, the contents of the shift register
(SPIxSR) are moved to the receive buffer. If any transmit
data has been written to the buffer register, the contents
of the transmit buffer are moved to SPIxSR. The received
data is thus placed in SPIxBUF and the transmit data in
SPIxSR is ready for the next transfer.
To set up the SPI module for the Master mode of
operation:
1.
If using interrupts:
a)
Clear the SPIxIF bit in the respective IFSn
register.
b)
Set the SPIxIE bit in the respective IECn
register.
c)
Write the SPIxIP bits in the respective IPCn
register to set the interrupt priority.
2.
Write the desired settings to the SPIxCON1
register with MSTEN (SPIxCON1<5>) = 1.
3.
Clear the SPIROV bit (SPIxSTAT<6>).
4.
Enable SPI operation by setting the SPIEN bit
(SPIxSTAT<15>).
5.
Write the data to be transmitted to the SPIxBUF
register. Transmission (and reception) start as
soon as data is written to the SPIxBUF register.
To set up the SPI module for the Slave mode of operation:
1.
Clear the SPIxBUF register.
2.
If using interrupts:
a)
Clear the SPIxIF bit in the respective IFSn
register.
b)
Set the SPIxIE bit in the respective IECn
register.
c)
Write the SPIxIP bits in the respective IPCn
register to set the interrupt priority.
3.
Write the desired settings to the SPIxCON1 and
SPIxCON2 registers with MSTEN
(SPIxCON1<5>) = 0.
4.
Clear the SMP bit (SPIxCON1<9>).
5.
If the CKE (SPIxCON1<8>) bit is set, then the
SSEN bit (SPIxCON1<7>) must be set to enable
the SSx pin.
6.
Clear the SPIROV bit (SPIxSTAT<6>).
7.
Enable SPI operation by setting the SPIEN bit
(SPIxSTAT<15>).
The SPI module generates an interrupt indicating com-
pletion of a byte or word transfer, as well as a separate
interrupt for all SPI error conditions.
Note:
This data sheet summarizes the features
of this group of dsPIC30F1010/202X devices. It is not
intended to be a comprehensive reference source. To
complement the information in this data sheet, refer to
the “dsPIC30F Family Reference Manual” (DS70046).
Note:
The dsPIC30F101/202X family has only
one SPI. All references to x = 2 are
intended for software compatibility with
other dsPIC DSC devices.
Note:
Both the transmit buffer (SPIxTXB) and
the receive buffer (SPIxRXB) are mapped
to the same register address, SPIxBUF.
Do not perform read-modify-write opera-
tions (such as bit-oriented instructions) on
the SPIxBUF register.
相关PDF资料
PIC16F628A-I/SS IC MCU FLASH 2KX14 EEPROM 20SSOP
PIC18LF43K22-I/PT IC PIC MCU 8KB FLASH 44TQFP
DSPIC33FJ16MC101-I/SO IC DSP 16BIT 16KB 20SOIC
PIC12C672-04I/SM IC MCU OTP 2KX14 A/D 8-SOIJ
PIC12C671-04I/SM IC MCU OTP 1KX14 A/D 8-SOIJ
PIC18F26K20-I/SO IC PIC MCU FLASH 32KX16 28-SOIC
PIC18LF24J11-I/SO IC PIC MCU FLASH 16K 2V 28-SOIC
DSPIC33FJ16MC102-I/SS IC DSP 16BIT 16KB 28SSOP
相关代理商/技术参数
PIC18F14K50-I/SS 功能描述:8位微控制器 -MCU 16KB Flash 768 RAM15 I/O 10-B ADC USB 2.0 RoHS:否 制造商:Silicon Labs 核心:8051 处理器系列:C8051F39x 数据总线宽度:8 bit 最大时钟频率:50 MHz 程序存储器大小:16 KB 数据 RAM 大小:1 KB 片上 ADC:Yes 工作电源电压:1.8 V to 3.6 V 工作温度范围:- 40 C to + 105 C 封装 / 箱体:QFN-20 安装风格:SMD/SMT
PIC18F14K50T-I/SO 功能描述:8位微控制器 -MCU 16KB Flash 768 RAM15 I/O 10-B ADC USB 2.0 RoHS:否 制造商:Silicon Labs 核心:8051 处理器系列:C8051F39x 数据总线宽度:8 bit 最大时钟频率:50 MHz 程序存储器大小:16 KB 数据 RAM 大小:1 KB 片上 ADC:Yes 工作电源电压:1.8 V to 3.6 V 工作温度范围:- 40 C to + 105 C 封装 / 箱体:QFN-20 安装风格:SMD/SMT
PIC18F14K50T-I/SS 功能描述:8位微控制器 -MCU 16KB Flash 768 RAM15 I/O 10-B ADC USB 2.0 RoHS:否 制造商:Silicon Labs 核心:8051 处理器系列:C8051F39x 数据总线宽度:8 bit 最大时钟频率:50 MHz 程序存储器大小:16 KB 数据 RAM 大小:1 KB 片上 ADC:Yes 工作电源电压:1.8 V to 3.6 V 工作温度范围:- 40 C to + 105 C 封装 / 箱体:QFN-20 安装风格:SMD/SMT
PIC18F2220-E/SO 功能描述:8位微控制器 -MCU 4KB 512 RAM 25 I/O RoHS:否 制造商:Silicon Labs 核心:8051 处理器系列:C8051F39x 数据总线宽度:8 bit 最大时钟频率:50 MHz 程序存储器大小:16 KB 数据 RAM 大小:1 KB 片上 ADC:Yes 工作电源电压:1.8 V to 3.6 V 工作温度范围:- 40 C to + 105 C 封装 / 箱体:QFN-20 安装风格:SMD/SMT
PIC18F2220-E/SP 功能描述:8位微控制器 -MCU 4KB 512 RAM 25 I/O RoHS:否 制造商:Silicon Labs 核心:8051 处理器系列:C8051F39x 数据总线宽度:8 bit 最大时钟频率:50 MHz 程序存储器大小:16 KB 数据 RAM 大小:1 KB 片上 ADC:Yes 工作电源电压:1.8 V to 3.6 V 工作温度范围:- 40 C to + 105 C 封装 / 箱体:QFN-20 安装风格:SMD/SMT
PIC18F2220-I/SO 功能描述:8位微控制器 -MCU 4KB 512 RAM 25 I/O RoHS:否 制造商:Silicon Labs 核心:8051 处理器系列:C8051F39x 数据总线宽度:8 bit 最大时钟频率:50 MHz 程序存储器大小:16 KB 数据 RAM 大小:1 KB 片上 ADC:Yes 工作电源电压:1.8 V to 3.6 V 工作温度范围:- 40 C to + 105 C 封装 / 箱体:QFN-20 安装风格:SMD/SMT
PIC18F2220-I/SO 制造商:Microchip Technology Inc 功能描述:IC 8BIT FLASH MCU 18F2220 SOIC28
PIC18F2220-I/SOC03 制造商:Microchip Technology Inc 功能描述: