Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5787365
  • 博文数量: 409
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 8273
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-23 19:15
个人简介

qq:78080458 学习交流群:150633458

文章分类

全部博文(409)

文章存档

2019年(127)

2018年(130)

2016年(20)

2015年(60)

2014年(41)

2013年(31)

分类: 嵌入式

2016-07-24 08:39:47

SPI总线

1、何为SPI

    SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。

    SPI是一个环形总线结构,由ss(cs)scksdisdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。上升沿发送、下降沿接收、高位先发送。上升沿到来的时候,sdo上的电平将被发送到从设备的寄存器中。下降沿到来的时候,sdi上的电平将被接收到主设备的寄存器中。


2、SPI模型

    
1MOSI:主器件数据输出,从器件数据输入
2MISO:主器件数据输入,从器件数据输出
3SCLK :时钟信号,由主器件产生
4/SS:从器件使能信号,由主器件控制


3、SPI时序

    SPI接口有四种不同的数据传输时序,取决于CPOLCPHL这两位的组合下图表现了这四种时序

CPOL是用来决定SCK时钟信号空闲时的电平,CPOL0,空闲电平为低电平;CPOL1时,空闲电平为高电平。CPHA是用来决定采样时刻的,CPHA=0,在每个周期的第一个时钟沿采样;CPHA1,在每个周期的第二个时钟沿采样。

     SPI主模块和与之通信的外设音时钟相位和极性应该一致。



STM32的SPI接口

1、接口特性

1)基于三条线的全双工同步传输

2)8位或者16位的数据帧

3)主模式或从模式

4)最先以为LSB或者MSB

5)SPI总线忙标志


2、功能说明




NSS引脚可以选择软件管理,这样比较容易操作,而从器件的NSS引脚可以用单片机的一个GPIO口来驱动,只要将IO电平拉低就可以选中从器件


3、时序
注意,主器件的相位和极性一定要和从器件匹配。


4、将STM32配置成主器件


5、寄存器

1)控制寄存器SPI_CR1








2)控制寄存器SPI_CR1




代码

1、初始化



2、收发数据





阅读(9276) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~