SPI--读写FLASH关于数据0x41的逻辑波形分析

说明

硬件平台

该数据波形对应-逻辑分析仪通道&单片机引脚:

通道 引脚 名称
3-黄色 PC0 NSS-ENABLE
5-红色 PA5 CLK
7-灰色 PA7 MOSI
6-橙色 PA6 MISO

W25Q64常用指令集

W25Q64常用指令集**

分段分析逻辑波形

图一(SPI发送数据)

spi发送数据

由图分析可知,该SPI配置参数,如下表,原因在表后
参数类型 数据
数据长度 8bit
数据传输模式 MSB-高位先行
CPOL 0–低电平为空闲
CPHA 0–上升沿采样(前)
ENABLE 低有效
分频系数 256
主从模式 全双工

经大概估算–72MHz经256分频(APB2)

传输有效位数为80bit
有效时间大概为271.9us
估算出的传输速率为294.23kbit/s
约等于281.25kbit/s

MOSI路径数据波形可分为三大阶段

发送指令阶段

  • 主机发送写指令0x06 + 读状态从机寄存器指令0x05 + 发送一段NULL的数据 (为了等待从机返回的寄存器当前值–这里值只要不是 1 就可以)
    发送指令阶段

发送地址阶段

  • 主机发送一个字节的页写入指令0x02 + 24位从机地址 (地址的排序是:A23-A16, A15-A8 ,A7-A0)
    发送地址阶段

发送数据阶段

  • 一字节数据0x41 + 读状态寄存器指令0x05 + 一字节空白数据 (此刻MISO通道在主机发完0x05指令后回复了状态寄存器此刻的值)
    发送数据阶段

全双工模式

由于MOSI发送数据同时,MISO数据回复,如图

写数据全双工

图二(SPI接收数据)

SPI接收数据

由图可知,该SPI配置参数,如下表,原因在表后
参数类型 数据
数据长度 8bit
数据传输模式 MSB-高位先行
CPOL 0–低电平为空闲
CPHA 0–上升沿采样(前)
ENABLE 低有效
分频系数 256
主从模式 全双工

经大概估算–72MHz经256分频(APB2)

传输有效位数为40bit
有效时间大概为138.05us
估算出的传输速率为289.75kbit/s
约等于281.25kbit/s

MOSI路径数据波形可分为

发送地址阶段

  • 主机发送一个字节的读数据指令0x02 + 24位从机地址 (地址的排序是:A23-A16, A15-A8 ,A7-A0)
    读数发送地址

发送数据阶段

  • 主机发送一字节空白数据0x00等待 (因为全双工模式,所以从机发送数据,同时主机接收)
    读数发送数据阶段

全双工模式

由于MOSI发送数据同时,MISO接收数据,如图

读数全双工

版权声明:本文为CSDN博主「青蓝灰紫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44113601/article/details/121293843

生成海报
点赞 0

青蓝灰紫

我还没有学会写个人说明!

暂无评论

相关推荐

RT-Thread Studio移植LAN8720A驱动

RTT网络协议栈驱动移植(霸天虎) 1、新建工程 ​ 工程路径不含中文路径名,工程名用纯英文不含任何符号。 2、用CubeMx配置板子外设 2.1、配置时钟 ​ 按照自己板子配置相应时钟。

【STM32Cube笔记】12-配置外部中断

【STM32Cube笔记】系列文章目录 1-基于STM32的VSCode入门级教程前言 2-STM32Cube安装教程 3-STM32CubeIDE汉化 4-STM32Cube配置时钟设置 5-跑马灯引脚配置 6-Cortex-M7内核基本配

stm32cubemx+HAL+串口接收中断

stm32cubemxHAL串口接收中断 在cubemx配置完串口和global interrupt后需要在keil中添加如下代码。 第一步:在main函数中添加接收中断标志位开启函数 HAL_UART_Receive_IT