第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx

上传人:b****2 文档编号:676790 上传时间:2023-04-29 格式:DOCX 页数:24 大小:259.66KB
下载 相关 举报
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第1页
第1页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第2页
第2页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第3页
第3页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第4页
第4页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第5页
第5页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第6页
第6页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第7页
第7页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第8页
第8页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第9页
第9页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第10页
第10页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第11页
第11页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第12页
第12页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第13页
第13页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第14页
第14页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第15页
第15页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第16页
第16页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第17页
第17页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第18页
第18页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第19页
第19页 / 共24页
第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx

《第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx》由会员分享,可在线阅读,更多相关《第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx(24页珍藏版)》请在冰点文库上搜索。

第19章串行外围设备接口SPI mpc83xx中文翻译Word下载.docx

当非满(NF)和非空(NE)位均被置位时,e300核应在发送新数据前读取接收的数据。

SPMODE[LEN]确定硬件发送的字符的长度。

核负责位处理,将数据打包或者解包成合适的字符长度。

更多信息参看表19-4中SPMODE[LEN]的说明。

19.2.3操作模式

可以把SPI设定在在单主设备或多主设备环境下工作。

本节介绍单主设备配置时的SPI主和从操作。

同时也讨论了多主设备环境下SPI的操作。

下面几节总结了SPI支持的主要操作模式。

19.2.3.1作为主设备的SPI

在主设备模式下,SPI发送消息到从外设,从外设同时发回应答。

带有多个从设备的单主设备可以使用通用并行I/O信号有选择地启用从设备,如图19-2所示。

为了消除单主设备环境下的多主设备的错误,应通过外部上拉强制主设备的

输入无效。

图19-2单主设备/多从设备的配置

为了开始交换数据。

e300将待发送数据写入SPITD寄存器。

然后SPI为每一个字符在SPICLK产生可编程时钟脉冲。

将Tx数据在SPI主出从入(SPIMOSI)移出,同时将Rx数据在SPI主入从出(SPIMISO)移入。

在发送过程中,无论何时SPI发出请求,核都负责提供数据,从而保证操作的顺畅。

在最后一个数据(LST命令和紧接其后的数据)发送完毕后,写入SPITD的第一个字符作为SPI的开始命令。

SPI连续地发送和接收字符,直到SPCOM[LST]被置位或者有错误发生。

只要发送缓冲区不满,SPI就置位SPIE[NF]向中断控制器发送可屏蔽中断。

在发送完最后一个字之后,SPI也置位NF。

作为回应,核应读取与最后一个字相关的异常标志。

只要接收缓冲区填充了数据,SPI就置位SPIE[NE],向中断控制器发送可屏蔽中断。

19.2.3.2作为从设备的SPI

在从模式下,SPI设备接收来自SPI主设备的信息并且同时发送回答。

从设备的

必须在识别出Rx时钟之前有效。

一旦

信号有效,SPICLK就成为从主设备到从设备的输入。

SPICLK可以为从DC到系统时钟/2之间的任意频率。

核心将待发送数据送入SPITD寄存器,为数据传输做准备。

有效,从设备将数据从SPIMISO移出,从SPIMOSI移入。

SPI置位SPI寄存器的NF位,当满缓冲完成发送和接收时或者在出现错误之后,发出可屏蔽中断。

SPI连续接收,直到

信号无效。

发送连续进行,直到没有更多的数据可用或者

无效。

重新有效,并且SPICLK开始翻转,就继续发送。

缓冲区中的字符都发送了之后,只要

保持有效,SPI就发送1。

19.2.3.3多主设备环境下操作的SPI

SPI可以工作在多主设备环境中,此时所有的SPI设备都被连接到同一个总线上。

在这种配置中,所有SPI设备共享SPIMOSI、SPIMISO和SPICLK信号,但是

输入是独立连接的,如图19-3所示。

某一时刻仅有一个SPI设备可以作为主设备——其他所有的SPI设备必须为从设备。

当把一个SPI配置成主设备时,如果它的

输入有效,将产生多主设备错误,因为有多个SPI设备成为总线主设备。

SPI置位SPI事件寄存器中的SPIE[MME]并且向核发出可屏蔽中断。

它还禁止SPI操作和SPI信号的输出驱动器。

在重新使用SPI之前,核心必须清除SPMODE[EN],纠正错误,并清除SPIE[MME]。

注意:

1.所有信号都是漏极开路的。

2.对于两个以上主设备的多主设备配置,

和SPIE[MME]不能检测到所有可能的冲突。

3.由软件负责SPI总线的仲裁(例如使用如令牌传递)。

4.

信号用软件使用通用I/O信号实现。

图19-3多主设备配置

SPI支持的最大稳定数据速率为系统(csb)时钟/50。

