第九章通用SPI的一般应用.docx

上传人:lao****ou 文档编号:580700 上传时间:2024-02-13 格式:DOCX 页数:16 大小:99.46KB
下载 相关 举报
第九章通用SPI的一般应用.docx_第1页
第1页 / 共16页
第九章通用SPI的一般应用.docx_第2页
第2页 / 共16页
第九章通用SPI的一般应用.docx_第3页
第3页 / 共16页
第九章通用SPI的一般应用.docx_第4页
第4页 / 共16页
第九章通用SPI的一般应用.docx_第5页
第5页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第九章通用SPI的一般应用.docx》由会员分享,可在线阅读,更多相关《第九章通用SPI的一般应用.docx(16页珍藏版)》请在第一文库网上搜索。

1、第九章通用SPI的一般应用9.1 SPI简介在大容量产品上,SP1接口可以配置为支持SP1协议或者支持I2S音频协议。SP1接口默认工作在SP1协议下,可以通过软件把功能从SP1模式切换到I2S模式。在小容量和中容量产品上,不支持I2S音频协议。串行外设接口(SPI)允许芯片与外部设备以半/全双工、同步、串行方式通信。此接口可以被配置成主模式,并为外部从设备提供通信时钟(SCK)。接口还能以多主配置方式工作。它可用于多种用途,包括使用一条双向数据线的双线单工同步传输,还可使用CRC校验的可靠通信。I2S也是一种3管脚的同步串行接口通讯协议。它支持四种音频标准,包括飞利浦I2S标准,MSB和1S

2、B对齐标准,以及PCM标准。它在半双工通讯中,可以工作在主和从2种模式下。当它作为主设备时,通过接口向外部的从设备提供时钟信号。警告:由于SPI3/I2S3的部分管脚与JTAG管脚共享(SPI3_NSS/I2S3_WS与JTD1,SPI3_SCK/I2S3_CK与JTDO),因此这些管脚不受IO控制器丽W,他们(注每次复位后)被默认保留为JTAG用途。如果用户想把管脚配置给SPI3/I2S3,必须(在DEBUG时)关闭JTAG并切换至SWD接口,或者(在标准应用时)同时关闭JTAG和SWD接口。9.1.1 SPI特征3线全双工同步传输;带或不带第三根双向数据线的双线单工同步传输;8或16位传输

3、帧格式选择;主或从操作;支持多主模式;8个主模式波特率预分频系数(最大为fPC1K/2);从模式频率(最大为iPC1K/2);主模式和从模式的快速通信:最大SP1速度达到18MHz;主模式和从模式下均可以由软件或硬件进行NSS管理:主/从操作模式的动态改变;可编程的时钟极性和相位;可编程的数据顺序,MSB在前或1SB在前;可触发中断的专用发送和接收标志;SPI总线忙状态标志;支持可靠通信的硬件CRC;可触发中断的主模式故障、过载以及CRC错误标志;支持DMA功能的1字节发送和接收缓冲器:产生发送和接受请求o9.1.2 SPI引脚描述通常SPI通过4个管脚与外部器件相连:1MISO:主设备输入/

4、从设备输出管脚。该管脚在从模式下发送数据,在主模式下接收数据。2M0SI:主设备输出/从设备输入管脚。该管脚在主模式下发送数据,在从模式下接收数据。3SCK:串口时钟,作为主设备的输出,从设备的输入4NSS:从设备选择。这是一个可选的管脚,用来选择主/从设备。它的功能是用来作为“片选管脚”,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。从设备的NSS管脚可以由主设备当作一个标准的IO来驱动。一旦被使能(SSOE位),NSS管脚也可以作为输出管脚,并在SP1设置为主模式时拉低;此时,所有NSS管脚连接到主设备NSS管脚的SP1设备,会检测到低电平,如果它们被设置为NSS硬件模式,就会自

5、动进入从设备状态。从MSB1t1SBIt8-bit移位寄存器卜一IMISOMOSI如果没有使用NSSNSS可被软件控制图911是一个单主和单从设备互连的例子。主IMSBIt1SBitJ1MOSI&bit移位寄存装卜SP1时钟发生器图911单主和单从应用Me)SI脚相互连接,M1Se)脚相互连接。这样,数据在主和从之间串行地传输(MSB位在前)。通信总是由主设备发起。主设备通过MoS1脚把数据发送给从设备,从设备通过M1SO引脚回传数据。这意味全双工通信的数据输出和数据输入是用同一个时钟信号同步的;时钟信号由主设备通过SCK脚提供。NSS脚管理有2种NSS模式:1软件NSS模式:可以通过设置SP

