DSP课件第九章串行外设接口(SPI).ppt_第1页
DSP课件第九章串行外设接口(SPI).ppt_第2页
DSP课件第九章串行外设接口(SPI).ppt_第3页
DSP课件第九章串行外设接口(SPI).ppt_第4页
DSP课件第九章串行外设接口(SPI).ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第九章 串行外设接口模块Serial Peripheral Interface(SPI),2,9.1 概述,SPI模块是一个高速、同步串行I/O口。允许串行位流(116位)移入或移出器件。 SPI用于和外设之间的通信。 典型的应用:移位寄存器、显示驱动器、ADC以及日历时钟等I/O器件的扩展。 支持多处理器通信。,返回,3,SPI模块的特性包括: 4个外部引脚: SPISOMI:SPI从机输出/主机输入引脚; (SPI slave-output/master-input pin) SPISIMO:SPI从机输入/主机输出引脚; (SPI slave-input/master-output pi

2、n) :SPI从机选通使能引脚; ( SPI slave transmit-enable pin) SPICLK:SPI串行时钟引脚。 (SPI serial-clock pin),9.1 概述,4,两种工作方式:主机、从机。 波特率:125种可编程。 数据字长:116个数据位。 4种时钟方案: (1)无延时的下降沿 (2)有延时的下降沿 (3)无延时的上升沿 (4)有延时的上升沿 同时接收和发送操作(发送功能可软件禁止) 发送和接收操作可通过中断或查询方法来完成。,9.1 概述,5,接口结构框图(从机方式),6,9.2 串行外设接口操作,串行外设接口的操作包括:操作方式、中断、数据格式、时钟

3、源和初始化。 9.2.1 操作介绍 两机之间的连接。 主机输出SPICLK信号启动数据传送。主机和从机数据在SPICLK的一个边沿移出,在另一个边沿锁存。,返回,7,图9.2 SPI主机/从机的连接,8,MASTER/SLAVE:选择工作方式和SPICLK时钟来源。 1.主机方式 SPICLK引脚提供串行通信时钟。数据从SIMO引脚输出在SOMI引脚输入。 波特率寄存器(SPIBRR)决定发送和接收的位数率。 向SPIDAT或SPITXBUF写入数据时就启动了SPISIMO引脚上的数据发送,先发送最高位。同时,接收数据通过SPISOMI引脚移入SPIDAT的最低位。选定数量位发送结束,则整个数

4、据发送完毕。收到的数据传送到SPIRXBUF,右对齐供CPU读取。,9.2.2 的主机和从机方式,9,指定数量的数据位通过SPIDAT移位后,发生下列事件: SPIDAT中的内容传送到SPIRXBUF中; SPI INT FLAG位置位; 如果SPITXBUF中有有效数据(TXBUF FULL标志位指示),则这个数据被传送到SPIDAT中并被发送,全部数据移出SPIDAT后,SPICLK时钟停止; 如果SPI INT ENA使能,将产生中断。,9.2.2 的主机和从机方式,10,数据从SPISOMI引脚移出, SPISIMO引脚移入,SPICLK引脚输入串行时钟。 发送数据:当主机SPICLK

5、边沿合适时,从机中SPIDAT数据移出。全部数据移出后,SPITXBUF数据传送到SPIDAT中。 接收数据:来自主机的SPICLK信号,将SPISIMO引脚上的数据移入到SPIDAT。如果从机同时发送数据,则在SPICLK信号开始之前把数据写入到SPITXBUF或SPIDAT中。 TALK(SPICTL.1)位清0时,数据传送禁止,从控制器输出引脚(SPISOMI)被置成高阻态。 同一个SPI上可有多个从机,但是任一时刻只能有一个从机起作用。,2.从机方式,9.2.2 的主机和从机方式,11,9.2.3 串行外设接口中断,五个控制位与中断相关: 中断使能位SPI INT ENA(SPICTL

6、.0); 中断标志位SPI INT FLAG(SPISTS.6); 完整数据被移入或移出SPIDAT后, SPI INT FLAG置位,产生中断请求。以下情况之一发生时被清除: 读取SPIRXBUF 软件清除SPI SW RESET位(SPICCR.7); 系统复位。 越限中断使能位OVERRUN INT ENA(SPICTL.4); 越限中断标志位RECEIVE OVERRUN INT FLAG(SPISTS.7); 表明缓冲器接收一个新数据,之前接收的数据已被覆盖。 该位可用以下三种操作清除: 写1到该位 软件清除SPI SW RESET位(SPICCR.7); 系统复位。 中断优先级选择

