ImageVerifierCode 换一换
格式:DOCX , 页数:215 ,大小:2.37MB ,
资源ID:20656508      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20656508.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(KEA128用户参考手册.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

KEA128用户参考手册.docx

1、KEA128用户参考手册第30章 串行外设接口(SPI)30.1 介绍注意:芯片模块的具体实施细节详见芯片的配置信息。串行外设接口(SPI)模块为MCU和外设之间提供了全双工同步串行通信。这些外设包括各种微控制器,模拟 - 数字转换器,移位寄存器,传感器,和存储器等等。SPI主机模式可以在总线时钟2分频的波特率下运行,或是在从机模式下总线4分频的波特率下运行。SPI可使用软件查询方式或是中断方式来工作。注意:至于SPI工作的最大波特率,请参考芯片配置细节和器件的数据手册。为了匹配接收数据缓冲区,SPI包含了硬件匹配功能。30.1.1 特性SPI包含以下鲜明的特性:(1)主机模式或是从机模式运行

2、。(2)全双工或单线双向模式。(3)可编程的传输波特率。(4)双缓冲发送和接收数据寄存器。(5)串行时钟相位和极性选择。(6)从机选择输出。(7)具有CPU的中断功能模式错误标志。(8)在等待模式下的SPI操作控制。(9)可选MSB优先或LSB优先转换。(10)接收数据缓冲区硬件匹配功能。30.1.2 操作模式SPI可在以下三种模式下工作:运行、等待和停止。运行模式:这是基本的操作模式。等待模式:在等待模式下SPI操作是一个可配置的低功耗模式,它被SPIx_C2寄存器的C2SPISWAI位控制。在等待模式下,如果C2SPISWAI位被清0,SPI会进入运行模式。如果C2SPISWAI位被置位,

3、SPI就会进入节电模式,SPI时钟关闭。如果SPI被配置为主机模式,当前的任何传输都会停止,但会在CPU进入运行模式后恢复。如果SPI被配置为从机模式,字节接收和发送将继续,以便从机保持与主机的同步。停止模式:为了节电,SPI在外围设备被停止但内部逻辑仍然继续的停止模式下是非激活的。如果SPI作为一个主机,当前的任何传输都会停止,但会在CPU进入运行模式后恢复。如果SPI被配置成为一个从机,数据的发送和接收继续,以便从机保持与主机的同步。SPI在外围总线时钟停止且不保留内部逻辑的停止模式下是完全关闭的。当CPU工作在这些停止模式,所有的SPI寄存器被重置。详细操作模式见“低电模式选项”信息。3

4、0.1.3 结构图这一节包含结构图,它描述了SPI系统连接、SPI模块的内部组织、和用于控制主模式波特率的SPI时钟分频器。30.1.3.1 SPI系统结构图图30-1显示为两个MCU的SPI模块连接成主从模式。主机开启所有的SPI数据传输。在传输期间,主机发送数据给从机,同时从从机获得数据。数据移位器可以高效的传输数据,数据存放在两个SPI系统的SPI移位寄存器。SPSCK信号是主机时钟的输出,是从机的输入。主机通过把从机选择引脚拉低为低电平实现对该从机的选择。在这个系统中,主机已配置它的引脚作为从机选择输出。图30-1 SPI系统连接30.1.3.2 SPI模块结构图图30-2是SPI模块

5、的结构图。SPI的核心要素是SPI移位寄存器。数据被写入到双缓冲的发送器(写入SPIx_D)和被转移到SPI移位寄存器,然后数据传送开始。在接收8位的数据时,该数据被转移到双缓冲的接收器,在那里数据可以从SPIx_D读取。引脚复用逻辑控制着MCU引脚和SPI模块的连接的对应关系。当SPI配置为主机时,时钟输出发送到SPSCK引脚,移位器输出被连接到MOSI,移位寄存器的输入则来自MISO引脚。当SPI配置为从机,SPSCK引脚被连接到时钟SPI输入端,转换器输出发送到MISO,输入来自MOSI引脚。在外部SPI系统中,所有SPSCK引脚简单地彼此连接。所有MISO引脚连在一起,所有MOSI引脚

6、连在一起。外围设备上的这些引脚的名字通常略有不同。图30-2 没有FIFO的SPI模块结构图30.2 外部信号描述SPI合理的分配了四个端口引脚。这些引脚的功能依赖于SPI控制位的设置。当SPI(SPE=0)关闭,这四个引脚转换成其他的功能,它们就不再受SPI控制。30.2.1 SPSCK - SPI串行时钟当SPI模块设置成为从机,这个引脚是串行时钟的输入。当这个SPI作为一个主机时,这个引脚是串行时钟输出。30.2.2 MOSI 主机数据输出,从机数据输入当SPI设置为主机,SPI引脚控制零(SPC0)是0(非单线双向模式),这个引脚是串行数据输出。当SPI设置成为从机模式,并且SPC0是

7、0,这个引脚是串行数据输入。如果SPC0是1就会选择单线双向模式,并且同时选择了主机模式,这个引脚变成双向数据I/O引脚(MOMI)。双向模式输出使能位决定这个引脚是作为一个输出(BIDIROE是0)还是作为一个输入(BIDIROE是1)。如果,SPC0是1并且被设置为从机模式,这个引脚就不会被SPI用来转换成为其他功能(依赖芯片配置)。30.2.3 MISO-主机数据输入,从机数据输出当SPI设置为主机,SPI引脚控制零(SPC0)是0(非单线双向模式),这个引脚是串行数据输入。当SPI设置成为从机模式,并且SPC0是0,这个引脚是串行数据输出。如果SPC0是1就会选择单线双向模式,且同时选

8、择了主机模式,这个引脚变成双向数据I/O引脚(MOMI)。双向模式输出使能位决定这个引脚是作为一个输出还是作为一个输入。如果,SPC0是1并且选择了从机模式,这个引脚就不会被SPI使用,成为其他功能(依赖芯片配置)。30.2.4 _SS从机选择当SPI被设置成为从机模式,当此引脚为低时,从机被选择。当SPI被设置作为主机,且模式错误使能关闭(MODFEN是0),这个引脚不被SPI使用或是被用作其他功能。当SPI被设置为主机,并且MODFEN是1,从机选择输出决定这个引脚是否作为错误的输入(SSOE是0)或是作为从机选择输出。30.3 地址映射和寄存器说明SPI有6个8位的寄存器来配置SPI,可

9、以控制波特率,显示SPI的状态,控制一个SPI数据匹配值,发送或是接收数据。表30-1 SPI地址映射地址偏移绝对地址寄存器名称宽度访问方式重置值章节04007_6000SPI 控制寄存器 1 (SPI0_C1)8R/W04h30.3.1/49314007_6001SPI 控制寄存器 2 (SPI0_C2)8R/W00h30.3.2/49524007_6002SPI 波特率寄存器(SPI0_BR)8R/W00h30.3.3/49634007_6003SPI状态寄存器 (SPI0_S)8R20h30.3.4/49754007_6005SPI数据寄存器(SPI0_D)8R/W00h30.3.5/4

10、9874007_6007SPI匹配寄存器 (SPI0_M)8R/W00h30.3.6/49904007_7000SPI控制寄存器1(SPI1_C1)8R/W04h30.3.1/49314007_7001SPI 控制寄存器2 (SPI1_C2)8R/W00h30.3.2/49524007_7002SPI 波特率寄存器 (SPI1_BR)8R/W00h30.3.3/49634007_7003SPI状态寄存器 (SPI1_S)8R20h30.3.4/49754007_7005SPI数据寄存器 (SPI1_D)8R/W00h30.3.5/49874007_7007SPI匹配寄存器 (SPI1_M)8R

11、/W00h30.3.6/49930.3.1 SPI控制寄存器1(SPIx-C1)这个可读/写寄存器包含SPI使能控制,中断使能和配置选项。地址: 4007_6000h base + 0h offset = 4007_6000h数据位D7D6D5D4D3D2D1D0读/写SPIESPESPTIEMSTRCPOLCPHASSOELSBFE复位00000000表30-2 SPI0_C1字段说明D7(SPIE)SPI中断使能:是SPRF和MODF使能位。这位使能SPI接收区满(SPRF)中断和模式错误(MODF)中断。0:SPRF和MODF中断是禁止的只能使用查询方式;1:当SPRF或MODF为1时,

12、请求一次硬件中断。D6(SPE)SPI系统使能。这位使能SPI系统并且使SPI端口引脚变成SPI系统功能。如果SPE被清0,则SPI关闭并且强制进入一个暂停状态,所有的状态位被重置。0:SPI系统禁止。1:SPI系统启用。D5(SPTIE)SPI发送中断使能。它是SPI发送缓冲区空(SPIEF)的中断使能。当SPI发送缓冲是空时中断发生。0:SPTEF中断禁止(使用查询方式),1:当SPTEF是1时,请求硬件中断。D4(MSTR)主/从模式选择。该位选择主模式或从模式操作。0:SPI模块配置为从SPI设备,1:SPI模块配置为主SPI设备。D3(CPOL)时钟极性。这位选择一个反转的或是非反转

13、的SPI时钟。要想在SPI模块之间传输数据,SPI模块都必须有完全一样的CPOL值。这位可方便地将一个来自主机SPI或是通向从机SPI的串行时钟信号进行反转。详细内容,请参阅“SPI时钟格式”说明。0:高电平有效(空闲状态为低电平)1:低电平有效(空闲状态为高电平)D2(CPHA)时钟相位。这位用来选择两种时钟格式中的一种,来跟不同的同步串行外设通信。详细信息请参考“SPI时钟格式”。0:SPSCK的第一个边缘发生在第一位数据周期的中间,1:SPSCK的第一个边缘发生在第一位数据周期的开始。D1(SSOE)从机选择输出使能。这位与C2寄存器中的模式错误使能位(MODFEN)及主从控制位(MST

14、R)的组合,决定了引脚的功能。0:当MODFEN为0:在主机模式下,引脚功能为通用I / O(非SPI)。在从机模式下,引脚被用来从机选择输入。当MODFEN是1:在主机模式下,引脚功能为,错误输入模式。在从机模式下,被设置为从机选择输入。1:当MODFEN为0:在主机模式下,引脚功能为通用I / O(非SPI)。在从机模式下,引脚的功能是从机选择输入。当MODFEN是1:在主机模式下,引脚的功能是自动输出。在从机模式下:引脚功能是从机选择输入。D0(LSBFE)LSB优先(移位方向)。这位不影响数据寄存器中的MSB和LSB的位置。MSB位一直在数据寄存器的第八位。0:SPI串行数据传输开始于

15、最高有效位。1:SPI串行数据传输开始于最低有效位。30.3.2 SPI控制寄存器2(SPIx-C2)该读/写寄存器是用来控制SPI系统的可选功能。第6位是不起作用的并始终为0。地址: 4007_6000h base + 1h offset = 4007_6001h数据位D7D6D5D4D3D2D1D0读/写SPMIEReservedReservedMODFENBIDIROEReservedSPISWAISPC0复位00000000表26-3 SPI0_C2字段说明D7(SPMIE)SPI匹配中断使能。这是一个中断使能位,它使能SPI的硬件匹配中断功能(SPMF)。0:来自SPMF中断禁止(使

16、用轮询)。1:当SPMF为1时,请求一次硬件中断。D6(Reserved)保留D5(Reserved)保留D4(MODFEN)主模式故障功能使能位。当SPI配置为从机模式下,该位没有意义或效果。(引脚是从机选择输入。)在主模式下,该位决定引脚如何使用。有关详细信息,请参阅SSOE位在C1寄存器描述。0:模式错误功能禁止,主机引脚恢转换为通用I / O控制。1:模式错误功能启用,主机引脚作为模式默认输入或从机选择输出。D3(BIDIROE)双向模式输出使能位。当双向模式启用, SPI引脚控制0(SPC0)会被设置为1,BIDIROE位决定SPI数据输出驱动器是否启用单双向SPI I/ O引脚。根

17、据是否将SPI配置为主机或从机,它使用MOSI(MOMI)或MISO(SISO)引脚,分别为单SPI数据I / O引脚。当SPC0是0时,BIDIROE没有意义或效果。0:禁止输出驱动器,所以SPI数据I / O引脚配置为输入。1:SPI I / O引脚使能为输出。D2(Reserved)保留D1(SPISWAI)在等待模式下SPI停止。这位被用于等待模式下的节电。0:SPI时钟在等待模式下,继续运行。1:MCU进入等待模式,SPI时钟停止。D0(SPC0)SPI引脚控制0。该位使能双向引脚配置。0:SPI使用分开的引脚用于数据输入和数据输出(引脚模式是正常的)。在主模式下操作:MISO是主机

18、接收数据引脚,MOSI是主机发送数据引脚。在从模式下操作:MISO是从机输出引脚,MOSI是从机输入引脚。1:SPI配置为单线双向操作(引脚模式是双向的)。在主模式下的操作:MISO不被SPI使用。当BIDIROE为0时,MOSI是主机的输入,或是当BIDIROE为1时,会被设置为输入输出。 在从模式下的操作:当BIDIROE为0,MISO是从机的输入。BIDIROE是1时,作为从机的输入输出。MOSI不被SPI使用。30.3.3 SPI波特率寄存器(SPIx_BR)使用该寄存器为SPI主机来设置预分频因子和比特率。该寄存器可以在任何时间读出或写入。地址: 4007_6000h base +

19、2h offset = 4007_6002h数据位D7D6D5D4D3D2D1D0读0SPPR2:0SPPR3:0写复位00000000表30-4 SPI0_BR字段说明D7Reserved这个字段是保留的。只读字段保留,值一直为0。D6D4(SPPR2:0)SPI波特率预分频因子。这3位字段,选择其中在8个因子中的一个因子来设置SPI波特率预分频器。该预分频器的输入总线频率时钟(BUSCLK)。该分频器的输出驱动是SPI波特率分频器的输入。有关详细信息,请参阅“SPI波特率发生器”。000波特率预分频因子为1。001波特率预分频因子为2。010波特率预分频因子为3。011波特率预分频因子为4

20、。100波特率预分频因子为5。101波特率预分频因子为6。110波特率预分频因子为7。111波特率预分频因子为8。D3D0(SPR3:0)SPI波特率分频因子。这4位字段,选择九个SPI波特率因子中的一个。该因子的输入来自SPI波特率预分频器。“SPI波特率发生器”的详细信息,请参阅的描述。0000波特率除数是2。0001波特率除数是4。0010波特率除数是8。0011波特率除数是16。0100波特率除数是32。0101波特率除数是64。0110波特率除数为128。0111波特率除数为256。1000波特率除数为512。其他的都保留。29.3.4 SPI状态寄存器(SPIx_S)这个寄存器包含

21、只读状态位。对它写没有意义。注意从0位到第三位是没用的,一直是0。地址: 4007_6000h base + 3h offset = 4007_6003h数据位D7D6D5D4D3D2D1D0读SPRFSPMFSPTEFMODF0写复位00000000表30-5 SPI0_S字段描述D7(SPRF)SPI接收缓冲区满标志。SPRF在SPI传输完毕之后被设置,指示SPI的数据寄存器可以被读取。SPRF通过读SPRF来清除,然后读取SPI数据寄存器。0:无数据在接收数据缓冲区。1:接收数据缓冲区中有数据。D6(SPMF)SPI硬件匹配标志。当SPRF被置位后,如果接收数据缓冲区中的值跟M寄存器中的

22、值匹配时,SPMF被设置。如果要想清除该标志,读并写1。0:接收数据缓冲区的值不匹配M寄存器中的值。1:接收数据缓冲区的值匹配M寄存器中的值。D5(SPTEF)SPI发送缓冲区空标志。该位被置位。当发送DMA请求关闭时(TXDMAE为0),通过读S寄存器,SPTEF被清除,并且SPTEF被设置,然后写一个数据值到D。SPTEF被设置为1时,在写数据到D寄存器之前,S寄存器必须被读。否则,写入被忽略。所有的数据从发送缓冲区传输到发送移位寄存器后,SPTEF被自动设置。对于不忙的SPI,写入到数据寄存器中的数据几乎立刻被转移到移位器,因此,SPTEF在两个总线周期内被设置,从而允许在数据队列中的数

23、据被二次设置。在移位寄存器中的数据被发送完成之后,在发送寄存器等待的数据会自动移位到移位器,SPTEF被设置来提示在发送寄存器现有的空间可以提供给新数据。如果没有新数据在发送缓冲区中等待,SPTEF只是简单地保持设置,并不会把数据从缓冲器移动到移位寄存器。如果传输没有停止,数据会持续不断的被发送。0:SPI发送缓冲区非空。1:SPI发送缓冲区空。D4(MODF)主模式故障标志。如果SPI被配置为一个主机,MODF被置位,表明一些其他SPI设备也配置为主机。仅当MSTR是1,MODFEN是1,和SSOE是0,引脚作为一个模式故障输入,否则MODF将永远不会被置位。通过读MODF,清除MODF。如

24、果它是1,接着把SPI控制寄存器写1。0:无模式故障错误。1:检测到模式故障错误。D3D0该字段被保留。这个只读字段是保留的,值为0。30.3.5 SPI数据寄存器(SPIx_D)该寄存器是SPI数据的输入和输出数据寄存器。对这个寄存器的一次写操作会把数据写到发送数据缓冲区,从而使数据能够排队并发送。当SPI配置为主机,停留在传输数据寄存器排队等待的数据,在前一数据发送完成后,会立刻被发送。当发送数据缓冲区已经准备好接收下一发送数据时,S寄存器的SPTEF位会指示出来。在写入到SPI数据寄存器之前,要想设置SSPTEF,S寄存器必须被读。否则,该写操作被忽略。在下一个数据被传输之前,SPRF被

25、置位之后,SPI数据寄存器可以在任何时候被读取。在新的接收没有完成之前是不能读取接收数据缓冲器的数据的,这会导致一个溢出情况,来自新接收的数据可能被丢失。新数据丢失,是因为数据接收缓冲器仍然装有以前的数据,它还没有准备好接收新数据。芯片中没有指示溢出的状态位,所以程序设计者在接收一个新数据之前必须读取前一数据。地址: 4007_6000h base + 5h offset = 4007_6005h数据位76543210读/写数据位s7:0复位00000000表26-6 SPI0_D字段说明字段说明70 数据位s7:0数据(低字节)30.3.6 SPI匹配寄存器(SPIx_M)该寄存器包含硬件比

26、较值。当接收到的值在SPI接收数据缓冲器等于这个硬件比较值,SPI匹配标志(SPMF)被设置。地址: 4007_6000h base + 7h offset = 4007_6007h数据位D7D6D5D4D3D2D1D0读/写数据位s7:0复位00000000表26-7 SPI0_M字段说明字段说明70 数据位s7:0硬件比较值(低字节)30.4 功能说明本节描述了模块的功能。30.4.1 一般通过设置SPI控制寄存器1中的SPI使能位,来启动SPI系统。C1SPE位被置位,四个相关的SPI端口引脚用于SPI的功能为:(1)从机选择()。(2)串行时钟(SPSCK)。(3)主出/从入(MOSI

27、)。(4)主如/从出(MISO)。当SSPTEF = 1时,通过读取SPI状态寄存器(SPIx_S),可以初始化SPI主设备的SPI传输,然后将数据写入发送数据缓冲区(写入到SPIxD)。当传输完成时,接收到的数据被移动到接收数据缓冲区。当发送数据时向SPIxD寄存器写数据即可,当接收数据时读取SPIxD寄存器即可。在控制寄存器(SPIx_C1)中的时钟相位控制位(CPHA)和SPI的时钟极性控制位(CPOL)配合使用来选择要使用的四种可能的时钟格式。CPOL位只需选择一个非反相或反向的时钟。C1CPHA位通过在奇数编号或偶数编号的SPSCK信号边沿采样,来适应两个在根本上完全不同的协议。SP

28、I可以配置成为主设备或是从设备。SPI控制寄存器1中的C1MSTR位被置1,选择主机模式;当MSTR位被清0,从机模式被选择。30.4.2 主模式当C1MSTR位被置位后,SPI工作在主模式下。只有主SPI模块才可以起始传输。通过阅读SPIx_S寄存器传输开始,当SSPTEF = 1时,向SPI数据数据寄存器写数据。如果移位寄存器是空的,字节立即转移到移位寄存器。在串行时钟的控制下,数据开始移出到MOSI。(1)SPSCKSPR3,SPR2,SPR1和SPR0波特率选择位配合SPI波特率寄存器中的SPPR2,SPPR1,SPPR0的波特率预选位,来控制波特率发生器和确定传输速度。SPSCK引脚

29、为SPI时钟输出。通过SPSCK引脚,主机的波特率发生器控制外设的移位寄存器。(2)MOSI,MISO引脚在主模式下,该功能的串行数据输出引脚(MOSI)和串行数据输入引脚(MISO)由SPC0 BIDIROE控制位确定。(3)引脚如果C2MODFEN和C1SSOE位被置位,引脚被配置为从机选择输出功能。在传输时输出变成低电平,SPI处于闲置状态时变成高电平。如果C2MODFEN和C1SSOE被清除,引脚配置为输入模式故障检测。如果输入变成低电平,此时又有一个主机尝试驱动MOSI和SPSCK时,就会指示错误。在这种情况下,SPI立即切换到从机模式清除C1MSTR位,并禁止从机输出缓冲MISO(或是在双向模式的SISO)。因此,所有输出将终止,SPSCK,MOSI和MISO成为输入。如果传输过

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1