1 / 16

SPI (Serial Peripheral Interface Module)

SPI (Serial Peripheral Interface Module). Tsinghua Motorola MCU and DSP Application Center June 26,2002. SPI 框图. SPI 特性. 全双工,三线同步传送 机或从机工作方式 使用相互独立的发送和接收数据寄存器实现双缓存( double-buffered )操作 四种可编程主机移位频率(最大可达总线频率的二分之一) 从机的最大移位频率等于总线频率 可编程时钟极性和相位 发送结束中断标志 SPTE ( SPI transmitter empty )

ciqala
Download Presentation

SPI (Serial Peripheral Interface Module)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SPI (Serial Peripheral Interface Module) Tsinghua Motorola MCU and DSP Application Center June 26,2002 No.1

  2. SPI框图 No.2

  3. SPI特性 • 全双工,三线同步传送 • 机或从机工作方式 • 使用相互独立的发送和接收数据寄存器实现双缓存(double-buffered)操作 • 四种可编程主机移位频率(最大可达总线频率的二分之一) • 从机的最大移位频率等于总线频率 • 可编程时钟极性和相位 • 发送结束中断标志SPTE(SPI transmitter empty) • 接收结束中断标志SPRF(SPI receiver full) • 工作方式设置错误中断标志(MODF) • 溢出错误中断标志(OVRF) • 可编程线或模式 • 与I C兼容:一个SPI子系统可以在软件控制下构成复杂或简单配置。 • 一个主MCU和几个从MCU • 几个MCU相互连接构成一个多主机系统 • 一个主MCU和一个或多个从属外设 No.3

  4. 数据流动 在一次SPI传送发生时,一个8位字节通过主出从入MOSI(master out slave in)引脚移位输出,同时另一个8位字节从主入从出MISO(master in slave out)引脚输入。这个传送过程可以理解为主机的8位移位寄存器和从机电路联合组成了一个16位循环移位寄存器,在每次传送发生时, 这个16位分布式移位寄存器就循环移动8位,这样就完成了主机和外设之间的数据交换。 No.4

  5. SPI控制寄存器(SPCR) SPRIE:SPI接收中断允许位DMAS:DMA选择位,0=禁止SPRF和SPTE的DMA服务请求SPMSTR:SPI主机位,1=选择SPI主机模式CPOL:时钟奇偶位,1=选择低电平有效时钟CPHA:时钟相位位,1=从机以SPSCK的第一次沿跳变为移位开始信号, 0=从机以SS的下降沿作为移位开始信号SPWOM:SPI线或模式位,1=MOSI和MISO引脚为线或模式,0=普通推拉模式SPE:SPI允许位,1=允许SPI模块SPTIE:SPI发送中断允许位,1=允许发送中断 No.5

  6. SPI引脚功能描述 SPI系统用D端口的四根I/O引脚来实现数据传送:串行时钟SPSCK/PD3(spi serial clock)、主入从出MISO/PD1、从入主出MOSI/PD2和低有效从机片选SS/PD0(slave select)。当不用SPI功能时,这四根引脚就被配置成通用并行输入线。 • 串行数据引脚(MISO,MOSI) • 串行时钟(SPSCK) • 外设片选(SS) No.6

  7. 串行数据引脚(MISO,MOSI) 主入从出(MISO)和主出从入(MOSI)用来串行发送和接收数据,数据格式为MSB在前,LSB在后。当SPI被置成主机模式时,MISO是数据输入线,MOSI是数据输出线。 No.7

  8. 串行时钟(SPSCK) SPSCK是数据流动的同步信号,对设备通过MOSI和MISO进行的数据输入、输出进行同步。SPSCK信号只能由处于主机模式的MCU发出,对处于从机地位的MCU或外设,SPSCK为输入信号。 在主机模式下,SPSCK信号来源于内部MCU总线时钟。当主机发起一次传送时,SPSCK线上会自动产生8个时钟周期。在主机与从机之间,数据移位发生在SPSCK信号的一个跳变上,待数据稳定后在另外一个跳变进行采样(sample)。SPI状态控制寄存器SPSCR的SPR0和SPR1两位选择SPSCK的时钟频率,共有4种选择。主机和从机之间必须遵守同样的时序模式,SPI控制寄存器SPCR中的CPOL和CPHA可以控制时序模式。 No.8

  9. 外设片选(SS) SS引脚的使用对于主机和从机是不同的:在从机模式下,SS是一次数据传送开始前允许从机SPI工作的片选信号;对于主机模式,一般都要将SS线吊成高电平。 No.9

  10. 数据/时钟时序图(CPHA=0) No.10

  11. 数据/时钟时序图(CPHA=1) No.11

  12. SPI状态控制寄存器(SPSCR) SPRF:SPI接收结束位,1=接收数据寄存器满ERRIE:错误中断允许位,1=允许MODF和OVRF产生CPU中断请求OVRF:溢出标志位,1=溢出MODF:模式设置错误标志位,1=SS引脚逻辑电平不正确SPTE:SPI发送结束位,1=发送数据寄存器空MODFEN:模式设置错误检测允许位,1=允许MODF标志的置起SPR1/SPR0:SPI移位频率选择位 No.12

  13. SPI时钟频率 计算公式为: No.13

  14. SPI数据寄存器(SPDR) SPI数据寄存器由两个独立的数据寄存器:发送数据寄存器(只写)和接收数据寄存器(只读)组成,二者共用一个内存地址($0012)。 当CPU向SPDR执行写操作时,数据被写入发送数据寄存器中;当CPU向SPDR执行读操作时,接收数据寄存器中的数据被读出。 No.14

  15. SPI范例 SPI的初始化代码 : …… LDA #%00111010 ;禁止中断,主机方式,时钟低电平有效, ;启动移位脉冲,普通推拉模式,允许SPI STA SPCR LDA #%00000000 ;禁止中断,禁止错误检测,时钟分频数为2 STA SPSCR …… SPI发送数据的代码 : BRCLR B_SPTE,SPSCR,* ;确认发送数据寄存器为空 LDA #%00111000 ;向SPI液晶送“00111000" STA SPDR …… No.15

  16. SPI应用举例 ——LCD No.16

More Related