耗时的英文译语怎么说-how to get away with murder


2023年4月1日发(作者:俞敏洪励志演讲全集)

SPI协议翻译

专有名词

第一章、简介

图1-1概述了SPI的基本架构。SPI的主要组成部分是状态、控制盒数据寄存

器,移位逻辑,波特率发生器,主从控制逻辑和端口控制逻辑。

图1-1SPI框图

1.1概述

SPI模块允许在MCU和外设之间进行双工,同步,串行通信。软件可投票

决定SPI的状态标志或者说SPI的操作可以被中断。

1.2特性

SPI包含这些独特的特性:

(1)主模式和从模式

(2)双向模式

(3)从选择输出

(4)CPU的模式错误标志中断能力

(5)双缓冲数据寄存器

(6)串行时钟的极性和相位可编程

(7)对SPI在等待模式期间的操作控制

1.3各种模式的操作

SPI有三种工作模式,运行,等待和停止模式。

(1)运行模式

这个是基本运行模式

(2)等待模式

SPI运行在等待模式的时候是一个可配置的低功耗的模式,被SPICR2中

的SPISWAI位控制。在等待模式下,如果SPIWAI位是清0的,SPI就像运

行在运行模式下一样。如果SPIWAI位是置位的,SPI就会进入功率保持状

态,SPI的时钟产生被关闭。如果SPI被配置成一个主机,任何传输都被停

止,但是当CPU进入运行模式的时候将重新开始。如果SPI被配置成一个

从机,接收和传输一个byte继续,所以从机一直与主机保持同步。

(3)停止模式

SPI在这个模式下为了减少功耗是保守的(低功耗)。如果SPI被配置成一

个主机,任何传输都会被停止,当CPU进入运行模式后会继续。如果SPI

被配置成一个从机,接收和传输一个byte继续,所以从机一直保持与主机

同步。

这些只是高层面上的说明,详细的模式操作说明被包含在4.8低功耗模式设置。

第二章、外部信号说明

2.1概述

本节列出的名称和端口包括所有输入和输出,或者各种可能性,芯片之间的

连接。SPI模块有4个外引脚。

2.2详细的信号的描述

2.2.1MOSI

当SPI被配置成主机时这个引脚被用于传输数据,被配置成从机的时候这个

引脚被用于接收数据。

2.2.2MISO

当SPI被配置成从机时这个引脚被用于传输数据,被配置成主机的时候这个

引脚被用于接收数据。

2.2.3

这个引脚是用来从SPI主模块输出选择信号到另一个外设与一个数据传输发

生时,其配置为主机和当SPI配置为从机其作为输入接收从选择信号。

2.2.4SCK

这个引脚是主机的时钟输出,在从机这个引脚用于接海客谈瀛洲 收主机发来的时钟信号。

第三章、存储器分布图/寄存器定义

这章提供一个对于SPI的地址空间和寄存器使用的详细说明。

SPI的内存映射在表3-1中。该地址列表包含每个寄存器基址和偏移地址。基

地址在SOC级别定义和偏移地址是在模块级别的定义。读取该保留位返回零点

和写入保留位没有影响。

表3-1模块地址映射

注释:

1、不能对某些位进行改写。

2、对这个寄存器的写操作会被忽略。

3、从这个寄存器读数据将全部返回0.

3.1寄存器说明

本章包含对寄存器按地址顺序的说明。每个说明都包含一个标准寄存器图表和

相关图号。寄存器的每一位的详细说明和功能介绍就在寄存器图表之后,按每个

位的编号顺序排列。

3.1.1SPI控制寄存器1

图3-1SPI控制寄存器1

读:任何时间

写:任何时间

SPIE—SPI中断使能位(SPIInterruptEnableBit)

当SPIf或者MODF状态标志是置位时,这个位控制SPI中断请求。

1=SPI允许被中断。

0=SPI不允许被中断。

SPE—SPI系统使能位(SPISystemEnableBit)

