原创 【博客大赛】基于FPGA的串行flash的读写控制(一)----串行flash的管脚、寄存器和操作命令

2015-9-7 21:33 3094 13 15 分类: FPGA/CPLD

1、串行flash简介

    串行flash是用串行接口进行连续数据存取的小尺寸,低功耗的flash memory。串行flash比并行flash用更少的线从系统中传送数据。对于引脚数目少的串行flash来讲它的优势是减少了系统板的空间,功耗和成本。

2、串行flash引脚定义

     本文的技术细节基于SST公司的SST25VF032B型号的串行flash。其引脚定义如表1所示。

表1 SST25VF032B引脚定义

引脚符号

引脚名称

引脚功能

SCK

串行时钟

提供串行数据的时钟,命令、地址和输入数据在该时钟上升沿采样,输出数据在该时钟下降沿移位输出。

SI

串行数据输入

以串行方式输入命令、地址和数据,在SCK上升沿采样。

SO

串行数据输出

以串行方式输出数据,在SCK下降沿移位输出。

在AAI模式下,SO管脚可配置为BY/RY#模式。

CE#

片选

片选信号,低有效。

WP#

写保护

写保护信号,用来使能、去使能状态寄存器中的BPL位,低有效。

HOLD#

保持信号

在不复位芯片的情况下,暂时停止串行传输,低有效。

VDD

电源

2.7-3.6V供电管脚

VSS

 

3、SST25VF032B支持的SPI协议介绍

    SST25VF032B通过SPI协议进行数据、地址和命令的传输,SPI协议包括4个信号:

     片选(CE#)

     串行时钟(SCK)

     输入数据(SI)

     输出数据(SO)

     SST25VF032B支持mode0和mode3 SPI模式。二者的区别如图1所示,当总线上没有数据传输且进入standby状态,在mode0模式下,SCK保持为低,在mode3模式下,SCK保持为高。在两种模式下,SI的信号都是在SCK上升沿采样,SO的信号都是在下降沿跳变。

1.jpg

图1 SST25VF032B支持的SPI协议

4、HOLD、写保护操作

    HOLD操作为在不复位芯片的情况下,暂时停止串行传输。

    写保护操作由WP#管脚、状态寄存器中的BPL位和BP0-4位共同完成。

    本设计未用到HOLD和写保护操作操作,暂不详述,具体请参见SST25VF032B芯片手册。

5、状态寄存器

    8bits的状态寄存器可提供芯片读写过程中需要查询的各种状态信息,如表2所示。

表2 状态寄存器

Bit

名称

功能

默认值

Read/Write

0

BUSY

1:芯片忙,正在执行操作

0:芯片空闲,未执行操作

该位表示芯片内部是否有写或擦除操作正在进行。在擦除和写入之前都要查询此位,空闲时可执行下一步操作。

0

R

1

WEL

1:芯片写使能

0:芯片写未使能

该位在以下情况下会被清0:

·掉电

·写去使能(WRDI)命令执行

·Byte编程模式执行完成

·AAI编程模式执行完成,且到达最高的未被写保护的地址

·Sector擦除完成

·Block擦除完成

·Chip擦除完成

·写状态寄存器完成

0

R

2

BP0

对应block的写保护

1

R/W

3

BP1

对应block的写保护

1

R/W

4

BP2

对应block的写保护

1

R/W

5

BP3

对应block的写保护

0

R/W

6

AAI

1:AAI编程模式

0:Byte编程模式

0

R

7

BPL

1:BP3-BP0只读

0:BP3-BP0可读可写

0

R/W

6、串行flash操作命令

表3串行flash操作命令

2.jpg

 

这一篇先到这了,下一篇讲解串行flash的操作时序,渐渐深入了哦!

文章评论2条评论)

登录后参与讨论

用户1852891 2015-9-6 21:21

写的很好,对我很有帮助,谢谢!

用户402158 2015-7-17 15:53

谢谢分享~
相关推荐阅读
用户1845900 2016-05-20 13:28
【来点不一样的】Microsemi(原Actel)最新FPGA和开发板介绍
最近接触到了一款Microsemi(原Actel)的代理商艾懋电子开发的SmartFusion2 Starter Kit开发板,逐渐了解了Microsemi(原Actel)FPGA的一些情况。 ...
用户1845900 2015-11-25 11:24
【博客大赛】FPGA实现实时视频加权均值滤波
本文设计的是一种加权均值滤波算法,窗口大小是5(列)*1(行),适用于灰度图像实时视频处理,可以有效淡化视频竖条纹。同时为了保持图像的细节,采用如下图所示的加权窗口。 同时考虑到一场视频...
用户1845900 2015-09-07 21:30
【博客大赛】基于FPGA的串行flash的读写控制(二)-串行flash操作时序
1、 读操作(25Mhz)     该操作支持最高时钟速率为25Mhz的读操作。执行该操作时,芯片内部地址指针自动递增,连续输出从起始地址单元开始的数据,直到遇到CE#信号的上升沿。如果到达最...
用户1845900 2015-09-07 21:28
【博客大赛】基于FPGA的串行flash的读写控制(三)-串行flash操作的状态机实现
    上两篇都是对串行flash的介绍,我们的主角FPGA还没有登场。大家如果看了前两篇关于串行flash的介绍,这么多的命令,这么多的操作,需要有一根主线把他们串起来,这根主线应该就是FPGA...
用户1845900 2015-09-01 15:28
Vivado IP core管理-FPGA器件型号变更时的 IP core管理
在FPGA工程开发和维护的过程中,有可能需要在原有的代码上进行增量开发,但是发现原来选用的FPGA器件资源不够,需要更换器件。对于你自己一行行写的代码都好办,但是工程里调用的IP core与FPG...
我要评论
2
13
关闭 站长推荐上一条 /2 下一条