但是SPI可以高得多的速率传输单个字符——在主机模式下为系统时钟/4,在从机模式下为系统时钟/2。

在多个字符之间应插入间隔,以保证不超过最大稳定数据速率。

 

19.3外部信号说明

SPI的四线接口包括发送、接收、时钟和从选择。

19.3.1概述

表19-1列出了信号的属性。

表19-1信号属性

名字

功能

复位

上拉

SPIMISO

主设备入从设备出

在漏极开路模式下需要

SPIMOSI

主设备出从设备入

SPICLK

连接到其他SPICLK的输入/输出串行时钟

SPI从设备选择

19.3.2详细信号说明

表19-2详细说明了信号。

表19-2详细信号说明

信号

I/O

说明

状态

含义

有效-SPI发送/接收的数据为高(取决于是主设备还是从设备)

无效-SPI发送/接收的数据为低(取决于是主设备还是从设备)

时序

有效-根据SPICLK有效/无效/在相位中间(由SPMODE决定)

无效-根据SPICLK有效/无效/在相位中间(由SPMODE决定)

串行时钟入或串行时钟出,分别用于从或主模式

有效/无效-根据SPMODE[PM,DIV16]寄存器的速率的配置。

有效/无效-在帧接收/发送过程中

I

有效-从模式下声明为被到达的帧选中为从设备。

在主模式下有效导致MME多主设备错误。

无效-在从模式下意味着还未选中特定的SPI。

在主模式下,为进行正常操作应将其置为无效。

有效-在从模式下和来自从设备的数据一起。

无效-在从模式下和帧尾一起(依照SPMODE[LEN])。

在主模式下,在数据第一次写入SPITD之前并保持不变。

在单主设备或者多主设备环境模式下,可以把SPI配置成从设备或者主设备。

主SPI利用SPI波特率发生器(BRG)生成传输时钟SPICLK。

SPIBRG从时钟合成器产生的系统时钟中获取输入。

SPICLK是一个门控时钟,仅在数据传输时有效。

SPICLK相位和极性的四种组合可以由时钟反向(SPMODE[CI])和时钟相位(SPMODE[CP])寄存器位配置。

还可以把SPI配置为漏极开路,以支持多主设备配置,此时共享的SPI信号由SPI设备或外部SPI设备驱动。

SPI主设备入从设备出SPIMISO信号作为主设备的输入和从设备的输出。

反之,主设备出从设备入SPIMOSI信号作为主设备的输出和从设备的输入。

这些信号的双重功能允许多主设备环境下的SPI之间使用相同的硬件配置进行通信。

●当SPI为主设备时,SPICLK是时钟输出信号,它从SPIMISO移入接收到的数据,将发送的数据移出到SPIMOSI。

SPI主设备必须输出一个从设备选择信号,通过使用独立的通用I/O信号使能SPI从设备。

当把SPI设备配置成主设备时,使

有效则导致错误。

●当SPI为从设备时,SPICLK是时钟输入信号,它从SPIMOSI移入接收到的数据,将发送的数据通过SPIMISO移出。

是到SPI从设备的使能输入信号。

在多主设备环境下,

(始终作为输入)还用来检测有多个主设备操作这样的错误。

19.4内存映射/寄存器定义

表19-3包含SPI的映射到内存空间的寄存器。

表中所列的地址为到SPI基址的偏移量,同第二章“内存映射”中定义的那样。

表19-3SPI寄存器汇总

偏移量

寄存器

访问

复位值

节/页

0x000-0x01F

保留

0x020

SPI模式寄存器(SPMODE)

R/W

0x0000_0000

19.4.1.1/19-9

0x024

SPI事件寄存器(SPIE)

19.4.1.2/19-13

0x028

SPI屏蔽寄存器(SPIM)

0x02C

SPI命令寄存器(SPCOM)

19.4.1.4/19-15

0x030

SPI发送寄存器(SPITD)

19.4.1.5/19-15

0x034

SPI接收寄存器(SPIRD)

R

0xFFFF_FFFF

19.4.1.6/19-16

0x038-0xFFF

19.4.1寄存器说明

19.4.1.1SPI模式寄存器(SPMODE)

SPMODE控制SPI操作的模式和时钟源,如图19-4所示。

图19-4SPMODE-SPI模式寄存器

表19-4说明了SPMODE的字段。

表19-4SPMODE字段说明

保留,应清除。

1

LOOP

回送模式。

允许本地回送操作。

0正常操作

1回送模式。

用于测试SPI控制器内部功能。

发送器输出在内部连接到接收器输入。

接收器和发送器正常工作,只是忽略收到的数据。

2

CI

时钟反向。

将SPI时钟的极性反向。

更多信息参看图19-5和19-6。

0SPICLK为低时无效

1SPICLK为高时无效

3

CP

时钟相位。

