SPI通信简述---以STM32G431KBU6驱动FLASH GD25Q16为例

知识点:

SPI通信原理,STM32配置SPI1,GD25Q16驱动步骤

详述:

1. SPI通信原理

SPI(Serial Peripheral interface,串行外围设备接口)是一种高速全双工的同步通信总线,SPI以主从方式工作,数据通信需要4IO线,其中SPI_CS用于主机控制选中从机芯片,一般低电平认为从机被选中,SPI_CLK是由主机产生的同步时钟用来同步数据,SPI_MOSI是主机发送引脚,SPI_MISO是主机接收引脚。SPI通信一般有4种模式,不同的从设备在出厂时便会被厂家配置为其中一种模式,不允许用户修改,主从设备必须在用一模式下通信,详见下表所示。

模式

时钟极性(CPOL)

时钟相位(CPHA)

0

0(空闲SCLK为低电平)

0(1个时钟沿采样数据,即上升沿)

1

0(空闲SCLK为低电平)

1(2个时钟沿采样数据,即下降沿)

2

1(空闲SCLK为高电平)

0(1个时钟沿采样数据,即下降沿)

3

1(空闲SCLK为高电平)

1(2个时钟沿采样数据,即上升沿)

2. STM32配置SPI1--基于CubeMx HAL库  

 

 CubxMx配置GPIO和SPI,此处选择16分频,则170MHZ下SPI时钟频率约为10.625MHZ.

3. GD25Q16驱动步骤

 从GD26Q16数据手册中获取通用信息:

1)支持SPI mode0和mode3模式,此处选择mode3模式,空闲状态SCLK为高电平,在时钟信号的第二个跳变沿采样数据(上升沿采样数据)

2)复位指令 99H 66H

 

3) 获取当前寄存器状态指令05H

 

 4) 获取芯片ID指令90H

 5)擦写一个SECTOR指令 20H 

6) 页写指令02H 

7) 读数据指令03H 

以获取ID号为例用示波器观察实际波形,如下,主机发送90H,从机回复ID号C8 14 

  注意此处是为了示波器显示波形规整,SPI1时钟由主频170MHZ分频64得来2.65625MHZ,若是分频16得来10.625MHZ时钟频率,则示波器会显示近视正弦波而非方波了,应该是跟示波器的分辨率有关系的。

主机发送90H

从机回复C8 14

代码中也按照上述步骤配置后便可以读写FLASH了。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值