这个位为SPI系统使能控制和用于SPI系统功能的SPI端口引脚。如果SPE

是被清0的,SPI被禁用并强制进入idle状态,SPISR寄存器中断状态位被清0;

1=SPI可用,端口引脚用于SPI功能。

0=SPI被禁用(低功耗)。

SPTIE—SPI传输中断使能(SPITransmitInterruptEnable)

如果SPTEF标志是置位的时候,这个位控制SPI传输中断。

1=SPTEF中断启用。

0=SPTEF中断被禁用。

MSTR—SPI主从模式选择位(SPIMaster/SlaveModeSelectBit)

这个位选择SPI工作在主模式还是从模式。让SPI从主模式转换到从模式或者

反过来也可以强制SPI系统进入idle状态。

1=SPI工作在主模式。

0=SPI工作在从模式。

CPOL—SPI时钟极性控制位(SPIClockPolarityBit)

这一位选择一个反向或者不反向的SPI时钟。为了在多个SPI模块之间传输数

据,SPI模块必须有完全相同的CPOL标准。在主模式,这个位的变化将中止一

个传输的进行且强制SPi系统进入idle状态。

1=低电平时钟有效,在idle状态SCK是高电平。

0=高电平时钟有效,在idle状态SCK是低电平。

CPHA—SPI时钟相位控制位(SPIClockPhaseBit)

这个位是被用于选择SPI时钟的格式。在主模式,这个位的变化将中止一个传

输的进行且强制SPI系统进入idle状态。

SSOE—从选择输出使能(SlaveSelectOutputEnable)

只有当SPI为主模式下且MODFEN置位输出特性才会被启用,具体说明在

表3-2中。在主模式,这个位的变化将中止一个传输的进行且强制SPI系统进入

idle状态。0

表3-2输入输出选择

LSBFE—最低有效位使能(LSB-FirstEnable)

这个位不影响MSB和LSB在数据寄存器中断位置。对数据寄存器的读和写一

般冲MSB开始也就是第8位.在主现代文阅读答题方法和技巧 模式,这个位的变化将中止一个传输的进行且

强制SPI系统进入idle状态。

1=数据传输从最低有效位开始。

0=数据传输从最高有效位开始。

3.1.2SPI控制寄存器2

读:任何时候

写:任何时候,写入保留位中是无效的

MODFEN—模式错误使能位(ModuleFaultEnableBit)

这位允许模式错误被检测,如果SPI在主模式下并且MODFEN被清零,然后

那个口没有被用于SPI.在从模式下,那个是有效的仅仅作为一个输入而不

管MODFEN的值。有关MODFEN位对的影响的概述端口引脚配置参考表3-2。

在主模式下,这位改变将终止正在进行的传输并且强制SPI系统进入空闲状态。

1=端口引脚具有模式错误检测功能

0=端口引脚没有被用于SPI

BIDIROE—双向模式输出使能(OutputenableintheBidirectionalmodeof

operation)

这位控制SPI的MOSI和MISO输出输出缓冲器,当在双向模式下(SPC0被

置位)。在主模式下这位控制MOSI端口的输出缓冲器,在从模式下这位控制

MISO端口输出缓冲器。在主模式下,并且SPC0被置位,改变这位将终止正在

进行的传输并且强制进入空闲状态。

1=输出缓冲器使能

0=输出缓冲器没被使能

SPIWAI—SPI停止在等待模式位(SPIStopinWaitModeBi)

这位被用于低功耗当在等待模式的时候

1=当在等待模式的时候停止SPI时钟的产生

0=在等待模式下SPI时钟正常产生

SPC0—串口控制位0(SerialPinControlBit0)

这位使能双向口配置如表3-3.在主模式下,改变这位将终止正在进行的传输并

且强制进入空闲状态。

表3-3双向引脚配置

3.1.3SPI波特率寄存器

图3-3波特率寄存器

读:任何时候

写:任何时候,写入保留位中是无效的

