1、内部结构介绍:S29系列nor flash 内部是由多个扇区构成的,每个扇区容量大小相同,不同容量的flash其实就只是扇区数量不同,其他命令和时序是一样的。如下图:
2、引脚介绍
;A[25:0]:这些就是地址引脚,容量不一样地址位数就不一样。1Gb:地址位26bit;512Mb:地址位25bit;256Mb:地址位24bit;128Mb:地址位23bit;怎么计算的呢?例如1Gb:A[25:0]就是2的26次方个地址,每个地址可以存16bit地址,也就是2的4次方,两个相乘,就是2的30次方=1kb的3次方=1Gb。
DQ[15:0]:表示flash的数据引脚,用于和flash传输数据,要存进flash的数据就是通过这些引脚传输的。DQ15/A-1:这是一个复用引脚,可以表示数据位D[15],也可以表示地址A【-1】,也就是最低位,还要排在A0的右边(高位在左,低位在右),只有在数据模式选择为8bit时才会复用为地址。数据被减小了一倍,从一个地址存16bit变为存8bit。为了保持容量大小不变,地址就应扩大一倍,所以才会出现DQ15被复用的情况,因为在8bit数据模式下,传输数据用不着它。数据位只使用低8位。
CE#:flash芯片的片选信号,低有效,要控制它必须先选中,也就是将该位置0。(一般信号名后带#的都表示低电平有效)
OE#:flash的输出使能,也就是说想要flash输出数据必须要OE使能(OE#=0);具体低电平保持时间多长后面讲时序的时候说。
WE#:flash的输入使能,也就是说想要往flash里面写入数据必须要WE使能(WE#=0);
VCC、VIO、VSS、NC:这些引脚代码里面用不着,设计代码的不用管,排查问题的时候就需要看一下这些引脚有没有连对。
RY/BY#:这个就是flash的ready和busy信号,就是准备好、忙信号。高电平时就是ready有效,表示准备好了,可以去操作它。低电平就是busy有效,表示flash正在忙,这个时候就不能再去操作它了。
BYTE#:这个就是控制数据模式的引脚,低电平就是byte模式,也就是一次传输8bit。高电平就是字模式,一次传输16bit数据。
RESET#:引脚复位管脚,硬件电路控制,写代码时不用管。
WP#/ACC:写保护、写加速。上拉接vcc就可以了,如果出现flash写不进去数据,也可以看看是不是被写保护了。
NOR flash很重要的一个知识点:
“0” 无法编程回 “1”。后续读取显示数据仍为 “0”。只有擦除操作能使 “0” 恢复回 “1”。就是说默认擦除后里面存的数据全是FFFF,每次操作直接都要进行擦除操作,让它所有为返回1,编程也就是写入操作,只能让1变成0。如果里面存储的是0,就只有擦除操作才能让它变为1;和其他存储器件不同的地方就在这里,其他器件如eeprom sdram写入数据可以直接覆盖,但是 nor flash不行。
详细资料参考数据手册,数据手册下载推荐立创商城搜那个器件,里面就可以直接下载(不是打广告,分享给大家比较方便的办法)立创商城_一站式电子元器件采购自营商城_现货元器件交易网-嘉立创电子商城
如上图,框出来的两个地方,搜器件名字,下面点击数据手册就可以直接下载。文章来源:https://www.toymoban.com/news/detail-665097.html
好了,这次就写到这里,有人看的话就继续更新。文章来源地址https://www.toymoban.com/news/detail-665097.html
到了这里,关于BPI FLASH S29GL01GP、 S29GL512P、 S29GL256P、 S29GL128P NOR flash介绍,与FPGA代码编写(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!