7、位SPI PRIORITY(SPIPRI.6).,12,9.2.4 数据格式,SPICCR.30(SPI Configuration Control Register)确定数据位数(116位),少于16位数据情况: 写入SPIDAT或SPITXBUF数据须左对齐。 读出SPIRXBUF数据须右对齐。 SPIRXBUF存放最新接收的数据位(右对齐),再加上以前遗留位。 例:发送字符长度为1,且SPIDAT当前值为737Bh.在主机方式下,SPIDAT和SPIRXBUF数据发送前,后的数据格式如下:,13,9.2.4 数据格式,14,9.2.5 波特率设置和时钟方式,SPI支持125种不同的波特率

8、和4种不同的时钟方式。 1.波特率的计算 对于SPIBRR=3127时 SPI波特率SYSCLK/(SPIBRR+1) SPIBRR=(SYSCLK/SPI波特率)1 对于SPIBRR=0,1或2时 SPI波特率SYSCLK/4,15,2、SPI时钟方式 时钟极性位CLOCK POLARITY(SPICCR.6)选择有效沿;时钟相位位COLCK PHASE(SPICTL.3)选择时钟1/2周期延时。 四种时钟方式: 无延时下降沿:SPICLK信号下降沿建立数据,上升沿采集数据。 有延时下降沿:SPICLK信号下降沿之前的半个周期时建立数据,下降沿采集数据。 无延时上升沿:SPICLK信号上升沿

9、建立数据,下降沿采集数据。 有延时上升沿:SPICLK信号上升沿之前的半个周期建立数据,上升沿采集数据。,9.2.5 波特率设置和时钟方式,16,表9.1 串行外设接口时钟方式选择,图9.3 串行外设接口时钟方式时序图,17,9.2.6 串行外设接口的初始化,当系统复位时SPI进入下列缺省配置: 配置成从机模式(MASTER/SLAVE=0); 禁止发送功能(TALK=0); SPICLK信号下降沿锁存输入数据; 字符长度为1位; 禁止SPI中断; SPIDAT中的数据为0000h; SPI的四个引脚被配置成一般的I/O功能。,18,为了改变SPI的配置,应进行如下操作: 将SPI SW RE

10、SET位清0,强制SPI进入复位状态; 初始化SPI配置、数据格式、波特率和所需引脚的功能; 将SPI SW RESET位置为1,使SPI进入工作状态; 写数据到SPIDAT或SPITXBUF中(启动主机方式下的通信 过程); 数据传送完成后,即SPI INT FLAG时,读取SPIRXBUF中 的数据,9.2.6 串行外设接口的初始化,19,9.2.7 数据传送示例,SPI数据传送的时序图如图9.5所示,图中表明在使用对称的SPICLK信号时两个SPI器件之间进行5位字符的SPI数据传送。 图中给出的SPI数据传送的时序图只适用于串行位流最大为8位的DSP器件,对于具有串行位流最大为16位的