SPPR2–SPPR0—SPI波特率预分频位

SPR2–SPR0—SPI波特率选择为

这些为指定SPI波特率如下表所示.在主模式下,改变这位将终止正在进行的

传输并且强制进入空闲状态。

这个波特率除数方程如下:

BaudRateDivisor=(SPPR+1)*(2**(SPR+1))

该波特率可以用下面的计算公式:

BaudRate=BusClock观潮原文及翻译注释 /BaudRateDivisor

注意:

对于最大,允许的波特率的最大频率,请参考SPI电气规格根据SOC-

指南。

表3-4波特率发生器频率表

3.1.4SPI状态寄存器

表3-4SPI状态寄存器

读:任何时候

写:无效

SPIF—SPIF中断标志位(SPIFInterruptFlag)

在收到一个字节数据已经传输进了SPI数据寄存器时这位被置位。在读SPI状

态寄存器(SPIF置位)接下来一个读访问了SPI数据寄存器时这位被清零。

1=新的数据已经拷贝进了SPI数据寄存器

0=传输还没有完成

SPTEF—SPI传输空中断标志(SPITransmitEmptyInterruptFlag)

如果置位,这位表明那个传输数据寄存器是空的。为了清零这位并且放数据到

传输数据寄存器,SPI状态寄存器必须被读且SPTEF=1.接下来写数据到SPI数

据寄存器。任何写入数据寄存器没有读SPTEF=1,,被有效的忽略。

1=SPI数据寄存器为空

0=SPI数据寄存器不为空

MODF—模式错误标志(ModeFaultFlag)

如果SPI被配置位主机的输入变为低那这个位被置位,SPI控制寄存器2

里的MODFEN位被置位模式错误允许被发现。具体的请参考SPI控制寄存器2

了的MODFEN说明。对SPI状态寄存器读操作后这个标志将被立即清0,接着

写入SPI控制寄存器1.

1=模式错误已经发生

0=模式错误没有发生

3.15SPI数据寄存器

图3-5SPI数据寄存器(SPIDR)

读:任何时间;一般只有在SPIF被置位时才可以读

写:任何时间

SPI数据寄存器既是SPI数据的输出寄存器也是数据段输入寄存器。对这个寄

存器写的时候允许一个数据字节被排队和传输。在SPI被配置成主机的时候,一

个排队队列的数据字节将在上一个数据传输完成后立即传输。在SPISR中的

SPTEF用于表明SPI数据寄存器准备好接受新数据。当SPIF是置位的时候SPIDR

接收的数据时有效的。

如果SPIF被清0且一个字节已经被接收了,被接收的字节从接收移位寄存器

转移到SPIDR中,SPIF被置位。

如果SPIF被置位且没有被服务,在第二个字节已经被接收到的时候,第二次

接收的数据会被有效的保持在接收移位寄存器直到下一次传输开始。期间在

PIDR的字节不会发生改变。

如果SPIF被置位且一个有效的数据被放到接收移位寄存器,此时SPIF在第三

个数据传输前被服务,,这个在接收移位寄存器的字节被传输到SPIDR且SPIF

在此期间为置位(看图3-6在SPIF被及时服务的时候接收)。

如果SPIF被置位且一个有效的数据被放到接收移位寄存器,此时SPIF在第三

个传输开始后被服务,这个字节在接收移位寄存器变成有效且不被传输进SPIDR

(看图3-7在SPIF被服务太晚的时候接收)。

图3-6在SPIF被及时服务的时候接收

图3-7在SPIF被服务太晚的时候接收

第四章、功能描述

4.1一般情况

SPI模块允许在MCU和外设之间进行全双工,同步,串行通信。软件可以置位

SPI状态标志或者SPI操作可以被中断驱动。SPI系统被使能通过设置SPI使能位

(SPE)在SPI控制寄存器1中,当SPE位被置位,四SPI专用接口功能如下:

•从选择(SS)

•串行时钟(SCK)