6、1CR1寄存器的SSM位来使能这种模式。在这种模式下NSS管脚可以用作它用,而内部NSS信号电平可以通过写SP1CR1的SSI位来驱动2硬件NSS模式,分两种情况:NSS输出被使能:当STM32F10xx工作为主SPI并且NSS输出已经通过SPI_CR2寄存器的SSOE位使能,这时NSS管脚被拉低,所有NSS管脚与它的NSS管脚相连并配置为硬件NSS的SPI设备,将自动变成从SPI设备。此时该设备不能工作在多主环境。NSS输出被关闭:允许操作于多主环境。9.1.3 数据传输模式SP1有四种不同的数据传输格式时序。SP1CR寄存器的CPo1和CPHA位,能够组合成四种可能的时序关系。CPO1:时

7、钟极性位,控制在没有数据传输时时钟的空闲状态电平。此位对主模式和从模式下的设备都有效。如果CPo1被清XT,SCK引脚在空闲状态保持低电平;如果CPO1被置”SCK引脚在空闲状态保持高电平。CPHA:时钟相位,被置,r,SCK时钟的第二个边沿(CPo1位为O时就是下降沿,CPo1位为1时就是上升沿)进行数据位的采样,数据在第一个时钟边沿被锁存。如果CPHA位被清U,SCK时钟的第一边沿(CPo1位为。时就是下降沿,CPo1位为1时就是上升沿)进行数据位采样,数据在第二个时钟边沿被锁存。CPO1时钟极性和CPHA时钟相位的组合选择数据捕捉的时钟边沿。图9-1-2显示了SPI传输的4种CPHA和C

