D-020 SPI FLASH硬件电路设计
创始人
2024-03-02 00:05:15
0

SPI FLASH硬件电路设计

  • 1 简介
  • 2 EEPROM 和SPI Flash的区别
  • 3 电路设计实战
  • 4 电路设计要点

1 简介

SPI FLASH(Serial Peripheral Interface)是串行外设接口的缩写,是一种高度、全双工、同步的通信总线。一般应用在MCU与外围设备之间通讯,广泛应用在FLASH,模数转换器等。

常用的内部通信接口:UART、IIC、SPI

常用的外部通信接口:RS232、RS485、CAN

SPI flash 就是通过串行的接口进行操作的 flash 存储设备。一般板卡会配有一个 spi flash 存储芯片。因为 flash 具有断电数据不丢失的特性,而我们 FPGA 芯片掉电数据是会丢失的,所以我们就可将 FLASH作为 FPGA 芯片的上电配置器件(主要用于嵌入式设备的引导启动程序的存储如 Bootloader。),我们将上电程序固化在 FLASH 中,上电后 FPGA 芯片读取到 FLASH 中存储的程序进行运行,这样就能做到程序断电不丢失了。SPI FLASH 读写较慢,次数有限制,一般用于不经常更改的存储。

flash 按照内部存储结构不同,分为两种:nor flash 和 nand flash。这里 spi flash 属于 nor flash。

对比项NAND FlashNOR Flash
芯片容量<32GBit<1GBit
访问方式顺序读写随机读写
接口方式任意I/O口特定完整存储器接口
读写性能读取快(顺序读)、写入快、擦除快(可按块擦除)读取快(RAM方式)、写入慢、擦除慢
使用寿命百万次十万次
价格低廉高昂

常用的生产厂家:winbond(华邦),Micron(镁光),numonyx(恒亿)、ISSI(芯成),兆易创新

单位转换:

1Bytes=8bits(

1 字节等于 8 位)

1KB=1024Bytes(1KB 等于 1024 字节)

1MB=1024KB

1GB=1024MB

注:另外,Byte 通常简写为 B(大写),而 bit 通常简写为 b(小写);1B=8b。

bit 意为“位”或“比特”,是计算机运算的基础,属于二进制的范筹;

Byte 意为“字节”,是计算机文件大小的基本计算单位;

块、扇区、页的区别

以华邦的 W25Q128 为例,容量为 128Mbits,注意这里的单位是 bit,换算成字节(Byte),也就是:128Mbits/8=16M=16*1024KB= 16384 KB = 16,777,216B,所以很容易计算出整个存储空间的地址范围:0x000000~0xFFFFFF

SPI Flash 和 EPROM 的很大的一个不同就是多了块、扇区、页的概念。

W25Q128 的整个存储空间被分成了 256 个块(Block),每个块包含 16 个扇区(Sector),每个扇区又包括 16 个页。所以,如果按照块来计算,W25Q128 包括 256 个块。

如果按照扇区来计算,W25Q128 包括 256*16=4096 个扇区。

如果按照页来计算的话,W25Q128 包括 4096*16=65536 个页。

每个块的大小是:16384KB/256 = 64KB

每个扇区的大小是:64KB/16 = 4KB

每个页的大小是:4KB/16 = 256B

但是实际上,我们在进行读写操作时,都是区分块和扇区,不区分页的。包括在官方的 Datasheet 中,并没有重点提及页的地址范围。

**SPI flash 的特点 **

  • 高速(1.受限于最大时钟频率 2.受限于 CPU 处理 SPI 数据的能力;3 受限于PCB 走线);

  • 全双工(两个数据线可以同时收发);

  • 主从模式(既可当主机又可当从机工作);

  • 提供频率可编程时钟;

2 EEPROM 和SPI Flash的区别

  • EPROM 通常采用是 IIC 串行总线,低速,单双工,通信速率一般是百 KHz。而SPI Flash 是采用的 SPI 总线,高速,全双工,通讯速率一般是百 MHz。SPI Flash属于 Flash ROM 闪存,相比于 EPROM,读写速度更快。

  • EPROM 通常用于存储不频繁读取的数据,如配置信息等,而 SPI Flash 通常用来存储经常读取的数据,如字库文件等

  • EPROM 读写比较随意,想写那个地址写那个,想读哪个地址读哪个!而 SPI Flash 则比较规范,擦除的最小单位是扇区。向某个地址写入数据时,要先读取这个地址的数据是否为 0xFF,如果不是 0xFF,那么这个数据写入失败。所以通常的写操作是,在写某个地址之前,直接擦除这个地址所在的那个扇区,然后再写数据。当然,如果这个扇区的所有内容都是 0xFF,则无需擦除,可以直接写入。

  • EPROM 通常容量比较小,大小为 KB 级的,如 AT24C02 是 2KB,而 SPI Flash容量比较大,大小为 MB 级的,如 W25Q16 是 16Mbit,也就是 2MB。

  • EPROM 型号通常是 xx24 系列,而 SPI Flash 通常是 xx25 系列,所以从芯片型号我们也可以看出 ROM 类型。

  • EPROM 数据保存时间大约是 100 年,而 SPI Flash 数据保存时间为 20 年。

  • EPROM 的读写次数为 100 万次左右,SPI Flash 读写次数为 10 万次左右。

3 电路设计实战

电路实战1:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gD0P6U40-1669739222998)(硬件电路设计.assets/image-20221130002522909.png)]
电路实战2:
在这里插入图片描述

4 电路设计要点

  • 注意:根据需求选择对应的标注 SPI flash、Dual flash、Quad flash。具体项目具体看了,理论上在 CLK 一定的情况下, 线数越多访问速度也越快。

  • 如果需要 CS 管脚跟踪 VCC 电压,防止上电或断电时,由于 VCC 电压不足导致写数据异常,建议 CS 管脚串 10k 电阻到 VCC,起到跟踪保护左右。

  • 片选信号:是否要接上拉电阻或者下拉电阻,看具体规格书要求;(一般要加上拉电阻)

  • 电源接滤波电容。

  • 建议:IO0-IO3 加上 22 欧姆的电阻作为阻抗匹配;除了 SCK,其余都加上上拉电阻。

  • 在设计一个具体的 SPI Flash 的接口电路时,要考虑是否需要支持其Dual/Quad IO 功能以提高读写速度。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...