首页 > 编程知识 正文

spi总线协议,spiflash编程器

时间:2023-05-04 09:25:22 阅读:51361 作者:75

摘要不是所有的flash都是spi协议。 在本节中,您将学习使用spi协议传输数据的flash

SPI是摩托罗拉公司提出的通信协议,与IIC一样是板级协议,但比IIC速度快得多。

SPI是全双工通信

在SPI物理层特性SPI中,有SCK、MOSI、MISO、信号选择线SS这3条公共总线。

SPI协议使用SS信号线指定地址,主机选择从机后,将对应的SS信号线设置为0,SS被上拉,表示结束信号。

SCK时钟信号线源自本体,时钟频率为总线的一半、18M或36M

MOSI根据英文缩写,主输出从输入变成主输出端、从输入端。 MISO正好相反。 两条总线可以同时进行,也就是说全双工,可以同时发送和接收数据。

通过NSS信号线将(单选线)设为低电平,选择从站。

在SCK时钟的控制下,可以在上升沿或下降沿进行触发和采样,同时进行输入和输出。

何时触发和何时采样由时钟的相位决定(CPHA ),并且当CPHA=0时,在时钟的奇数边缘进行采样,并且在偶数边缘触发。 CPHA=1时,在时钟的偶数边缘进行采样,在奇数边缘触发。

经上共有以下四种模式

stm32 SPI功能框图stm32 SPI外围设备概述stm32 SPI外围设备可以用作通信的主设备或从设备,支持SCK时钟的PCLK1和PCLK2的双分频。 在四种完全支持SPI的模式下,数据帧长度可以设置为8位或16位,并且可以设置数据MSB或LSB先行(高位先行或低位先行)。

时钟控制逻辑波特率寄存器由CR寄存器的3位构成

在数据控制逻辑数据寄存器DR 16位中,要被发送或接收的数据是8位或16位,因此当使用8位模式时,DR寄存器的前8位不能被使用,其强制为0。 16为传输模式时,均可使用。 接收和发送都用移位寄存器工作。 SPI选择MSB或LSB配置,一旦选择高位比特超前,就可以发送DR的最高位以开始传送,相反从DR的地位开始传送。图中的发送缓冲区就是DR寄存器

SPI初始化结构体的说明

1、SPI的单向模式: CR1寄存器的位配置

2、SPI模式:选择主机还是从机使用,配置CR1寄存器。 如果是主机,则需要产生SCK信号的定时,如果是从机,则需要接收外来的SCK定时,总之需要时序信号是由主机产生的。

3、配置数据帧长: 8位或16位,也可以是CR1寄存器配置

4、设定时钟极性CPOL :刚开始的SCK时钟的电平状态。 CR1寄存器的构成

5、设置时钟相位CPHA :时钟相位为0时,在SCK奇数边缘进行采样,偶数边缘触发。 通信中无法变更。

5、设置芯片选择信号是软件还是硬件触发:配置CR1寄存器

6、波特率控制器,设置时钟分频系数:配置CR1寄存器

7、配置CR1寄存器,设置上位先行还是下位先行(MSB、LSB ) )

8、CRC检查:麻烦、不启用、不配置

简要介绍flash的存储特性W25Q128。 换算为128 mbit、16MB,将该16M大小的空间分成几个块,每个块分为几个扇区。

flash的存储特性: 1、写入数据前必须清除

2、擦除时将所有数据位复位为1

3、写入数据只能将1更改为0

4、闪存最小擦除单位为扇区,一擦除最少为一个扇区

其实,擦除是指改变了某个位置1,然后改变了位置1

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。