11、240 x系列不适用,但是我们也可从图中了解到SPI数据传送的基本情况。,20,21,注: A:从控制器将0D0H(11010000)写入到SPIDAT. B:主控制器使能从控制器的 引脚。 C:主控制器将58H(01011000)写入到SPIDAT启动传送过程。 D:第一个字段传送完成,设置中断标志。 E:从控制器从SPIRXBUF中读取数据(0BH),中断标志复位。 F:从控制器将4CH(01001100)写入到SPIDAT中 G: 主控制器将6CH(011011000写入到SPIDAT中启动传送过程。 H:主控制器从SPIRXBUF寄存器中读取1AH。中断标志复位。 I:第二个字节传送完

12、成,设置中断标志。 J:主、从控制器分别从相应的SPIRXBUF寄存器中读取89H和8DH。在用户程序屏蔽掉了未使用的位之后,主、从控制器分别接收到09H和0DH。 K:主控制器将从控制器的 引脚的电平置高(无效)。,22,9.3 串行外设接口控制寄存器,串行外设接口总共有9个控制寄存器地址位于7040h704Fh之间,,返回,23,表9.2 串行外设接口控制寄存器列表,24,串行外设接口配置控制寄存器(SPICCR)地址7040h (SPI Configuration Control Register),位7 SPI SW RESET。SPI软件复位位。在改变配置前,应把该位清0,并在 恢复

13、操作前把该位置1。 位6 CLOCK POLARITY。移位时钟极性位.具体见表9.1。 0 在SPICLK信号的上升沿输出数据,下降沿输入数据;无数据发送 时,SPICLK保持低电平 1 在SPICLK信号的下降沿输出数据,上升沿输入数据;无数据发送 时,SPICLK保持高电平 位30 SPI CHAR3-SPI CHAR0。数据长度选择位,具体如表9.3所示。,25,表9.3 数据长度选择对照表,26,串行外设接口操作控制寄存器(SPICTL)地址7041h (SPI Operation Control Register),位4 OVERRUN INT ENA。越限中断使能位。 0 禁止越

14、限中断 1 使能越限中断 位3 CLOCK PHASE。SPI时钟相位选择位,具体见表9.1所示。 0 正常的SPI时钟方式 1 延迟半个周期的SPICLK信号 位2 MASTER/SLAVE。SPI主从工作方式选择位。 0 从工作模式 1 主工作模式 位1 TALK。主/从工作方式下发送允许位。 0 禁止发送 在从工作方式下:若以前没有被配置成一般的I/O功能,则引脚SPISOMI将置成高阻态 在主工作方式下:若以前没有被配置成一般的I/O功能,则引脚SPISIMO将置成高阻态 1 允许发送 位0 SPI INT ENA。SPI中断使能位。 0 禁止中断 1 使能中断,27,串行外设接口状态

15、寄存器(SPISTS)地址7042h (SPI Status Register),位7 RECEIVER OVERRUN FLAG。SPI接收越限标志位,表明缓冲器接收一个新数据,之前接收的数据已被覆盖。如果OVERRUN INT ENA置位,则SPI就发生一次中断请求。该位可由以下三种操作来清除: 写1到该位;写0 到SPI SW RESET位;系统复位。 0 无中断请求 1 中断请求 位6 SPI INT FLAG。SPI中断标志位。 0 无中断请求 1 中断请求 位5 TX BUF FULL FLAG。SPI发送缓冲器满标志位。向SPITXBUF写入数据,该位置位。SPITXBUF数据移

16、入SPIDAT后,自动清零。 0 发送缓冲器空 1 发送缓冲器满,28,串行外设接口波特率设置寄存器(SPIBRR)地址7044h (SPI Baud Rate Register),位60 SPI BIT RATE6SPI BIT RATE0。SPI波特率设置位,见波 特率计算( 9.2.5 )。,29,串行外设接口仿真接收缓冲寄存器(SPIRXEMU) (SPI Emulation Buffer Register),位150 ERXB15ERXB0。仿真缓冲器接收的数据。SPIRXEMU寄存器的功能与 SPIRXBUF基本相同,只是读SPIRXEMU时不会清除SPI INT FLAG标志 位

17、。创建该镜像寄存器是为了支持仿真,,30,串行外设接口接收缓冲寄存器(SPIRXBUF) (SPI Serial Receive Buffer Register),位150 RXB15RXB0。一旦SPIDAT收到完整的数据,该数据就被传送到SPIRXBUF供CPU读取,同时SPI INT FL位置位。,31,串行外设接口发送缓冲寄存器(SPITXBUF)地址7048h (SPI Serial Transmit Buffer Register) 存储一个待发送的数据。写数据到SPITXBUF将置位TX BUF FULL标志位,正在发送的数据发送完毕, SPITXBUF中的数据自动装入SPIDA

18、T中,并清除发送缓冲器满TX BUF FULL标志位。如果当前发送没有被激活,则SPITXBUF中的数据将传送到SPIDAT中且TX BUF FULL不置位。 在主机方式下,如果发送没有被激活,则写入数据到SPITXBUF时将启动发送,同时SPITXBUF中数据将传送到SPIDAT中。,位150 TXB15TXB0。发送的数据。,Note: Writes to SPITXBUF must be left-justified.,32,串行外设接口数据移位寄存器(SPIDAT)地址7049h (SPI Serial Data Register) SPIDAT寄存器中的数据在连续个SPICLK周期中被移出去(最高位)。移出的SPI的每一位(最高位)的同时,将有一位移入到移位寄存器的最低位。,位150 SDAT15SDAT0。串行数据。,33,串行外设接口中断优先级控制寄存器(SPIPRI) (SPI Priority Control Register),位6 SPI PRIORITY。SPI中断优先级选择位。 0 高优先级中断请求 INT1级 1 低优先级中断请求 INT5级 位54 SPI SUSP SOFT,SPI SUSP FREE。SPI仿真挂起时的操作控制位。 00 一旦仿真挂起,立即停止 10 一旦仿真挂起,在当前的接收或发送完成后才

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论