8、Po1位组合。此图可以解释为主设备和从设备的SCK脚、MISo脚、MoS1脚直接连接的主或从时序图。注意:1.在改变CPo1/CPHA位之前,必须清除SPE位将SP1禁止。2 .主和从必须配置成相同的时序模式。3 .SCK的空闲状态必须和SP1CR1寄存器指定的极性一致(CPo1为1时,空闲时应上拉SCK为高电平;CPe)1为。时,空闲时应下拉SCK为低电平)。4 .数据帧格式(8位或16位)由SPI-CR1寄存器的DFF位选择,并且决定发送/接收的数据长度CPHA=1皿=I-1n1r1r1n1r1r1rcpo1=-I!*_II11(fro1)MXXMJ18。16位数据X啊A*/*NSS./I

9、I111II111II1III1.IIII;。从)IV,TI1,IIII1IIICPHA=0I1I1I1I1I1II1ICPO1=1,_n_njjnjn_rJCiM1(from主)8Ar16位数据”;MOS.NMS血XT:X1X7rT1蚓册Uron1从)NSS!:=:K:II。从):;81II1IIII图9-12SP1数据传输格式的四种时序9.1.4 数据帧格式:根据SP1CR1寄存器中的1SBHRST位,输出数据位时可以MSB在先也可以1SB在先。根据SP1CR1寄存器的DFF位,每个数据帧可以是8位或是16位。所选择的数据帧格式对发送和/或接收都有效。9.1.5 SPI从模式在从配置里,S

10、CK引脚用于接收到从主设备来的串行时钟。配置步骤:1设置DFF位以定义数据帧格式为8位或16位2选择CPO1和CPHA位来定义数据传输和串行时钟之间的相位关系(见图9-2)。为保证正确的数据传输,从设备和主设备的CPO1和CPHA位必须配置成相同的方式。3帧格式(MSB在前还是1SB在前取决于SP1CR1寄存器中的1SBFIRST位)必须和主设备相同。4硬件模式下(参考从选择(NSS)脚管理部分),在完整的数据帧(8位或16位)发送过程中,NSS引脚必须为低电平。软件模式下,设置SP1CRI寄存器中的SSM位并清除SS1位。5清除MSTR位,设置SPE位,使相应引脚工作于SP1模式下。在这个配

11、置里,MoS1引脚是数据输入,MISO引脚是数据输出。数据发送过程数据字被并行地写入发送缓冲器。当从设备收到时钟信号,并且在MOSI引脚上出现第一个数据位时,发送过程开始,第一个位被发送出去。余下的位(对于8位数据帧格式,还有7位;对于16位数据帧格式,还有15位)被装进移位寄存器。当发送缓冲器中的数据传输到移位寄存器时,SP1SP寄存器里的TXE标志被设置。如果设置了AP1CR2寄存器上的TXE1E位,将会产生中断。数据接收过程对于接收方,当数据接收完成时:移位寄存器中的数据传送到接收缓冲器,SP1SR寄存器中的RXNE标志被设置。如果设置了SP1CR2寄存器中的RXEIE位,则产生中断。在

12、最后一个采样时钟边沿后,RXNE位被置“二移位寄存器中接收到的数据字节被传送到接收缓冲器。当读SP1DR寄存器时,SP1设备返回这个值。读SP1DR寄存器时,RXNE位被清除。9.1.6 SP1主模式在主配置时,串行时钟在SCK脚产生。配置步骤:1通过SP1CR1寄存器的BR2:0位定义串行时钟波特率。2选择CPO1和CPHA位,定义数据传输和串行时钟间的相位关系(见图9-2)。3设置DFF位来定义8或16位数据帧格式。4配置SP1CR1寄存器的1SBFIRST位定义帧格式。5如果NSS引脚需要工作在输入模式,硬件模式中在整个数据帧传输期间应把NSS脚连接到高电平;在软件模式中,需设置SP1C

13、RI寄存器的SSM和SSI位。如果NSS引脚工作在输出模式,则只需设置SSoE位。6必须设置MSTR和SPE位(只当NSS脚被连到高电平,这些位才能保持置位)。在这个配置中,MoS1脚是数据输出,而MISo脚是数据输入。数据发送过程当一字节写进发送缓冲器时,发送过程开始。在发送第一个数据位时,数据字被并行地(通过内部总线)传入移位寄存器,而后串行地移出到MoS1脚上;MSB在先还是1SB在先,取决于SP1CR1寄存器中的1SBF1RST位。数据从发送缓冲器传输到移位寄存器时TXE标志将被置位,如果设置SP1CR1寄存器中的TXE1E位,将产生中断。数据接收过程对于接收器来说,当数据传输完成时:

14、移位寄存器里的数据传送到接收缓冲器,并且RXNE标志被置位。如果SP1CR2寄存器中的RXEIE位被设置,则产生中断。在最后采样时钟沿,RXNE位被设置,在移位寄存器中接收到的数据字被传送到接收缓冲器。读SP1DR寄存器时,SPI设备返回接收到的数据字。读SP1DR寄存器将清除RXNE位。一旦传输开始,如果下一个将发送的数据被放进了发送缓冲器,就可以维持一个连续的传输流。在试图写发送缓冲器之前,需确认TXE标志应该是1。9.1.7 状态标志应用程序通过3个状态标志可以完全监控SPI总线的状态。忙(BUSy)标志:此标志表明SPI通信层的状态。当它被设置时,表明SPI正忙于通信,并且/或者在发送

15、缓冲器里有一个有效的数据字正在等待被发送。此标志的目的是说明在SPI总线上是否有正在进行的通信。以下情况时此标志将被置位:1 .数据被写进主设备的SPI-DR寄存器上。2.SCK时钟出现在从设备的时钟引脚上。发送/接收一个字(字节)完成后,BUSY标志立即清除;此标志由硬件设置和清除。监视此标志可以避免写冲突错误。写此标志无效。仅当SPE位被设置时此标志才有意义。注:在主接收模式下(单线双向),不要查询忙标志位(BUSY_F1AG)发送缓冲器空闲标志(TXE)此标志被置位时表明发送缓冲器为空,因此下一个待发送的数据可以写进缓冲器里。当发送缓冲器有一个待发送的数据时,TXE标志被清除。当SP1被禁止时,此标志被清除。接收缓冲器非空(RXNE)此标志为I时表明在接收缓冲器中包含有效的接收数据。读SPI数据寄存器可以清除此标志1.1.7 利用

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

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服