SPI协议
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
External Signal Description
Memory Map/Register Definition
Address Use Access
$___0 $___1
$___2 $___3 $___4 $___5
SPI Control Register 1 (SPICR1) SPI Control Register 2 (SPICR2)
SPI Block Diagram
Features
主模式和从模式 双向模式 从选择输出 模式错误标志,具有CPU中断能力 双缓冲数据寄存器 串行时钟的极性和相位可编程 对SPI在等待模式期间的操作控制
Modes of Operation
• Run Mode
基本运行模式
SPICR1
SPTIE — SPI Transmit Interrupt Enable(SPI传输中断使能位) 如果SPTEF标志位置位,则该位控制SPI传输中断。 1 = SPI中断使能 0 = SPI中断禁用
SPICR1
MSTR — SPI Master/Slave Mode Select Bit(SPI主/从模式选择位) 该位用于选择SPI工作在主模式还是从模式。让SPI从主模式转换到从模式 或者反过来也可以强制SPI系统进入空闲状态。 1 = SPI工作在主模式 0 = SPI工作在从模式
SPICR2
双向引脚配置
SPI Baud Rate Register(SPIBR)
Register Address: $___2
Read : anytime Write : anytime; writes to the reserved bits have no effect
Байду номын сангаас
SPIBR
SPPR2–SPPR0 — SPI Baud Rate Preselection Bits (波特率预分频位) SPR2–SPR0 — SPI Baud Rate Selection Bits ( SPI波特率选择位)
SPIDR
当SPIF置位时,SPIDR中的接收的数据是有效的。 如果SPIF清零且接收到一个字节,接收到的字节将从接收移位寄存器 传送到SPIDR,且SPIF被置位。 如果SPIF置位且未服务,并且接收到第二个字节,则第二个接收字节 在接收移位寄存器中保持为有效字节直到下一次传输开始。 期间在SPIDR 中的字节不更改。 如果SPIF置位且接收移位寄存器中有一个有效字节,并且在第三次传 输开始前SPIF服务,则接收移位寄存器中的字节将传输到SPIDR中,SPIF 保持置位。 如果SPIF置位且接收移位寄存器中有一个有效字节,并且在第三次传 输开始后SPIF服务,则接收移位寄存器中的字节变为无效,并且不会传 输到SPIDR中。
SPICR1
CPHA — SPI Clock Phase Bit(SPI时钟相位控制位) 该位用于选择SPI时钟格式。在主模式下,该位的更改将中止正在进行的 传输,并强制SPI系统进入空闲状态。 1 = 在每个周期的第二个时钟沿采样数据 0 = 在每个周期的第一个时钟沿采样数据
SPICR1
SPICR1
Register Address: $___0
Read : anytime Write : anytime
SPICR1
SPIE — SPI Interrupt Enable Bit(SPI中断使能位) 如果SPIF或MODF状态标志位置位,则该位控制SPI中断请求。 1 = SPI中断使能 0 = SPI中断禁用
SPIDR
Reception with SPIF serviced in time
SPIDR
Reception with SPIF serviced too late
Functional Description
Master Mode Slave Mode Transmission Formats SPI Baud Rate Generation Special Features Error Conditions Low Power Mode Options
SPI Baud Rate Register (SPIBR) SPI Status Register (SPISR) Reserved SPI Data Register (SPIDR)
Read / Write
Read / Write
$___6 $___7
Reserved Reserved
NOTES: 1.某些位是不可写的。 2.对该寄存器的写操作将被忽略。 3.从此寄存器读取全部返回零。
SPICR2
SPISWAI — SPI Stop in Wait Mode Bit(SPI等待模式停止位) 该位用于在等待模式下降低功耗。 1 = 在等待模式下停止产生SPI时钟 0 = 在等待模式下SPI时钟正常工作
SPICR2
SPC0 — Serial Pin Control Bit 0(串行控制位0) 该位使能双向引脚配置。 在主模式下,该位的更改将中止正在进行的传 输,并强制SPI系统进入空闲状态。
Register Descriptions
SPI Control Register 1
SPI Control Register 2 SPI Baud Rate Register SPI Status Register SPI Data Register
SPI Control Register 1(SPICR1)
SPIBR
SPI Status Register(SPISR)
Register Address: $___3
Read : anytime Write : has no effect
SPISR
SPIF — SPIF Interrupt Flag(SPIF中断标志位) 该位在接收到的数据字节传输到SPI数据寄存器后置位。 该位通过 读取SPISR寄存器(SPIF置位),随后读SPI数据寄存器来清零。 1 = 新数据已复制到SPIDR 0 = 传输尚未完成
Master Mode
Master Mode
注意:在主模式下,CPOL,CPHA,SSOE,LSBFE,MODFEN,SPC0及 BIDIROE(SPC0置位)的变化,SPPR2-SPPR0及SPR2-SPR0的更改将中止正 在进行的传输,并强制SPI进入空闲状态。 远处的从机无法检测到这一点, 因此主机必须保证远处从机进入空闲状态。 另外,在从模式下,CPOL,CPHA,SSOE,LSBFE,MODFEN,SPC0 及BIDIROE(SPC0置位)的更改,将破坏正在进行的传输,必须避免。
General
Master Mode
当MSTR置位时,SPI工作在主模式。 只有SPI主机可以传输数据。 数 据传输通过对主机SPI数据寄存器写入开始。 如果移位寄存器为空,则字 节立即传送到移位寄存器。 字节在串行时钟的控制下开始在MOSI引脚上 移出。
• S-clock SPI波特率寄存器中的波特率选择位SPR2,SPR1和SPR0及波特率预分 频位SPPR2,SPPR1和SPPR0控制波特率发生器及决定传输速度。 SCK引脚 就是是SPI时钟输出。 主机的波特率发生器通过SCK引脚控制外围从机的 移位寄存器。
SPISR
SPI Data Register(SPIDR)
Register Address: $___5
Read : anytime; normally read only when SPIF is set Write : anytime
SPIDR
SPI数据寄存器既是SPI数据的输入寄存器也是数据的输出寄存器。当对该 寄存器进行写操作时允许将数据字节排队并传输。当SPI被配置为主机时, 排队的数据字节在上一个传输完成后立即传输。SPISR 中的SPTEF 用于表 明SPIDR是否准备好接收新数据。
SPICR1
SPE — SPI System Enable Bit(SPI系统使能位) 该位用于控制SPI系统使能和SPI端口引脚用于SPI系统功能。 如果SPE清零, SPI被禁用并强制进入空闲状态,SPISR寄存器中的状态位被复位。 1 = SPI使能,端口引脚用于SPI功能 0 = SPI禁用(低功耗)
SPICR1
CPOL — SPI Clock Polarity Bit(SPI时钟极性控制位) 该位选择反相或非反相SPI时钟。 要在SPI模块之间传输数据,SPI模块必 须具有相同的CPOL值。 在主模式下,该位的更改将中止正在进行的传输, 并强制SPI系统进入空闲状态。 1 = 低电平时钟有效,在空闲状态SCK为高电平。 0 = 高电平时钟有效,在空闲状态SCK为低电平。
SPI总线协议
2016.11.29
Contents
Introduction
Functional Description
Memory Map/Register Definition
External Signal Description
Preface
Terminology:
Acronyms and Abbreviations SPI SCK MOSI MISO MOMI SISO Serial Parallel Interface Slave Select Serial Clock Master Output, Slave Input Master Input, Slave Output Master Output, Master Input Slave Input, Slave Output
LSBFE — LSB-First Enable(最低有效位使能位) 该位不影响数据寄存器中MSB和LSB的位置。 对数据寄存器的读和写包含 MSB( Bit 7 )。在主模式下,该位的更改将中止正在进行的传输,并强 制SPI系统进入空闲状态。 1 = 数据传输从最低有效位开始。 0 = 数据传输从最高有效位开始。
• Wait Mode
SPI在等待模式下是一个可配置的低功耗模式,被SPICR2寄存器中的 SPISWAI位控制。在等待模式,如果SPISWAI位清零,SPI等同运行模式。 如果SPISWAI位置位,SPI进入低功耗模式,SPI时钟关闭。如果SPI 被配置 为主机,则任何传输都被停止,但在CPU进入运行模式后恢复。如果SPI 被配置为从机,则继续接收和发送字节,以使从机与主机保持同步。
SPI Control Register 2(SPICR2)
Register Address: $___1
Read : anytime Write : anytime; writes to the reserved bits have no effect
SPICR2
SPICR2
BIDIROE — Output enable in the Bidirectional mode of operation (双向模式输出使能位) 当处于双向工作模式(SPC0置位)时,该位控制SPI的MOSI和MISO输出 缓冲器。在主模式下,该位控制MOSI端口的输出缓冲器。在从模式下该 位控制MISO端口的输出缓冲器。在主模式下,且SPC0置位时,该位的更 改将中止正在进行的传输,并强制SPI进入空闲状态。 1 = 输出缓冲器使能 0 = 输出缓冲器禁用
• Stop Mode
SPI在停止模式下是空闲的,以降低功耗。 如果SPI被配置为主机,则 任何传输都被停止,但在CPU进入运行模式后恢复。 如果SPI被配置为从 机,则继续接收和发送字节,以使从机与主机保持同步。
External Signal Description
SPI模块共有4个外部引脚: ● MOSI 该引脚用于当SPI被配置为主机时将数据传出SPI,当被配置为从机时 接收数据。 ● MISO 该引脚用于当SPI被配置为从机时将数据传出SPI,当被配置为主机时 接收数据。
SPISR
SPTEF — SPI Transmit Empty Interrupt Flag(SPI传输空中断标志) 如果置位,该位表明传输数据寄存器为空。要清零该位并将数据放入传 输数据寄存器,SPISR必须被读且SPTEF = 1,然后写入SPIDR。任何写入 SPIDR没有读SPTEF = 1,会被忽略。 1 = SPI数据寄存器为空 0 = SPI数据寄存器不为空