PIC18F2X1X/4X1X
DS39636D-page 156
2009 Microchip Technology Inc.
16.3.2
OPERATION
When initializing SPI operation, several options need to
be specified. This is done by programming the
appropriate
control
bits
(SSPCON1<5:0>
and
SSPSTAT<7:6>). These control bits allow the following
to be specified:
Master mode (SCK is the clock output)
Slave mode (SCK is the clock input)
Clock Polarity (Idle state of SCK)
Data Input Sample Phase (middle or end of data
output time)
Clock Edge (output data on rising/falling edge of
SCK)
Clock Rate (Master mode only)
Slave Select mode (Slave mode only)
The MSSP consists of a Transmit/Receive Shift regis-
ter (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. Then, the Buffer Full detect bit, BF
(SSPSTAT<0>) and the interrupt flag bit, SSPIF, 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
(SSPCON1<7>), will be set. User software must clear
the WCOL bit so that it can be determined if the follow-
ing 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. The
Buffer Full bit, BF (SSPSTAT<0>), indicates when
SSPBUF has been loaded with the received data
(transmission is complete). When the SSPBUF is read,
the BF bit is cleared. This data may be irrelevant if the
SPI interface is only a transmitter. Generally, the MSSP
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 16-1 shows
the loading of the SSPBUF (SSPSR) for data
transmission.
The SSPSR is not directly readable or writable and can
only be accessed by addressing the SSPBUF register.
Additionally, the MSSP Status register (SSPSTAT)
indicates the various status conditions.
EXAMPLE 16-1:
LOADING THE SSPBUF (SSPSR) REGISTER
LOOP
BTFSS
SSPSTAT, BF
;Has data been received (transmit complete)?
BRA
LOOP
;No
MOVF
SSPBUF, W
;WREG reg = contents of SSPBUF
MOVWF
RXDATA
;Save in user RAM, if data is meaningful
MOVF
TXDATA, W
;W reg = contents of TXDATA
MOVWF
SSPBUF
;New data to xmit
相关PDF资料
PIC18F4431T-I/ML IC MCU FLASH 8KX16 44QFN
PIC18F4431-E/ML IC MCU FLASH 8KX16 44QFN
PIC18F4410T-I/ML IC MCU FLASH 8KX16 44QFN
PIC18F4410-E/PT IC MCU FLASH 8KX16 44TQFP
PIC24F16KL401-I/SS IC MCU 16BIT 16KB FLASH 20-SSOP
PIC24F08KL402-I/SO IC MCU 16BIT 8KB FLASH 28-SOIC
PIC16F690-I/SO IC PIC MCU FLASH 4KX14 20SOIC
PIC24F08KL201-I/SO IC MCU 16BIT 8KB FLASH 20-SOIC
相关代理商/技术参数
PIC18F452 DEVELOPMENT BOARD KIT 功能描述:DEVELOPMENT BOARD FOR PIC18F452 RoHS:否 类别:编程器,开发系统 >> 过时/停产零件编号 系列:- 标准包装:1 系列:*
PIC18F452 DEVELOPMENT KIT 功能描述:EMBEDDED C DEVELOPMENT KIT RoHS:否 类别:编程器,开发系统 >> 过时/停产零件编号 系列:- 标准包装:1 系列:- 传感器类型:CMOS 成像,彩色(RGB) 传感范围:WVGA 接口:I²C 灵敏度:60 fps 电源电压:5.7 V ~ 6.3 V 嵌入式:否 已供物品:成像器板 已用 IC / 零件:KAC-00401 相关产品:4H2099-ND - SENSOR IMAGE WVGA COLOR 48-PQFP4H2094-ND - SENSOR IMAGE WVGA MONO 48-PQFP
PIC18F4520 DEV KIT/PCWH 功能描述:开发板和工具包 - PIC / DSPIC PIC18F4520 EMBD C DEV KIT W/PCWH RoHS:否 制造商:Microchip Technology 产品:Starter Kits 工具用于评估:chipKIT 核心:Uno32 接口类型: 工作电源电压:
PIC18F4520 DEVELOPMENT BOARD KIT 制造商:Custom Computer Services (CCS) 功能描述:BOARD DEV FOR PIC18F4520
PIC18F4520 DEVELOPMENT KIT 功能描述:KIT DEV EMBEDDED C RoHS:否 类别:编程器,开发系统 >> 通用嵌入式开发板和套件(MCU、DSP、FPGA、CPLD等) 系列:- 标准包装:1 系列:PICDEM™ 类型:MCU 适用于相关产品:PIC10F206,PIC16F690,PIC16F819 所含物品:板,线缆,元件,CD,PICkit 编程器 产品目录页面:659 (CN2011-ZH PDF)
PIC18F4520-E/ML 功能描述:8位微控制器 -MCU 32KB 1536 RAM 36I/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
PIC18F4520-E/P 功能描述:8位微控制器 -MCU 32KB 1536 RAM 36I/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
PIC18F4520-E/PT 功能描述:8位微控制器 -MCU 32KB 1536 RAM 36I/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