收藏 分销(赏)

第10章 串行外设接口SPI.ppt

上传人:xrp****65 文档编号:13336189 上传时间:2026-03-03 格式:PPT 页数:15 大小:115KB 下载积分:10 金币
下载 相关 举报
第10章 串行外设接口SPI.ppt_第1页
第1页 / 共15页
第10章 串行外设接口SPI.ppt_第2页
第2页 / 共15页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,10,章 串行外设接口,SPI,SPI:,高速,同步,串行输入/输出端口,传送速率可编程,,应用:,外部移位寄存器、,D/A,、,A/D,、串行,EEPROM、LED,显示驱动器,等外部设备,进行扩展。,10.1,串行外设接口的结构,(,1,),4,个外部引脚,,以下引脚都可用作数字,I/O,引脚。,SPISIMO,SPI,从输入、主输出,SPISOMI,SPI,主输入、从输出,SPICLK,SPI,时钟,SPISTE,*,SPI,从发送使能,(,2,),主从,操作模式。,(,3,)发送、接收双缓冲。,SPI,模块中有,9,个,寄存器,用于控制该模块的操作:,(1),SPICCR,:SPI,配置控制寄存器。,(2),SPICTL,:SPI,操作控制寄存器。,(3),SPISTS,:SPI,状态寄存器。,(4),SPIBRR,:SPI,波特率寄存器。,(5),SPIRXEMU,:SPI,仿真缓冲寄存器。,(6),SPIRXBUF,:SPI,串行输入缓冲寄存器。,(7),SPITXBUF,:SPI,串行发送缓冲寄存器。,(8),SPIDAT,:SPI,串行数据寄存器。,(9),SPIPRI,:SPI,优先级控制。,10.2 SPI,操作,下图是,SPI,用于,两个控制器,(一个主控制器和一个从控制器)通信的典型连接方式。,SPICLK,SPICLK,SPISIMO,SPISIMO,SPISTE*,SPISTE*,SPISOMI,SPISOMI,主出,/,从入,SPI,选通,主入,/,从出,串行时钟,SPI,主,/,从控制器连接,SPI,主控制器,SPI,从控制器,SPI,可工作于,主模式,或,从模式,。,SPICTL.2,位,-,MASTER/SLAVE,用来选择操作模式和,SPICLK,的源。,(1)主模式,将,Master,的数据传送给,Slave,,数据传送完毕,申请中断。,(2)从模式,将,Slave,的数据传送给,Master,,数据传送完毕,申请中断。,SPICLK,SPIMOSI,SPICLK,时钟,SPIMOSI,SPICLK,SPIMISO,SPISTE,SPICLK,时钟,SPIMISO,SPISTE,由图知,,SPI,有,两种,工作模式:,主模式,和,从模式,,操作模式由,SPICTL.2(MASTER/SLAVE,位),决定。,数据的,发送方式有三种,:,(,1,)主控制器发送数据,从控制器发送伪数据;,(,2,)主控制器发送数据,从控制器发送数据;,(,3,)主控制器发送伪数据,从控制器发送数据。,主控制器,控制,SPICLK,信号,,通过发出,SPICLK,信号启动数据发送,,从控制器,则通过,检测,SPICLK,信号接收数据。,一个主控制器可以连接多个从控制器,,但是,一次只允许一个从控制器,给,主控制器发送数据,10.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),。,10.4,数据格式,SPI,通信时,要,发送的数据,从,SPIDAT,寄存器,的,MSB,依次移出,,接收的数据,则从,SPIDAT,的,LSB,依次移入。,SPI,数据字符位数,(,1-16,位),由,SPICCR.3-0,指定,。,当,写入,SPIDAT,或,SPITXBUF,时,数据必须是,左对齐,的。,数据,从,SPIRXBUF,读,回时是,右对齐,的。,LSB,移位寄存器,SPIDAT,MSB,10.5 SPI,波特率和时钟模式,SPI,模块支持,125,种,不同的波特率和,4,种不同的时钟模,式,。,SPI,最大波特率,为,CLKOUT,频率的四分之一。,10.5.1,SPI,波特率的确定,SPI,波特率取决于,CLKOUT,和,SPIBRR,的值。,(,1,)对于,SPIBRR=,3-127,SPI,波特率,=CLKOUT/(SPIBRR+1),(,2),对于,SPIBRR=,0-2,SPI,波特率,=CLKOUT/4,SPI,最大波特率,=CLKOUT/4=10MHz,10.5.2,SPI,时钟模式,SPI,有,四种时钟模式,,由,CLOCK POLARITY,和,CLOCK,PHASE,位控制。,CLOCK POLARITY,位:选择时钟的有效沿是上升沿还是下降沿;,CLOCK PHASE,位,:,选择是否有半个时钟周期的延时。,(1)下降沿,无延时:,SPI,在时钟下降沿发送数据,在时钟的上升沿接收数据;,(2)下降沿,有延时:,SPI,在时钟下降沿前半个周期发送数据,在时钟的下降沿接收数据;,(3)上升沿,无延时:,SPI,在时钟上升沿发送数据,在下降沿接收数据;,(4)上升沿,有延时:,SPI,在时钟上升沿前半个周期发送数据,在上升沿接收数据。,4,种时钟模式如图所示。,SPICLK,周期数,SPICLK,(无延时的上升沿),SPICLK,(有延时的上升沿),SPICLK,(无延时的下降沿),SPICLK,(有延时的下降沿),SPISIMO/,SPISOMI,接收,锁存点,进入从方式,SPISTE,10.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,以,确定接收的数据。,SPI,应用实例(控制串行,D/A),DAC714,是,美国,BB,公司,生产的,16,位,具有串行接口的数模转换器,,电压输出型,输出范围是,-10V+10V,。,串行时钟,串行数据输入引脚,数据更新使能引脚,数据输入使能引脚,DAC714,控制时序,DSP,与,DAC714,连接框图,SPICLK,SPICLK,SPISIMO,SDI,A0*,SPISTE*,A1*,SPISOMI,串行数据,SPI,选通,串行时钟,2407,DAC714,UP/DA,由控制时序图可知,,SPI,时钟模式应为下降沿,无延时。即,SPI,在时钟,下降沿,发送数据,,在时钟的,上升沿,将数据,锁存到,DAC714,。,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服