SPI FLASH (一)

一 SPI 协议

spi了解

spi也叫串行外围设备接口,它具有高速,全双工,实时的特点,主要用在STM32连接FLASH,实时时钟,AD转换器,还有数字信号处理器等外设上。

主从模式

SPI没有发送者和接收者,它是一个环形结构,发送1Bit的数据同时也会接收1Bit的数据。SPI中将两者划分为主设备和从设备,可使用的连接方式:一主连一从或者一主连多从。

通信的信号线

实现完整的spi功能,需要4根线。SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。
数据输入SDI:数据输入是根据主设备而言,对于从设备就是数据输出,对于输入和输出,SPI允许一位一位或者任意位传输。
数据输出SDO:数据输出是根据主设备而言,对于从设备就是数据输入。所以再连接时候,主设备的输入线需要连接从设备的输出线,同理。
时钟SCK:由主设备产生,用来同步主从通信,当无时钟时从设备无法工作。
片选CS:主设备通过片选信号控制从设备使能和失能。通过对从设备的使能和失能来实现一主多从。

时钟CPOL极性

时钟状态可以分为空闲状态和活跃状态,当正在发送数据时候自然是活跃状体,反之则是空闲状态。时钟的极性可以理解为当为空闲状态时,时钟是高电平还是低电平。
CPOL=0,时钟空闲时候为低电平,所以当SCLK有效的时候,就是高电平
CPOL=1,时钟空闲时候为高电平,所以当SCLK有效的时候,就是低电平

时钟CPHA相位

时钟相位决定数据采集使用奇数边沿还是偶数边沿。
CPHA=0,使用奇数边沿
CPHA=1,使用偶数边沿

四种模式

由相位和极性可以得到4种模式
Mode 0 CPOL=0, CPHA=0
Mode 1 CPOL=0, CPHA=1
Mode 2 CPOL=1, CPHA=0
Mode 3 CPOL=1, CPHA=1
具体使用那个模式由从设备具体支持那些模式,主设备再进行相应的配置。
在这里插入图片描述

数据交换

1,移位寄存器SSPSR控制往缓冲区SSPBUF中移入或者移出数据。主要给寄存器配置 Bus-Width和Channel-Width,两者功能相识,用来指定设备到缓冲区的数据传输单位(BYTE等)以及到主设备到从设备的传输单位。
2,交换流程:我们先往主设备的移位寄存器中写入将要发送出去的数据, 同时移位寄存器根据 Bus-Width将数据移入缓冲区中, 然后缓冲区根据 Channel-Width将数据移出, 通过主设备的输出线传给从设备的输入线, 从设备移位寄存器再将数据移入缓冲区中. 与此同时, 从设备根据每次接收数据的大小(Channel-Width), 通过从设备的输出线再将相同大小的数据发送给主设备, 主设备再将接收的数据移入缓冲区中.完成一次交换。

交换举例

spi线操作高位,所以先读取左边第一位。再左移一位
步 骤 1- 主 000000 从 111111 sdi 0 sdo 0
步骤2-1 主 00000x 从 11111x sdi 1 sdo 0
步骤2-2 主 000001 从 111110 sdi 0 sdo 0
步骤3-1 主 00001x 从 11110x sdi 1 sdo 0
步骤3-2 主 000011 从 111100 sdi 0 sdo 0
步骤4-1 主 00011x 从 11100x sdi 1 sdo 0
步骤4-2 主 000111 从 111000 sdi 0 sdo 0

步 骤 -n 主 111111000000 sdi 0 sdo 0

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

工农村贴膜小哥

我倒是要看看是那个憨憨在给我打

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值