第10章节串行外设接口SPI.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章节串行外设接口SPI

山东大学控制学院 张东亮 思考题与习题 SPI接口有哪些用途? 如何使用SPI接口? * 第10章 串行外设接口SPI 10.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显示驱动器等外部芯片的扩展。 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用于两个控制器(一个主控制器和一个从控制器)通信的典型连接方式。 SPI可工作于主模式或从模式。 SPICTL.2位---MASTER/SLAVE用来选择操作模式和SPICLK的源。 (1)主模式 将Master的数据传送给Slave,数据传送完毕,申请中断。 (2)从模式 将 Slave的数据传送给 Master,数据传送完毕,申请中断。 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读回时是右对齐的。 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=10 MHz 10.5.2 SPI时钟模式 SPI有四种时钟模式,由CLOCK POLARITY 和CLOCK PHASE位控制。 CLOCK POLARITY位:选择时钟的有效沿是上升沿还是下降沿; CLOCK PHASE位:选择是否有半个时钟周期的延时。 (1)下降沿,无延时:SPI在时钟下降沿发送数据,在时钟的上升沿接收数据; (2)下降沿,有延时:SPI在时钟下降沿前半个周期发送数据,在时钟的下降沿接收数据; (3)上升沿,无延时:SPI在时钟上升沿发送数据,在下降沿接收数据; (4)上升沿,有延时:SPI在时钟上升沿前半个周期发送数据,在上升沿接收数据。 4种时钟模式如图所示。 10.6 SPI的复位和初始化 系统复位使SPI引脚功能被选定为通用输入,要对SPI的配置

文档评论(0)

ctuorn0371 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档