•主输出/从输入(MOSI)

•主输入/从输出(MISO)

SPI系统主要元件是SPI数据寄存器,在主别董大其一 机中的8位数据寄存器和在从机中的8

位数据寄存器通过MOSI和MISO口连接形成一个分布式的16位寄存器。当一个数

据传输操作被执行,这个16位寄存器通过在主机中的SCK信号串行移位8位,因

此数据在主机和从机之间被交换。写入SPI主机数据寄存器的数据成为了从机的

输出数据,并且读出SPI主机数据寄存器的数据在一个传输操作之后成为从机的

输入数据。

读SPI状态寄存器中SPTEF为1接下来写如数据到SPI数据寄存器放数据到传输

数据寄存器。当一个传输完成并且SPIF被清零,接收到的数据移入到接收数据寄

存器。这个8位数据寄存器扮演着SPI接收数据寄存器对于读,并且作为SPI传输

数据寄存器对于写。单一的SPI寄存器地址被用于读数据从读数据缓冲器和为了

写数据到传输数据寄存器。

时钟相位控制位(CPHA)和时钟极性控制位(CPOL)在SPI控制寄存器1(SPICR1)

选择4种时钟格式中的一种用于SPI系统。CPOL位简单选择一个非反向和反向时

钟。CPHA位用于从两种不同的协议上采样数据奇数SCK沿或者在SCK偶数时钟

沿(看4.4传输格式)那个SPI可以配置作为一个主机或者一个从机。当在SPI控

制控制寄存器1中的MSTR位被置位时,主模式被选择,当在SPI控制控制寄存器

1中的MSTR位被清零时,从模式被选择。

笔记:当有一个接收到的字节在接收移位寄存器中等待的时候CPOL和MSTR改

变将会毁坏接收到的字节并且必须避免。

4.2主模式

当MSTR位置位的时候SPI工作在主模式。只有SPI主机可以开始数据传输。

数据传输通过对主机SPI数据寄存器写入开始。如果移位寄存器为空,这个字节

被立即传输到移位寄存器。这个字节在串行时钟的控制下开始移出到MOSI脚。

S—clock

SPI布特拉寄存器中的波特率选择位SPR2,SPR2和SPR0结合波特率预选位

SPPR2,SPPR1和SPPR0控制波特率发生器和决定传输速度。SCK脚就是SPI

时钟输出。SPI主机的波特率发生器通过SCK脚控制外围从机的移位寄存器。

MOSI,MISO脚

在主模式下,串行数据输出脚(MOSI)和串行数据输入脚(MISO)的功能由SPC0

和BIDIROE控制位决定。

如果MODFEN和SSOE位是置位,脚就被配置成片选输出。输出会在每

个传输期间变成低电平,当SPI在idle状态是变成高电平。

如果MODFEN置位且SSOE清0,脚被配置成检测模式错误的输入脚。如

果变为低电平就表明有另一个主机试图驱动MOSI和SCK线的模式错误。在

这种情况下,SPI会立刻转变成从机模式,通过对MSTE位清0同时禁止从输出

缓冲器MISO(或者在双向模式下的SISO)。所以结果就是所有输出都被禁止了,

SCK,MOSI和MISO都是输入。如果如果模式错误发生在传输过程中,传输被

中止,SPI强制进入idle状态。

在SPI状态寄存器中的模式错误标志会被模式错误置位。如果SPI中断使能在

MODF置位的时候置位,然后SPI中断序列也会被要求。

当SPI数据寄存器出现写的时候,会有半个时钟的延迟。在延迟过后,在主机

的SCK开始输出。其他的传输操作有轻微的不同,依赖于SPI时钟相位(CPHA)

位的时钟格式说明,在SPI控制寄存器1(看4.4传输格式)

笔记:CPOL,CPHA,SSOE,LSBFEN,MODFEN,SPC0,BIDIROE在

变化时SPC0置位,SPPR2-SPPR0和SPR2-SPR0在主模式里将中止传输且强制

