欢迎来到天天文库
浏览记录
ID:13075053
大小:824.00 KB
页数:13页
时间:2018-07-20
《arm 学习资料 spi 基本内容 嵌入式技术 如何使用 spi 数据手册 spi 全双工通信 stm32 spi资料》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SPI(SerialPeripheralInterface)总线:串行外围总线接口一、SPI总线的简介:SPI是由摩托罗拉公司开发的全双工同步串行总线,没有总线仲裁机制,所以工作在单主机系统中。主设备启动与从设备的同步通讯,从而完成数据的交换。对于只能做从机的器件接口来说,SPI接口由SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟)和CS(从使能信号)。通讯时,数据由SDO输出,SDI输入,数据在时钟的上升沿或者下降沿由SDO输出,在紧接着的下降沿或者上升沿由SDI读入,这样经过8/16帧,以完成8/16位数据的传输。对于有的微控制器来说,它的硬件SPI即可做主机,也可
2、以做从机,即可实现主从配置,MOSI:主出从入、MISO:主入从出、SCK:串行时钟、SS:从属选择。(当做主机输出时,该信号用于选中需要访问的从机,SS输入高电平,外部决定其为主机;当做从机时,SS为输入或者一般的IO口使用)。常用的SPI接法:在软件配置的条件下SS不使用。1、SPI总线的通信时序(1)在SPI通信中,在全双工模式下,发送和接收是同事进行的(2)数据传输的时钟基来自主控制器的时钟脉冲;摩托罗拉没有定义任何通用的SPI时钟的规范,最常用的时钟设置是基于时钟极性CPOL和时钟相位CPHA两个参数。a)CPOL=0,表示时钟的空闲状态为低电平b)CPOL=1,表示时钟的空闲状态
3、为高电平c)CPHA=0,表示同步始终的第一个边沿(上升或者下降)数据被采样d)CPHA=1,表示同步始终的第二个边沿(上升或者下降)数据被采样即CPOL和CPHA的设置决定了数据采样的时钟沿。(3)在多个从设备的系统中,每个设备需要独立的使能信号,硬件比I2C系统复杂(4)没有应答机制确定是否收到数据,没有I2C总线系统安全。(5)SPI主机与之通信的从机的时钟极性和相位应该一致i.主设备SPI时钟和极性的配置由从机来决定ii.主设备的SDO、SDI和从设备的SDO、SDI一致iii.主从设备是在SCLK的控制下,同时发送和接受数据,并通过两个双向移位寄存器来交换数据。iv.工作原理如下:
4、上升沿输出数据,下降沿输入数据(6)SPI的四种工作模式SPI通信是串行发送或接收数据的,即一位一位的发送和接收、且传输一般是高位MSB在前,低位在后LSB。2、SPI总线通信的软件模拟(1)根据从机来选择SPI的工作模式(SPI0、SPI1、SPI2、SPI3),本例选择SPI0(2)上升沿输入数据,下降沿输出数据(AT45DB161D)a)主机发送数据,即从机接收数据SCK=0;MOSI=n(1或0);//接从机的SDI引脚Asm("NOP");//也许有适当的延时以使数据稳定SCK=1;//产生一个上升沿,也就是在上升沿来时把数据读走b)主机接收数据,即从机发送数据(接收一位数据)SC
5、K=1;//SCK=0;//产生一个下降沿Bit=MISO;//连接从机的SDO引脚a)主机向从机写入一个字节的数据VoidSPI_Write(unsignedchardata){Uchari;Bittemp;For(i=0;i<8;i++){Temp=(bit)(dat&0x80);Sck=0;MOSI=temp;Asm("NOP");SCK=1;//产生一个上升沿Data=data<<1;//传输下一位数据}}d):从机向主机发送一个字节的数据Ucharspi_read(void){Uchari,data=0;For(i=0;i<8;i++){Data=data<<1;Sck=1;SCK
6、=0;Data
7、=MISO;//连接从机的SDO引脚}Returndata;}SPI3SPI1SPI2SPI0二、STM32中的硬件SPI1、特点:(1)2个SPI接口:SPI1位于告诉总线的APB2总线上、SPI2位于低俗的APB1总线上。(2)硬件接口有:3根弦的全双工同步通讯;2根线的单双工同步通讯;1根线的双向数据线(另外一根时钟线)(3)数据帧宽度可编程:支持8位和16位数据传输格式。(SPI_CR1的DFF位)(4)可编程的数据传输顺序:高位在前或者低位在前(SPI_CR1寄存器中的LSBFIRST位)(5)可作为主设备也可作从设备(SPI_CR1寄存器的MSTR位)(6)可编程
8、的位传输速率:在主/从模式下,最大都可达18MHZ(SPI_CR1寄存器中的BR[2:0]位)(3)可通过硬件或软件控制主从设备的NSS引脚,使用软件时,可动态改变主从模式(4)可编程的时钟极性CPOL和时钟相位CPHA,可选择SPI四种模式中的一种(5)带终端性能的发送和接受标志:发送缓冲区空(SPI_SR寄存器中的TXE位),接收缓冲区非空(SPI_SR中的RXNE位)。(6)SPI总线忙状态标志位(SP
此文档下载收益归作者所有