看单片机原理图-外部FLASHW25Q64

系列文章目录

看单片机原理图-最小系统
看单片机原理图-最小系统电源电路
看单片机原理图-输入输出电路LED指示、按键输入
看单片机原理图-红外遥控、EEPROM
看单片机原理图-FLASH



前言

硬件:百问网100ASK_STM32F103_MINI开发板(STM32F103C8T6)
IDE:KEIL 5
按键GPIO口为:PA0
串口为:PA10(USART1_RX)、PA9(USART1_TX)

一、FLASH

Flash是一种非易失性存储器,在原理、技术和结构上与EEPROM有显著的不同,是一种可以快速探险可现场编程的快擦写存储器。W25Q64是大容量SPI FLASH产品,其容量为64Mb。。W25Q64将8M字节的容量分为128个块,每个块大小为64K字节,每个块又分为16个扇区,每个扇区4K个字节。W25Q64的最小擦除单位为一个扇区,也就是每次必须擦除4K个字节。所以,这需要给W25Q64开辟一个至少4K的缓存区,这样必须要求芯片有4K以上的SRAM才能有很好的操作。 W25Q64的擦写周期多达10W次,可将数据保存达20年之久,支持2.7~3.6V的电压,支持标准的SPI,还支持双输出/四输出的SPI。 有多种封装可供选择:

  • 8-pin SOIC 208-mil
  • 8-pad WSON 6x5-mm/8x6-mm
  • 16-pin SOIC 300-mil
  • 8-pad XSON 4x4-mm
  • 24-ball TFBGA 8x6-mm (6x4 ball array)
  • 24-ball TFBGA 8x6-mm (6x4/5x5 ball array)
  • 12-ball WLCSP
    在这里插入图片描述

 CS:片选信号输入
SPI片选引脚能够使能和失能器件的操作。当片选引脚为高电平时,器件没有被选中,串行数据输出引脚(DO)处于高阻抗状态。当片选引脚置为低时,器件被选中,可以进行读写操作。电源上电后,在执行一次操作之前,片选引脚必须由高电平转至低电平。

 串行数据输入、输出和IOs (DI、DO和IO0、IO1、IO2、IO3)
W25Q64JV支持标准SPI, Dual SPI和Quad SPI操作。标准SPI指令使用单向DI(输入)引脚串行地将指令、地址或数据写入串行时钟(CLK)输入引脚上升沿上的设备。标准SPI还使用单向DO(输出)在CLK下降沿从设备读取数据或状态。
Dual和Quad SPI指令使用双向IO引脚串行地将指令、地址或数据写入CLK上升沿上的设备,并从CLK下降沿上的设备读取数据或状态。

 WP(IO2):写保护输入
写保护(/WP)引脚可以用来防止状态寄存器被写入。与状态寄存器的块保护(CMP, SEC, TB, BP2, BP1和BP0)位和状态一起使用
寄存器保护(SRP)位、一个4KB扇区或整个内存阵列都可以被硬件保护。WP引脚低激活。
 GND:地信号
 CLK:串行时钟输入
SPI串行时钟输入引脚(CLK)为串行输入和输出操作提供时序
 HOLD:Hold输入
HOLD引脚允许设备在被主动选择时被暂停。当/HOLD降低时,当/CS降低时,DO引脚将处于高阻抗,DI和CLK引脚上的信号将被忽略
(不在乎)。当/HOLD调高时,设备可以恢复运行。
 VCC:电源

### 关于W25Q64电路设计及相关应用 #### 芯片概述 W25Q64是一款高性能的串行闪存芯片,其存储容量为8M字节(即64Mb),并被划分为多个块和扇区结构。具体而言,该芯片由128个块组成,每块大小为64K字节,而每个块又被细分为16个扇区,每个扇区为4K字节[^2]。 #### 电气特性 在实际应用中,W25Q64的工作电压范围为2.7V至3.6V,适用于低功耗场景下的嵌入式系统设计。此外,在数据传输过程中,它支持高达80MHz的标准SPI协议以及双输出/四输出模式,从而显著提升了数据吞吐量。 #### 存储管理特点 由于W25Q64采用的是基于扇区的擦除机制,因此最小擦除单位是一个完整的4K字节扇区。这意味着如果需要频繁更新部分数据,则应考虑额外配置至少4KB大小的外部SRAM作为临时缓冲区域来优化操作效率。 #### 可靠性和寿命指标 此款Flash具备极高的耐用度,能够承受十万次以上的编程与擦除循环,并且即使经过长时间储存也能保持所记录信息的有效性长达二十年以上。 #### 设计建议 当构建围绕W25Q64为中心的应用平台时,除了满足基本硬件连接需求外,还需特别注意以下几点: - **电源稳定性**:确保提供稳定可靠的供电环境以防止因瞬间掉电而导致的数据丢失风险; - **信号完整性**:对于高速通信接口如SPI总线来说,合理布局PCB走线可以减少电磁干扰影响通讯质量; - **软件驱动开发**:编写高效的固件程序实现对设备命令集的支持,包括但不限于页面读取、页编程、整块清除等功能调用; 以下是简单的初始化代码示例用于演示如何通过Arduino IDE控制W25Q64: ```cpp #include <SPI.h> #define CS_PIN 10 // 定义CS引脚编号 void setup() { pinMode(CS_PIN, OUTPUT); digitalWrite(CS_PIN, HIGH); SPI.begin(); } // 发送单条指令函数定义 void sendCommand(byte cmd){ digitalWrite(CS_PIN, LOW); SPI.transfer(cmd); digitalWrite(CS_PIN, HIGH); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值