选择传输格式。

0SPICLK在数据传输中间的开始翻转

1SPICLK在数据传输的开始处开始翻转

4

DIV16

除以16。

当把SPI配置成主设备模式时,为SPI波特率发生器(SPIBRG)选择时钟源;

在从模式下,SPICLK就是时钟源。

0系统时钟为SPIBRG的输入

1系统时钟/16为SPIBRG的输入

在从模式下,必须清除该位。

5

REV

反向数据模式,仅用于8/16/32位字符长度。

0首先发送/接收LSB(对于数据长度<

32,数据位于低半字LSB)

1首先发送/接收MSB

6

M/S

主/从。

选择主模式还是从模式

0SPI为从设备

1SPI为主设备

7

EN

启用SPI。

当EN置位时,一定不能修改SPMODE中的其他位。

0禁用SPI。

SPI处于空闲状态,功耗最低。

SPIBRG不起作用,并且禁止输入时钟。

1启用SPI。

SPI控制器要求在禁用SPI和重新启用SPI之间至少有10个系统时钟的时间间隔。

这个最小时间间隔保证在清除SPMODE[EN]时清除SPMODE[PM]和SPMODE[DIV16]。

8-11

LEN

每个字符的位长度。

LEN可以为32或4到16位,如下所示:

000032位字符

0001-0010保留,导致不可预测的行为

00114位字符

111116位字符

TX和RX寄存器(SPITD,SPIRD)一次能容纳32位。

32位长的字符填满TX和RX寄存器;

因此这些寄存器中的所有位都有效。

当LEN选择的字符长度等于或者小于16位时,有效位占据发送和接收寄存器的低半字。

例如,如果将字符长度设置为16位,有效位将为16-31,如果将字符长度设置为5位,有效位将为16-20。

注意,不管字符长度为多长,每个发送和接收寄存器仅容纳一个字符。

12-15

PM

预分频模数选择。

指定SPI时钟发生器中的预分频器的分频比率。

SPI波特率发生器时钟源(系统时钟或系统时钟/16,取决于DIV16位)被4*([PM]+1)分频,其范围为4到64。

时钟有50%的占空期。

例如,如果将预分频模数设置为PM=0011并且DIV16置1,那么系统/SPICLK时钟比率将为16*(4*(0011-1))=256。

16-18

19

OD

漏极开路模式

0将所有输出引脚配置为正常模式

1将所有输出引脚配置为漏极开路模式

20-31

图19-5显示了SPI的传输格式,其中SPICLK在传输的中间开始翻转(SPMODE[CP]=0)。

图19-5SSPMODE[CP]=0时的SPI传输格式

图19-6显示了SPI的传输格式,其中SPICLK在传输的开始处开始翻转(SPMODE[CP]=1)。

图19-6SPMODE[CP]=1时的SPI传输格式

19.4.1.2SPI事件寄存器(SPIE)

SPI事件寄存器(SPIE)产生中断并报告SPI所识别的事件。

当识别了某个事件时,SPI置位对应的SPIE位。

SPIE位通过写入‘1’清除,写入‘0’没有作用。

置位SPI屏蔽寄存器(SPIM)中的位允许对应的中断,清除一位则屏蔽对应的中断。

必须在核清除内部中断请求之前清除清除未屏蔽的SPIE位。

图19-7显示了SPI事件寄存器。

图19-7SPIE-SPI事件寄存器

表19-5说明了SPIE的字段。

表19-5SPIE字段说明

0-16

17

LT

发送了最后一个字符。

发送最后一个字符,可以把新数据写入SPID以便发送。

18

DNR

数据未就绪。

在从模式下,仅当

信号在SPI中的数据就绪前有效时,才在线路上发送IDLE,并让UN有效,宣告应禁用SPI,重新启动操作。

OV

从/主过载。

指示在接收过程中出现了过载。

当过载时,SPI继续发送/接收处理,同时报告丢失字符出现过载。

20

UN

从欠载。

指示SPI发送器是否未及时取得要发送数据,以及是否在线路上发送了IDLE。

仅在从设备模式下有效(SPMODE[M/S]=0)。

在主设备模式下(SPMODE[M/S]=1),如果SPI发送器没有有效数据发送,SPICLK就停止翻转并停止发送/接收操作(不报告欠载),当把数据写入SPITD时,恢复发送。

21

MME

多主设备错误。

当SPI在主设备模式时,如果外部宣告/SPISEL有效就置位。

注意,可以在回送模式中出现MME错误。

22

NE

非空。

置位时指示SPIRD包含已经接收的字符。

0接收器空

1接收器有正确的接收数据以及关于LST(命令寄存器)和OV(SPIE)的指示。

核可以读取接收器的内容。

如果有更多数据可用,读接收器SPIRD清除NE位。

23