SPI进入idle状态。远处的从机不会发现这个,因此主机必须保证远处的从机进

入idle状态。

4.3从模式

SPI控制寄存器1中的MSTR位被清0时,SPI工作在从模式。

SCK时钟

在从模式,SCK是来自主机的时钟输入。

MISO,MOSI脚

在从模式,串行数据输出脚(MISO)和串行数据输入脚(MOSI)的功能由

SPI控制寄存器2里面的SPC0位和BIDIROE位决定。

脚是从机选择信号输入。在数据传输开始前,从机脚必须为低电平。在

传输完成期间必须为低。如果变成高电平,SPI被强制进入idle状态。

输入脚也控制着串行数据输出脚,如果是高电平(没有被选择),串行数

据输出脚位高阻态,并且,如果为低电平,SPI数据寄存器里的第一个数据被

驱动到串行数据输出脚。如果从机没有被选择(为高电平),SCK输入无效且

SPI内部移位寄存器不会发生移位。

虽然SPI有双工操作能力,在从模式下,一些SPI只有接收数据的能力。对

于这些简单的设备,没有串行数据输出脚。

笔记:当外围设备的双工能力被用的时候,小心不要同时使能两个有相同从

机串行输出系统的数据输出线。

只要没有超过一个的从机设备驱动系统的从串行数据输出线,多个从机收到

主机传出的相同的传输信号就会合理,虽然主机不能接收到所有从机的返回信

息。

如果在SPI控制寄存器1里的CPHA位是被清0,SCK的奇数沿会将串行数

据锁存。偶数沿让之前锁存的数据移位到SPI数据寄存器中的LSB或者MSB,

依靠LSBFE位控制。

如果CPHA位是置位,SCK的偶数沿会将数据锁存。奇数沿江让之前锁存的

数据移位到SPI数据寄存器中的LSB或者MSB,依靠LSBFE位控制。

当CPHA是置位,第一个沿被用于第一个数据位推到串行数据输出脚上。当

CPHA清0且输入为低时(从机被选择),SPI数据的第一位被驱动到串行数

据输出脚。在八次移位过后,传输被认为完成了,接收的数据被传输进SPI数据

寄存器。为了表明传输完成,SPI状态寄存器的SPIF标志置位。

笔记:在从模式CPOL,CPHA,SSOE,LSBFEN,MODFEN,SPC0,BIDIROE

在变化时SPC0置位这将破坏进行中的传输,必须避免这样的事发生。

4.4传输格式

在SPI传输期间,数据同时被传输(串行移出)和被接收(串行移入)。串行

时钟(SCK)同步移位和采样在两个串行线上的信息。从选择线允许选择一个从

机SPI服务,从设备没有被选择不影响总线活动。任选,在SPI主机,从选择线可

以用来表明多主机线的争夺。

图4-1主机/从机的时钟传递图解

4.4时钟相位和极性控制

在SPI控制寄存器1中用2位,软件选择串行时钟相位和极性时钟组合中的一种。

CPOL时钟极性控制位指定一个有效高或低时钟并且对传输格式无显著影响。

CPHA时钟相位控制位选择2种不同传输格式中的一种。

时钟相位和极性应该相同对于SPI主机和交流的从机。在某些情况下,相位和

极性的改变在传输之间允许主设备和外围从机有不同的请求。

4.4.2CPHA=0传输格式

SCK线上的第一个沿用于时钟从机第一个数据位放入主机并且主机的第一位

放入从机。在一些外围设备,一旦从机被选择从机数据的第一位是有效的在从机

数据输出口。在这种格式下,在SS变低之后SCK第一个沿发布延迟半个周期。

半个SCK周期后,那个第二个沿出现在SCK线上,当这第二沿出现的时候,那

个预锁存器的从串行数据输入口移位进移位寄存器中的LSB或者MSB,取决于

LSBFE位。

这第二个沿之后,SPI主机接下来的那位被输出串行数据输出从主机的数据输

