DSP原理及应用课件作者郑玉珍DSP原理及应用_第08章节.pptVIP

  • 13
  • 0
  • 约8.45千字
  • 约 39页
  • 2017-11-12 发布于广东
  • 举报

DSP原理及应用课件作者郑玉珍DSP原理及应用_第08章节.ppt

串行外设接口Serial Peripheral Interface(SPI)是一个高速的同步串行输入输出接口,其通信速率和通信数据长度都是可编程; SPI接口通常用于DSP与外设之间的通信; SPI的主从工作模式支持多机通信:其中一个SPI接口设备必须设置成主机(Master)模式,其他SPI接口设置为从机(Slave)模式; 整个SPI通信网络的时钟由主设备总线时钟提供。 SPI接口的四根信号线 SPI模块可以工作在主机模式和从机模式; 有125种可编程的波特率,最大值取决于SPI引脚上的I/O最大速率; 数据字长可编程,可以是1~16位数据; 有4种时钟模式,由时钟极性和时钟相位控制:分别是无相位延时的下降沿、有相位延时的下降沿、无相位延时的上升沿和有相位延时的上升沿; SPI的接收和发送可同时操作,由软件设置禁止发送功能;发送和接收操作可以通过中断或查询方式实现; 增强的SPI功能包括16级的发送/接收FIFO,以及延时发送控制功能。 ’28x的SPI信号 主设备通过发送SPICLK信号启动数据发送操作,主从设备都在SPICLK的同一个跳变沿将数据移出移位寄存器,在SPICLK的另一个跳变沿将数据锁存。 主从设备是同步进行发送和接收操作的。对于发送的数据,可以是有意义的,也可以是无意义的伪数据,由软件设置 ; 主机可以在任何时刻启动数据发送操作,因为主机控制着SPICLK信号。 SPI的主机模式 :MASTER/SLAVE =1 数据在SPIRXBUF寄存器中采用右对齐的方式存储 ; 当指定位数的数据全部移位进入SPIDAT后,SPIDAT中的内容将转移到SPIRXBUF寄存器中 ,SPI INT FLAG位(SPISTS.6)置1 ,若SPITXBUF中没有有效数据,则当SPIDAT寄存器中的数据移出后,SPICLK时钟信号停止 ; 如果SPI INT ENA位(SPICTL.1)被置1,则产生中断请求 ; 引脚作为从机的片选信号,在主机发送数据给从机之前,该引脚被拉至低电平,完成数据发送后,该引脚被置为高电平 。 从机接收数据时,SPI等待来自主机的SPICLK信号,在SPICLK适当的跳变沿,就将SPISIMO引脚上的数据移入到SPIDAT寄存器中; 如果从机在接收数据的同时要发送数据的话,则必须在SPICLK开始之前把数据写入到SPITXBUF或SPIDAT寄存器中; 当TALK位(SPICTL.1)为零时,禁止数据发送,输出引脚SPISOMI被置为高阻态; 如果在发送数据期间将TALK位清零,则当前的字符发送必须完成 。 TALK位的存在使得SPI总线上允许同时连接多个从机,但在任一时刻只能选择一个从机驱动SPISOMI; 作为从机选择引脚,该引脚上的低电平有效信号允许从机发送数据,高电平信号将使从机的SPIDAT寄存器停止工作,并将串行输出引脚置为高阻态。这也使得通信网络上允许同时连接多个从机,而每次只选择一个从机工作。 SPI的波特率 SPI的时钟模式 所有SPI从机采用相同的接收方式 ; 时钟极性位(SPICCR.6)和时钟相位位(SPICTL.3)控制SPICLK引脚产生四种不同的时钟模式; 时钟极性位选择有效的跳变沿,如上升沿或下降沿; 时钟相位位选择是否延时半个周期 。 复位时,SPI初始化如下: 配置为从机模式(MASTER/SLAVE=0); 禁止发送功能(TALK=0); 在SPICLK信号的下降沿锁存输入数据; 字符长度设置为1位; 禁止SPI中断; SPIDAT内数据复位到0; SPI模块引脚设置为通用输入输出引脚功能。 在SPI通信过程中,一定不要改变SPI的配置 可以按以下步骤修改SPI配置: 第一步:清除SPI SW RESET位(SPICRR.7),强制SPI进入复位状态; 第二步:按期望值初始化SPI配置、格式、波特率和引脚功能; 第三步:将SPI SW RESET位(SPICRR.7)置1,将SPI从复位状态退出; 第四步:写数据到SPIDAT或SPITXBUF(主机模式下将启动通信过程); 第五步:数据发送完成后(SPISTS.6=1),读取SPIRXBUF,确定接收到的数据。 SPI端口的操作通过设置SPI模块的寄存器实现。‘28x的SPI具有16位发送和接收能力,所有的数据寄存器都是16位宽度 SPI 控制寄存器 SPICCR @ 0x007040 SPI 工作控制寄存器 SPICTL @ 0x007041 SPI 状态寄存器 SPISTS @ 0x007042 SPI FIFO 发送寄存器 SPIFFTX @ 0x00704A SPI FIFO 接收寄存器 SPIFFRX @ 0x

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档