【嵌入式模块】SPI通信模块

1. W25Q64

1.1 简介

W25Qxx系列是一种低成本,小型化,使用简单的非易失 存储器;

常用于数据存储,字库存储,固件程序存储等等场景;

属于Nor Flash;

时钟频率:80MHz、160MHz(双重SPI)、320MHz(四重SPI)

可以参考下图:

选择WP HOLD DI均为数据线,此时可以双重SPI和四重SPI:

存储容量(24位地址):

型号 容量
W25Q40 4Mbit / 512KByte
W25Q80 8Mbit / 1MByte
W25Q16 16Mbit / 2MByte
W25Q32 32Mbit / 4MByte
W25Q64 64Mbit / 8MByte
W25Q128 128Mbit / 16MByte
W25Q256 256Mbit / 32MByte

1.2 硬件电路

主要引脚功能:

引脚 功能
VCC、GND 电源(2.7~3.6V)
CS(SS) SPI片选
CLK(SCK) SPI时钟
DI(MOSI) SPI主机输出从机输入
DO(MISO) SPI主机输入从机输出
WP 写保护
HOLD 数据保持

1.3 W25Q64框图

MaxAddr=(8×1024×1024)−1=8388607=0x7FFFFF\boldsymbol{\text{MaxAddr} = (8 \times 1024 \times 1024) - 1 = 8388607 = 0x7FFFFF}MaxAddr=(8×1024×1024)−1=8388607=0x7FFFFF

首先将存储空间划分为块Block;

然后块再划分为扇区Sector

最后划分为页Page;

共有64块,16扇区,16页;

1.4 Flash操作注意事项

1.4.1 写入操作

  • 写入操作前,必须先进行写使能
  • 每个数据位只能由1改写为0,不能由0改写为1
  • 写入数据前必须先擦除,擦除后,所有数据位变为1
  • 擦除必须按最小擦除单元进行
  • 连续写入多字节时,最多写入一页的数据,超过页尾位置的数据,会回到页首覆盖写入
  • 写入操作结束后,芯片进入忙状态,不响应新的读写操作

1.4.2 读取操作

  • 直接调用读取时序,无需使能,无需额外操作,没有页的限制,读取操作结束后不会进入忙状态,但不能在忙状态时读取
相关推荐
fj800j2 小时前
首助记账本新增「标签管理」功能:跨分类归集项目账目,一个账本管完所有事
数据结构·经验分享·笔记·学习·分布式账本
陈年老古董2 小时前
Hive DML 语言学习笔记:数据加载、插入、导出与导入
hive·笔记·学习·mysql
星恒随风3 小时前
Linux进程基础(二):进程调度、上下文切换、O(1)调度器、环境变量与虚拟地址空间
linux·笔记·学习·状态模式
yi0114 小时前
DAY23: LeetCode 27 → 283:从移除元素到移动零,理解快慢指针的两种思路
人工智能·笔记·python·算法·leetcode·排序算法·双指针
陈年老古董4 小时前
Hive 文件格式与查询学习笔记
hive·笔记·学习
weixin_448119944 小时前
Datawhale Easy Data × AI:构建知识与记忆驱动的 Agent笔记3
人工智能·windows·笔记
ljt27249606615 小时前
Vue笔记(十二)--mitt
前端·笔记
一隅论数智19 小时前
OWL(Web Ontology Language)介绍与使用举例(二)
大数据·经验分享·笔记·学习·自然语言处理·学习方法·政务
sunoo-2291 天前
【嵌入式Linux驱动学习】Day1-Day2 全流程梳理:环境搭建→U-Boot→内核→根文件系统→驱动基础
linux·运维·驱动开发·笔记·学习·阿里云·恩智浦