出口到从机的串行输入口。这个总共进行16个SCK沿,数据被锁存在奇数沿并且

被移位在偶数沿。

数据接收是双缓冲器。数据串行移入SPI移位寄刘基庙 存器在传输期间并且在最后一

位被移入的时候并行传输到SPI数据寄存器。

16个SCK沿之后:

预先在主机数据寄存器现在应该在从机数据寄存器并且在从机的数据寄存器

中的数据现在应该在主机中。

SPIF标志在状态寄存器中被置位表明传输已经完成。

图4-2孟郊有名的十首诗 是一个在CPHA=0的传输时序图。SCK波形展示了CPOL=0和CPOL=

1.这个图可以解释为一个主机或一个从机时序图自和MOSI口直接被

连接在主机和从机之间。MISO信号是从机的输出并且MOSI信号时主机的输出。

主机的SS口要么为高或者配置成一个不影响SPI的通用的输出口。

图4-2SPI时钟格式0(CPHA=0)

在从模式里,如果SS在连续的传输期间没有被无效,那么SPI数据寄存器里的

内容不会被传输,而是最后接受到的字节被传输。如果SS线被无效了在最低的

空闲时间(半个SCK周期)在连续的传输期间,然后那个SPI数据寄存器的内容

会被传输。

在主模式下,从选择输出使能SS线总是无效并且重申在最低的空闲时间连续

传输。

4.4.3CPHA=1传输格式

一些外设要求第一个SCK沿在第一个数据位在数据输出口有效之前第二个时

钟沿数据放入系统。在这种格式下,第一个SCK沿被发行是通过设置CPHA位,

在8周期传输操作开始时。

半个时钟周期后第一个SCK沿马上产生。这第一个沿命令从机传输第一个数

据位到主机串行数据输入口。

半个SCK周期后,第二个沿出现在SCK线上,这是锁存沿对于主机和从机。

当第三个沿出现时,预锁存器的值从串行数据输入口被移位到SPI移位寄存器

的LSB或者MSB。取决于LSBFE位。这个沿之后,主机接下来那位数据出现

在主机串行数据输出口。到从机串行输入口。

这个总共进行16个SCK沿。在偶数沿被锁存,在奇数沿被移位。

数据接收是双缓冲器。数据串行移位进SPI移位寄存器。在传输时,并且最后

一位被移入时并行传输到SPI数据寄存器。

在16个SCK沿后:

原来在SPI主机中数据寄存器中的数据出现在从机数据寄存器,并且在从机中

的数据现在在主机中。

SPISR中的SPIF标志位置表示传输已经完成。

图4-3展示了CPHA=1的2种时钟。这个图可以解释为关于SCK的一个主机

或一个从机的时序图。MISO和MOSI口在主机和从机之间直接相连。MISO是

从机的输出信号。MOSI是主机的输出信号。对于从机SS是从选择输入。主机

SS口要么配置为高要么配置成一个通用输出口不影响SPI。

图4-3SPI时钟格式1(CPHA=1)

在连续传输之间SS线可以保持有效低(在所有时间低)这种格式在有时优先

于系统有一个单一的主机和从机驱动MISO数据线。

在主模式下背靠背传输。

在主模式,如果一个传输完成并且一个新的字节数据在SPI数据寄存器中有

效,这个字节被马上送出没有一个尾随和最小的空闲时间。

SPI中断请求标志(SPIF)在主模式和从模式是相同的。在最后SCK沿之后

半个周期之后SPIF置位。

4.5SPI波特率发生器

波特率发生器包含一个串行的分频器。在SPI波特率寄存器中的六位(SPPR2,

SPPR1如坐春风 ,SPPR0,SPR2,SPR1,SPR0)决定SPI模块时钟除数因子。结果是SPI

波特率。

SPI时钟由波特率预分频位(SPPR2-SPPR0)的值和波特率选择位(SPR2-SPR0)

