
第10章串行外设接口SPI.ppt
17页第10章 串行外设接口SPI10.1 串行外设接口的结构10.2 SPI操作10.3 串行外设接口中断10.4 数据格式10.5 SPI波特率和时钟模式10.6 SPI的复位和初始化10.7 SPI应用实例SPI( Serial Peripheral Interface )是高速同步串行输入/输出端口,传送速率可编程可用于外部移位寄存器、D/A、 A/D、串行EEPROM、LED显示驱动器等外部芯片的扩展110.1 串行外设接口的结构1. 4个外部引脚,以下引脚都可用作数字I/O引脚 SPISIMOSPI从输入、主输出 SPISOMISPI主输入、从输出 SPICLK SPI时钟 /SPISTESPI从发送使能2. 主/从操作模式3. 发送、接收双缓冲 SPI模块中有9个寄存器用于控制该模块的操作:(1)SPICCR:SPI配置控制寄存器2)SPICTL:SPI操作控制寄存器3)SPISTS:SPI状态寄存器2(4)SPIBRR:SPI波特率寄存器5)SPIRXEMU:SPI仿真缓冲寄存器6)SPIRXBUF:SPI串行输入缓冲寄存器7)SPITXBUF:SPI串行发送缓冲寄存器8)SPIDAT:SPI串行数据寄存器。
9)SPIPRI:SPI优先级控制3SPI可工作于主模式或从模式SPICTL.2位-MASTER/SLAVE用来选择操作模式和SPICLK的源1)主模式将Master的数据传送给Slave,数据传送完毕,申请中断5(2)从模式将 Slave的数据传送给 Master,数据传送完毕,申请中断6SPI有两种工作模式:主模式和从模式,操作模式由SPICTL.2(MASTER/SLAVE位)决定数据的发送方式有三种:(1)主控制器发送数据,从控制器发送伪数据;(2)主控制器发送数据,从控制器发送数据;(3)主控制器发送伪数据,从控制器发送数据主控制器控制SPICLK信号,通过发出SPICLK信号启动数据发送,从控制器则通过检测SPICLK信号接收数据一个主控制器可以连接多个从控制器,但是一次只允许一个从控制器给主控制器发送数据710.3 串行外设接口中断有五个控制位用于初始化串行外设接口的中断:SPI中断使能位:SPI INT ENA (SPICTL.0);SPI中断标志位:SPI INT FLAG(SPISTS.6);SPI超限中断使能位:OVERRUN INT ENA(SPICTL.4); SPI接收器超限中断标志位:RECEIVER OVERRUN FLAG(SPISTS.7);SPI中断优先级选择位:SPI PRIORITY(SPIPRI.6)。
810.4 数据格式SPI通信时,要发送的数据从SPIDAT寄存器的MSB依次移出,接收的数据则从SPIDAT的LSB依次移入SPI数据字符位数(1-16位)由SPICCR.3-0指定当写入SPIDAT或SPITXBUF时,数据必须是左对齐的数据从SPIRXBUF读回时是右对齐的910.5 SPI波特率和时钟模式SPI模块支持125种不同的波特率和4种不同的时钟模式SPI最大波特率为CLKOUT频率的四分之一10.5.1 SPI波特率的确定SPI波特率取决于CLKOUT和SPIBRR的值1)对于SPIBRR=3-127SPI波特率=CLKOUT/(SPIBRR+1)(2) 对于SPIBRR=0-2SPI波特率=CLKOUT/4SPI最大波特率=CLKOUT/4=10 MHz1010.5.2 SPI时钟模式SPI有四种时钟模式,由CLOCK POLARITY 和CLOCK PHASE位控制CLOCK POLARITY位:选择时钟的有效沿是上升沿还是下降沿;CLOCK PHASE位:选择是否有半个时钟周期的延时1)下降沿,无延时:SPI在时钟下降沿发送数据,在时钟的上升沿接收数据;(2)下降沿,有延时:SPI在时钟下降沿前半个周期发送数据,在时钟的下降沿接收数据;11(3)上升沿,无延时:SPI在时钟上升沿发送数据,在下降沿接收数据;(4)上升沿,有延时:SPI在时钟上升沿前半个周期发送数据,在上升沿接收数据。
4种时钟模式如图所示121310.6 SPI的复位和初始化系统复位使SPI引脚功能被选定为通用输入,要对SPI的配置,需做以下工作:(1)设置SPI SW RESET位(SPICCR.7)的值为0,强制SPI复位;(2)初始化SPI的配置、格式、波特率和引脚功能为期望值;(3)设置SPI SW RESET位为1,从复位状态释放SPI;(4)向SPIDAT或SPITXBUF写数据;(5)数据发送完成后(SPISTS.6=1),读取SPIRXBUF以确定接收的数据1410.7 SPI应用实例SPI串行接口连接D/ADAC714是美国BB公司生产的16位具有串行接口的数模转换器,电压输出型,输出范围是 -10V+10V15由控制时序图可知,SPI时钟模式应为下降沿,无延时即SPI在时钟下降沿发送数据,在时钟的上升沿将数据锁存到DAC71416思考题与习题1.SPI接口有哪些用途?2.如何使用SPI接口?17。
