ARM 学习资料 SPI 基本内容 嵌入式技术 如何使用 SPI 数据手册 SPI 全双工通信 STM32 SPI资料.doc

ARM 学习资料 SPI 基本内容 嵌入式技术 如何使用 SPI 数据手册 SPI 全双工通信 STM32 SPI资料.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM 学习资料 SPI 基本内容 嵌入式技术 如何使用 SPI 数据手册 SPI 全双工通信 STM32 SPI资料

SPI(Serial Peripheral Interface)总线 :串行外围总线接口 SPI总线的简介: SPI是由摩托罗拉公司开发的全双工同步串行总线,没有总线仲裁机制,所以工作在单主机系统中。主设备启动与从设备的同步通讯,从而完成数据的交换。对于只能做从机的器件接口来说,SPI接口由SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟)和CS(从使能信号)。通讯时,数据由SDO输出,SDI输入,数据在时钟的上升沿或者下降沿由SDO输出,在紧接着的下降沿或者上升沿由SDI读入,这样经过8/16帧,以完成8/16位数据的传输。 对于有的微控制器来说,它的硬件SPI即可做主机,也可以做从机,即可实现主从配置,MOSI:主出从入、MISO:主入从出、SCK:串行时钟、SS:从属选择。(当做主机输出时,该信号用于选中需要访问的从机,SS输入高电平,外部决定其为主机;当做从机时,SS为输入或者一般的IO口使用)。常用的SPI接法:在软件配置的条件下SS不使用。 SPI总线的通信时序 在SPI通信中,在全双工模式下,发送和接收是同事进行的 数据传输的时钟基来自主控制器的时钟脉冲;摩托罗拉没有定义任何通用的SPI时钟的规范,最常用的时钟设置是基于时钟极性CPOL和时钟相位CPHA两个参数。 CPOL=0,表示时钟的空闲状态为低电平 CPOL=1,表示时钟的空闲状态为高电平 CPHA=0,表示同步始终的第一个边沿(上升或者下降)数据被采样 CPHA=1,表示同步始终的第二个边沿(上升或者下降)数据被采样 即CPOL和CPHA的设置决定了数据采样的时钟沿。 在多个从设备的系统中,每个设备需要独立的使能信号,硬件比I2C系统复杂 没有应答机制确定是否收到数据,没有I2C总线系统安全。 SPI主机与之通信的从机的时钟极性和相位应该一致 主设备SPI时钟和极性的配置由从机来决定 主设备的SDO、SDI和从设备的SDO、SDI一致 主从设备是在SCLK的控制下,同时发送和接受数据,并通过两个双向移位寄存器来交换数据。 工作原理如下:上升沿输出数据,下降沿输入数据 (6)SPI的四种工作模式 SPI通信是串行发送或接收数据的,即一位一位的发送和接收、且传输一般是高位MSB在前,低位在后LSB。 SPI总线通信的软件模拟 根据从机来选择SPI的工作模式(SPI0、SPI1、SPI2、SPI3),本例选择SPI0 上升沿输入数据,下降沿输出数据(AT45DB161D) 主机发送数据,即从机接收数据 SCK=0 ; MOSI=n(1或0); //接从机的SDI引脚 Asm(NOP); //也许有适当的延时以使数据稳定 SCK=1; //产生一个上升沿,也就是在上升沿来时把数据读走 主机接收数据,即从机发送数据(接收一位数据) SCK=1; // SCK=0; //产生一个下降沿 Bit=MISO; //连接从机的SDO引脚 主机向从机写入一个字节的数据 Void SPI_Write(unsigned char data) { Uchar i; Bit temp; For(i=0;i8;i++) { Temp=(bit)(dat0x80); Sck=0; MOSI=temp; Asm(NOP); SCK=1; //产生一个上升沿 Data=data1;//传输下一位数据 } } d):从机向主机发送一个字节的数据 Uchar spi _read(void) { Uchar i,data =0; For(i=0;i8;i++) { Data=data1; Sck=1; SCK=0; Data|=MISO;//连接从机的SDO引脚 } Return data; } STM32中的硬件SPI 特点: (1)2个SPI接口:SPI1位于告诉总线的APB2总线上、SPI2位于低俗的APB1总线上。 (2)硬件接口有:3根弦的全双工同步通讯;2根线的单双工同步通讯;1根线的双向数据线(另外一根时钟线) 数据帧宽度可编程:支持8位和16位数据传输格式。(SPI_CR1的DFF位) 可编程的数据传输顺序:高位在前或者低位在前(SPI_CR1寄存器中的LSBFIRST位) 可作为主设备也可作从设备(SPI_CR1寄存器的MSTR位) 可编程的位传输速率:在主/从模式下,最大都可达18MHZ(SPI_CR1寄存器中的BR[2:0]位) 可通过硬件或软件控制主从设备的NSS引脚,使用软件时,可动态改变主从模式 可编程的时钟极性CPOL和时钟相位CPHA,可选择SPI四种模式中的一种 带终端性能的发送和接受标志:发送缓冲区空(SPI_SR寄存器中的TXE位),接收缓冲区非空(SPI_SR中的RXNE位

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档