的值得乘积决定。模块时钟除数方程展示在图4-4.

当所有位被清零(系统默认值)SPI模块时钟被除以2.当选择位(SPR2-SPR0)是

001并且预选择位(SPPR2–SPPR0)是000,那模块时钟除数是4.当选择位是010,

那模块时钟除数是8.

当预选择位是001,那除数被预选择位乘以2决定。当预选择位是010,那除

数是乘以3,等等。所有位的条件计算波特率看表3-4.基于25MHZ总线时钟。

这两种的选择设置允许时钟分裂被一个不是2的N次方的其他波特率完成例如

六分频十分频,等等。

波特率发生器只有当SPI在主模式或一个串行输出发生的时候有效,在其他情

况,那分频器是无效的。减小电流的流通。

图4-4波特率除数因子方程

笔记:最大的允许波特率,请参考SPI有关电气说明书根据SOC指南。

4.6特点

4.6.1输出

输出特点自动的驱动脚为了选择外设会在传输期间保持为低,在idle状

态时为了取消选择外设驱动器为高。当输出被选择时,输出脚被连接在外

设的输入脚。

输出职业在主模式下才有小在正常的SPI操作由SSOE和MODFEN位决

定,详细看表3-2.

当输出使能时不能检测模式错误。

笔记:当输出在一个多主系统是要小心,多主系统不能检测模式错误。

4.6.2双向模式(MISOorSISO)

当SPI控制寄存器2的SPC0位置位双向模式就被选择(参考表4-1正常模式

和双向模式)。在这个模式,SPI只用一个串行数据脚连接外设。MSTR位决定

哪个脚被用。MOSI脚是主机的串行数据I/O(MOMI),MISO脚是从机的串行

数据I/O(SISO)。主机的MISO脚和从机的MOSI脚不被用于SPI。

表4-1正常模式和双向模式

每个串行I/O脚的方向有BIDIROE位决定。如果脚被配置成输出,移位寄存

器的串行数据被驱动到脚上。这个叫也可以把串行数据输入移位寄存器。

SCK是主机的输出从机的输入。

是主机的输入或者输出,在从机只能作为输入。

双向模式不影响SCK和的功能。

笔记:在双向主机模式,模式错误被使能,MISO和MOSI数据脚都可能

被用于SPI,双向模式下MOSI一般被用于传输数据且MISO不被用于SPI。如

果模式错误发生,SPI会马上转换成从机,MISO被用于SPI且MOSI不被用。

作用MISO脚被用于其他目的时要考虑清楚。

4.7错误的情况

SPI只有一种错误情况

*模式错误

4.7.1模式错误

如果在SPI被配置成主机的时候变低,表明有一个系统错误,超过一个主

机试图同时驱动MOSI和SCK线。这种情况在正常操作时不被允许,在MODFEN

位置位的情况下在SPI状态寄存器的MODF位立即置位。

当SPI是主模式且MODEN位被清0的特殊情况下,脚不被用于SPI。在

这四时田园杂兴(其二十五)教案 种特殊情况下,模式错误功能被控制且MODF被清0.在SPI系统被配置成从

机时,脚是一个专用的输入脚。从机不会产生模式错误。

如果模式错误发生,SPI转换到从模式,从输出缓冲器被禁用。所以SCK,

MISO和MOSI脚被强迫变高阻态输入来避免其他输出驱动的干扰,正在进行的

传输被停止且SPI强制进入idle状态。

如果SPI系统在主模式且被配置成双向模式时发生模式错误,MIMO的输出

使能被清0如果其为置位。从机在双向模式不会发生模式错误。

模式错误标志会在读取SPI状态寄存器(MODF置位)后清0接着写入SPI

控制寄存器1.如果模式错误标志被清0,SPI会重新变成正常的主机或者从机。

笔记:如果模式错误发生且一个数据被接收在接收移位寄存器中,这个数

据将会丢失。

4.8低功耗模式的选择

4.8.1SPI在运行模式下