NF

非满。

指示是否未使用SPITD,核是否向它写入新字符。

0发送器满。

1发送器未满。

核可以写发送器。

必须清除NF以允许传输其它字符(写发送器清除NF)。

24-31

19.4.1.3SPI屏蔽寄存器(SPIM)

SPI屏蔽寄存器(SPIM)如图19-8所示,它允许/屏蔽被SPI识别的事件的中断。

当识别了一个事件时,SPI置位对应SPI位。

置位SPIM位允许对应的中断,清除SPIM位则屏蔽对应的中断。

图19-8SPIM-SPI屏蔽寄存器

表19-6说明了SPIM的字段。

表19-6SPIM字段说明。

0LT事件不会引起SPI中断

1LT事件引起SPI中断

从模式下数据未就绪。

0从DNR事件不会引起SPI中断

1从DNR事件引起SPI中断

从/主过载中断屏蔽

0从/主过载事件不会引起SPI中断

1从/主过载事件引起SPI中断

从欠载中断屏蔽

0从欠载事件不会引起SPI中断

1从欠载事件引起SPI中断

多主设备错误中断屏蔽。

0多主设备错误事件不会引起SPI中断

1多主设备错误事件引起SPI中断

非空中断屏蔽

0非空事件不会引起SPI中断

1非空事件引起SPI中断

非满中断屏蔽

0非满事件不会引起SPI中断

1非满事件引起SPI中断

19.4.1.4SPI命令寄存器(SPCOM)

SPI命令寄存器(SPCOM)用于结束SPI操作,如图19-9所示。

图19-9SPI命令寄存器(SPCOM)

表19-7说明了SPCOM的字段。

表19-7SPCOM字段说明

0-8

9

LST

此位代表最后一个字符。

在把最后一个字符写入SPITD之前必须置位。

当字符全部传送完毕时它导致SPIE[LT]置位,进而指示帧全部传送完毕。

0此字符不是帧的最后一个字符

1此字符是帧的最后一个字符

10-31

19.4.1.5SPI发送数据保持寄存器(SPITD)

SPITD保持待发送的数据。

SPMODE[LEN]定义每个字符的位数。

每次SPIE[EN]置位时,如果SPIE中不报错,核就可以向SPITD写入另一个数据字符。

在帧的末尾,核应置位SPCOM[LST]并准备好数据的最后一个字符。

图19-10显示了SPI发送数据保持寄存器。

图19-10SPI发送数据保持寄存器。

表19-8给出了SPI发送数据保持寄存器的字段说明。

表19-8SPI发送数据保持寄存器

0-31

DATA

这些位是要发送的数据。

19.4.1.6SPI接收数据保持寄存器(SPIRD)

SPIRD用于从SPI信道接收数据字符,如图19-11所示。

每次SPIE[NE]置位时,核可以读SPIRD。

图19-11SPI接收数据保持寄存器

表19-9给出了SPI接收数据保持寄存器的字段说明。

表19-9SPI接收数据保持寄存器

0-31

接收的数据。

这些位是从SPI总线接收的数据。

19.4.1.6.1反向模式SPMODE[REV]举例

在反向数据模式(SPMODE[REV]=1)和正常数据模式(SPMODE[REV]=0)中,数据在接收完毕后被送入SPIRD。

下面为8位字符长度(SPMODE[LEN]=7)的实例。

图19-12SPMODE[REV]=0SPMODE[LEN]=7首先发送LSB举例

图19-13SMODE[REV]=1SPMODE[LEN]=7首先发送MSB举例

图19-14SMODE[REV]=1SPMODE[LEN]=15首先发送MSB举例

图19-15SPMODE[REV]=0SPMODE[LEN]=15首先发送LSB举例

19.5初始化/应用信息

下面几节介绍SPI主设备和从设备编程实例。

19.5.1SPI主设备编程实例

以下步骤将SPI初始化为高速工作的主机模式:

1.如果需要,配置并行I/O信号,作为SPI选择输出信号

2.向SPIE中写入0xFFFFFFFF清除以前的所有事件。

配置SPIM允许所有期望的SPI中断。

3.配置SPMODE允许正常操作(非回送)、主设备模式、SPI启用、字符长度和可能的最快速度。

4.向SPITD写入待发送的第一个字符。

19.5.2SPI从设备编程实例

以下为SPI处于从模式时的初始化步骤示例。

本例和SPI主设备实例很相似,不同点是采用

代替I/O信号。

1.向SPIE写入0xFFFFFFFF清除以前的所有事件。

2.配置SPIM允许所有期望的SPI中断。

3.配置SPMODE允许正常操作(非回路)、从设备模式、SPI启用和字符长度。

4.向SPITD写入待发送的第一个字符,确保一旦主设备开始传输时SPI准备就绪。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2