在运行模式下SPI控制寄存器的SPI使能位清0,SPI系统会进入低功耗模式,

不能工作状态。SPI寄存器可以继续工作,但是时钟无效。

4.8.2SPI在等待模式

SPI在等待模式下的操作由SPI控制寄存器2里的SPIWAI位控制。

*如果SPIWAI清0,在CPU是等待模式时SPI正常操作。

*如果SPIWAI置位,在CPU是等待模式时SPI时钟停止产生且SPI模块进

入功耗保持状态。

—如果SPIWAI是置位且SPI配置成主机,任何传输和接收都在进入等

待模式时暂停。传输和接收在SPI退出等待模式时恢复。

—如果SPIWAI置位且SPI被被配置成从机,如果主机的SCK继续驱动

任何传输和接收会继续。这保持从机与主机和时钟一致。

如果在从机在等待模式时主机传输多个位,从机将与等待模式开始时相

同的方式传输数据(如果从机正在发送SPIDR的数据给主机,在等待模式

下从机会重复的发送SPIDR的数据。如果从机正在发送刚刚接收到的数据,

在等待模式下从机会继续发送其接收的数据)。

笔记:在从机在等待模式或者停止模式时期望从主机得到数据时要小

心。即使移位寄存器会工作,SPI的其他部分是关闭的(SPIF中断将不会产

生直到退出等待模式或者停止模式)。另外,移位寄存器里的那个位不会被

复制到SPIDR直到从机SPI退出等待模式或者停止模式之后。在从模式,

在进入等待模式和停止模式时,在接收移位寄存器里的位会丢失。SPIF标

志和SPIDR复制只会发生在传输过程中进入或者退出等待模式。如果从机

在idle状态进入等待模式和在idle状态退出等待模式,SPIF和SPIDR复制

都不会发生。

4.8.3SPI在停止模式

停止模式由系统控制。在系统时钟无效时(保持为高或保持为低)SPI进入停

止模式。等CUP进入停止模式时如果SPI在主机模式且在交换数据,传输会被

冻结直到CPU退出停止模式。在退出停止模式后,SPI的数据交换恢复正常。

在从模式,SPI会与主机保持一致。

停止模式不由SPIWAI位控制。

4.8.4复位

复位的对于寄存器和信号的作用在存储器分布图和寄存器分配(看三章的存储

器分布图和寄存器定义)可看的器详细描述和位分配。

*如果在从机复位过后没有对SPIDR写入,数据传输会传输无用信号,或

者传输刚刚从主机接收到的数据。

*从复位后的SPIDR读取数据为一个位的0.

4.8.5中断

SPI只有在SPI被使能的时候才会产生中断(SPI控制寄存器的SPE位)。之后

会有SPI怎么产生一个请求和MCU应该怎么回应请求的描述。中断向量偏移和

中断优先级由芯片控制。

中断标志MODF,SPIFandSPTEF是逻辑运算产生一个中断请求。

4.8.5.1MODF

当主机发现脚的错误时MODF会发生。SPI主机必须配置成MODF特性(看

表3-2SS输入/输出选择)。MODF置位,传输会取消且位会改变。

*MSTR=0,SPI控制寄存器的主模式位复位。

MODF中断时状态寄存器MODF标志的反馈。清0这个位也会清0中断。如

果MODF置位,这个中断将保持活跃。MODF有一个自动清0方法详细描述看

3.1.4SPI状态寄存器。

4.8.5.2SPIF

当新的数据被接收且被复制到SPI数据寄存器时SPIF会发生。SPIF置位,直

到被服务之前不会被清有一个自动清0方法详细描述看3.1.4SPI状态寄

存器。

4.8.5.3SPTEF

当SPI数据寄存器准备好接收新数据时SPTEF会发生。SPTEF置位,直到被

服务之前不会被清有一个自动清0方法详细描述看3.1.4SPI状态寄存

器。

更多推荐

sck是什么意思在线翻译读音例句