精华内容
下载资源
问答
  • flash芯片测试

    2020-05-20 08:40:06
    flash操作不同于sram,sram类似于在使用ram ip核(quartus/vivado)时生成的模块直接对存储操作,flash操作都是基于控制器的指令来的。... flash芯片擦除时按扇区来划分的;读取时一般芯片内部有一个buffer...

       flash操作不同于sram,sram类似于在使用ram ip核(quartus/vivado)时生成的模块直接对存储操作,flash操作都是基于控制器的指令来的。flash在编程(写数据)之前是需要对芯片擦除(也就是写1),因为编程操作只能把1变成0,而不能把原本是0的位变成1。

       基本的命令:擦除命令/编程命令/读取命令(读取命令分为读取数据和读取寄存器)

       基本操作格式:命令+[地址]+[数据]       //地址和数据是可选的
      

       flash芯片擦除时按扇区来划分的;读取时一般芯片内部有一个buffer(大概几十个字节的大小),也就是说一般每次读取就是这个buffer的大小;program也是一样有一个buffer(具体的大小取决于各个芯片)。

       flash芯片还有一些写保护功能(本测试不做验证,测试主要这对操作接口)。

    -------------------------------------------------------------

       flash分类:

        并口flash

        串行flash

        norflash:容量小但速度快(这里的速度指读取的速度,尤其并口flash的读取和ram读取几乎没有区别)/一般用于存储系统,启动代码,bios之类

        nandflash:容量大但速度低于nor/一般用于应用存储数据

    -----------------------------------------------------------------

     测试使用的cypress的flash芯片:以S25FS128S/S25FS256S为例

    扇区划分模式,选择最简单的一种,便于操作:

      注意: 该芯片读取时可以一个字节一个字节自累加读取模式(可以一直读完整个芯片再回到地址0继续循环下去):

      另一种QuadIO  Read一定要burst模式,也就是只能一组一组读取,地址在组内累加循环。

      cypress的芯片一般都有模型可以下载:https://www.cypress.com/verilog/s25fs256s-verilog

      这个芯片有多种读写接口模式:命令+地址+数据

      1-1-1(默认模式/基本的spi模式)/1-4-4(QuadIO模式)/4-4-4(QPI模式)    

    【芯片读取数据时还可支持ddr操作,取决于具体的读取命令】

    【QPI模式和QuadIO模式的区别:两者都需要开启四线操作(CR1V[1]),但QPI模式还要开启(CR2V[6]);

       需要说明,CR2V[6]一旦assert会同时assert CR1V[1],CR1V[1] assert之后除非复位否则不会变为0】

      芯片的工作状态由4个8bits配置寄存器控制:CR1V/CR2V/CR3V/CR4V

     所有操作要通过SR1V状态寄存的查询结果作为判断成功结束的依据:

    -------------------------------------------------------------

      注意:spi模式io用了两个,qpi/quadio是4个。

      注意:片选信号csn需要提前且滞后时钟信号clk至少一个时钟周期。

    SDR 时序:

    DDR时序:

    关于写使能是否在每次的擦除、编写前都需要执行一次:

    虽然在寄存器定义里只说和WREN\WRDI命令有关,但实际还是需要在每次执行擦写前进行一次写使能的。

    S25FS128S:

    S70FS01GS:

     

    -------------------------------------------------------------

    以对一个扇区的操作来验证flash芯片的基本功能,操作流程:

       1、上电延时(等待芯片复位)->

       2、设置工作模式(使能4字节模式)-> 1-1-1(SPI)

       3、读取配置寄存器的默认值(验证基本的读取功能及芯片的工作状态)-> 1-1-1(SPI)

       4、写入配置寄存器(需要注意此步骤之前需要先执行写使能操作/否则操作不成功)-> 1-1-1(SPI)

       5、在新配置的模式下读取芯片id(验证当前设置是否成功)-> 4-4-4(QPI)

       6、芯片指定扇区擦除-> 4-4-4(QPI)

       7、第一次读取验证-> 4-4-4(QPI/SDR)

       8、指定扇区编程->  4-4-4(QPI)

       9、指定扇区读取及验证-> 1-4-4(QaudIO/DDR)

       10、进入芯片低功耗模式(测试完成)(1-1-1/SPI)

    整个测试代码分为两部分:

      底层的接口驱动(完成读写时序)+测试状态机(完成测试流程)

    参考:

    https://www.cnblogs.com/liujinggang/p/9651170.html

     

    展开全文
  • MT29F4 Flash 芯片手册

    2020-09-27 23:11:12
    镁光MT29F4型号Flash芯片的手册 ,这个芯片可以用于存储以及程序加载,我在使用时用于zynq芯片程序加载,加载时相关时序参考该器件手册中以及CSDN博客经验。希望能够帮到大家。
  • 提取Flash芯片信息

    2020-06-18 23:08:23
    Flash芯片  一、IICEEPROM  二、SPINorFlash  三、ParallelNorFalsh(CFIFlash)  四、ParallelNandFlash  五、SPINandFlash  六、eMMCFlash  七、USF2.0 0X03Flash芯片提取固件 一、物理环境 二、...

    目录

    0X01 前言

    0X02 芯片介绍

    ROM芯片

    Flash芯片

     一、IICEEPROM

     二、SPINorFlash

     三、ParallelNorFalsh(CFIFlash)

     四、ParallelNandFlash

     五、SPINandFlash

     六、eMMCFlash

     七、USF2.0

    0X03 Flash芯片提取固件

    一、物理环境

    二、工具环境

    三、拆取芯片

    四、识别芯片

    五、提取固件

    0X04 固件分析

    0X05 Flash芯片固件防护

    参考资料


    0X01 前言

    本文章主要以提取固件为主导。随着由于针对设备的攻击越来越多,很多厂商不再提供固件下载,所以有些时候只能通过物理的方式从设备中导出固件。

    0X02 芯片介绍

    ROM芯片

    常见的 IOT 产品,一般采用嵌入式 linux 系统开发,对芯片分析主要目的之一就是获取到硬件系统的固件,从固件中分析可能存在的安全风险。固件一般存储在 ROM 中,ROM 是只读存储器(Read-Only Memory)的简称,是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,并且资料不会因为电源关闭而消失。常见的存储芯片按照存储读取方式和制作工艺不同,可以分为:ROM、PROM、EPROM、EEPROM、FLASH-ROM。在大部分IOT产品中多采用 flash 芯片作为存储器,提取固件主要也是通过读取 flash 芯片。

    Flash芯片

    FLASH ROM 属于真正的单电压芯片,在使用上很类似 EEPROM,因此,有些书籍上便把 FLASH ROM 作为 EEPROM 的一种。事实上,二者还是有差别的。FLASH ROM在擦除时,也要执行专用的刷新程序,但是在删除资料时,并非以 Byte 为基本单位,而是以 Sector(又称 Block)为最小单位,Sector 的大小随厂商的不同而有所不同;只有在写入时,才以 Byte 为最小单位写入;FLASH ROM 芯片的读和写操作都是在单电压下进行,不需跳线,只利用专用程序即可方便地修改其内容;FLASH ROM的存储容量普遍大于EEPROM,约为 512K 到至 8M KBit,由于大批量生产,价格也比较合适,很适合用来存放程序码,近年来已逐渐取代了 EEPROM,广泛用于主板的 BIOS ROM,也是 CIH 攻击的主要目标。

    根据技术方式不同可分为:IIC EEPROM、SPI NorFlash 、CFI Flash、Parallel NandFlash、SPI NandFlash、eMMC Flash、USF2.0 等。其中 SPI NorFlash 因为接口简单,使用的引脚少,易于连接,操作方便,并且可以在芯片上直接运行代码,其稳定性出色,传输速率高,在小容量时具有很高的性价比,这使其很适合应于嵌入式系统中作为 FLASH ROM,所以在市场的占用率非常高。我们通常见到的 S25FL128、MX25L1605、W25Q64 等型号都是 SPI NorFlash,其常见的封装多为 SOP8,SOP16,WSON8,US0N8,QFN8、BGA24 等,下面对芯片分类进行介绍。

     一、IICEEPROM

      IICEEPROM,采用的是IIC通信协议。
      IIC通信协议具有的特点:简单的两条总线线路,一条串行数据线(SDA),一条串行时钟线(SCL);串行半双工通信模式的8位双向数据传输,位速率标准模式下可达100Kbit/s;一种电可擦除可编程只读存储器,掉电后数据不丢失,由于芯片能够支持单字节擦写,且支持擦除的次数非常之多,一个地址位可重复擦写的理论值为100万次,常用芯片型号有AT24C02、FM24C02、CAT24C02等,其常见的封装多为DIP8,SOP8,TSSOP8等。

     二、SPINorFlash

      SPINorFlash,采用的是SPI通信协议。有4线(时钟,两个数据线,片选线)或者3线(时钟,两个数据线)通信接口,由于它有两个数据线能实现全双工通信,因此比IIC通信协议的IICEEPROM的读写速度上要快很多。SPINorFlash具有NOR技术FlashMemory的特点,即程序和数据可存放在同一芯片上,拥有独立的数据总线和地址总线,能快速随机读取,允许系统直接从Flash中读取代码执行;可以单字节或单字编程,但不能单字节擦除,必须以Sector为单位或对整片执行擦除操作,在对存储器进行重新编程之前需要对Sector或整片进行预编程和擦除操作。
      

      NorFlash在擦写次数上远远达不到IICEEPROM,并且由于NOR技术FlashMemory的擦除和编程速度较慢,块尺寸又较大,因此擦除和编程操作所花费的时间会很长;但SPINorFlash接口简单,使用的引脚少,易于连接,操作方便,并且可以在芯片上直接运行代码,其稳定性出色,传输速率高,在小容量时具有很高的性价比,这使其很适合应于嵌入式系统中作为FLASHROM,所以在市场的占用率非常高。

      常见到的S25FL128、MX25L1605、W25Q64等型号都是SPINorFlash,其常见的封装多为SOP8,SOP16,WSON8,US0N8,QFN8、BGA24等。

     三、ParallelNorFalsh(CFIFlash)

      ParallelNorFalsh,也叫做并行NorFlash,采用的Parallel接口通信协议。拥有独立的数据线和地址总线,它同样继承了NOR技术FlashMemory的所有特点;由于采用了Parallel接口,ParallelNorFalsh相对于SPINorFlash,支持的容量更大,读写的速度更快,但是由于占用的地址线和数据线太多,在电路电子设计上会占用很多资源。ParallelNorFalsh读写时序类似于SRAM,只是写的次数较少,速度也慢,由于其读时序类似于SRAM,读地址也是线性结构,所以多用于不需要经常更改程序代码的数据存储。

      常见到的S29GL128、MX29GL512、SST39VF020等型号都是ParallelNorFlash,其常见的封装多为TSSOP32、TSOP48、BGA64,PLCC32等。

     四、ParallelNandFlash

      ParallelNandFlash同样采用了Parallel接口通信协议,NandFlash在工艺制程方面分有三种类型:SLC、MLC、TLC。

      NandFlash技术FlashMemory具有以下特点:以页为单位进行读和编程操作,以块为单位进行擦除操作;具有快编程和快擦除的功能,其块擦除时间是2ms,而NOR技术的块擦除时间达到几百ms;芯片尺寸小,引脚少,是位成本(bitcost)最低的固态存储器;芯片包含有坏块,其数目取决于存储器密度。坏块不会影响有效块的性能,但设计者需要有一套的坏块管理策略!

      对比ParallelNorFalsh,NandFlash在擦除、读写方面,速度快,使用擦写次数更多,并且它强调更高的性能,更低的成本,更小的体积,更大的容量,更长的使用寿命。这使NandFlash很擅于存储纯资料或数据等,在嵌入式系统中用来支持文件系统。其主要用来数据存储,大部分的U盘都是使用NandFlash,当前NandFlash在嵌入式产品中应用仍然极为广泛,因此坏块管理、掉电保护等措施就需要依赖NandFlash使用厂家通过软件进行完善。

      常见到的S34ML01G100、MX30LF2G18AC、MT29F4G08ABADA等型号都是ParallelNandFlash,其常见的封装多为TSOP48、BGA63、BGA107,BGA137等。

     五、SPINandFlash

      SPINandFlash,采用了SPINorFlash一样的SPI的通信协议,在读写的速度上没什么区别,但在存储结构上却采用了与ParallelNandFlash相同的结构,所以SPInand相对于SPInorFlash具有擦写的次数多,擦写速度快的优势,但是在使用以及使用过程中会同样跟ParallelNandFlash一样会出现坏块,因此,也需要做特殊坏块处理才能使用。

      SPINandFlash相对比ParallelNandFlash还有一个重要的特点,那就是芯片自己有内部ECC纠错模块,用户无需再使用ECC算法计算纠错,用户可以在系统应用当中可以简化代码,简单操作。

      常见到的W25N01GVZEIG、GD5F4GQ4UBYIG、F50L1G41A等型号都是SPINandFlash,其常见的封装多为QFN8、BGA24等。

     六、eMMCFlash

      eMMC采用统一的MMC标准接口,自身集成MMCController,存储单元与NandFlash相同。针对Flash的特性,eMMC产品内部已经包含了Flash管理技术,包括错误探测和纠正,Flash平均擦写,坏块管理,掉电保护等技术。MMC接口速度高达每秒52MBytes,eMMC具有快速、可升级的性能,同时其接口电压可以是1.8v或者是3.3v。

      eMMC相当于NandFlash+主控IC,对外的接口协议与SD、TF卡一样,主要是针对手机或平板电脑等产品的内嵌式存储器标准规格。eMMC的一个明显优势是在封装中集成了一个控制器,它提供标准接口并管理闪存,使得手机厂商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间。这些特点对于希望通过缩小光刻尺寸和降低成本的NAND供应商来说,同样的重要。

      eMMC由一个嵌入式存储解决方案组成,带有MMC(多媒体卡)接口、快闪存储器设备(NandFlash)及主控制器,所有都在一个小型的BGA封装,最常见的有BGA153封装;我们通常见到的KLMAG8DEDD、THGBMAG8B4JBAIM、EMMC04G-S100等型号都是eMMCFlash。eMMCFlash存储容量大,市场上32GByte容量都常见了,其常见的封装多为BGA153、BGA169、BGA100等。

     七、USF2.0

      JEDEC在2013年9月发布了新一代的通用闪存存储器标准USF2.0,该标准下的闪存读写速度可以高达每秒1400MB,这相当于在两秒钟内读写两个CD光盘的数据,不仅比eMMC有更巨大的优势,而且它甚至能够让电脑上使用的闪存存储介质固态硬盘也相形见绌。UFS闪存规格采用了新的标准2.0接口,它使用的是串行界面,很像PATA、SATA的转换,并且它支持全双工运行,可同时读写操作,还支持指令队列。相对之下,eMMC是半双工,读写必须分开执行,指令也是打包,在速度上就已经是略逊一筹了,而且UFS芯片不仅传输速度快,功耗也要比eMMC5.0低一半,可以说是日后旗舰手机闪存的理想搭配。目前仅有少数的半导体厂商有提供封装成品,如三星、东芝电子等。

     

    0X03 Flash芯片提取固件

    一般读取 Flash 芯片的内容的方法,较为常见有以下两种方式(有大牛提出了10种固件获取方式,有兴趣的可以看参考资料中序号为3的链接):
    1、直接将导线连接到芯片的引脚,在通过飞线连接编程器,进行在线读取固件。

    2、把芯片拆焊下来,通过烧录座编程器,离线读取固件。

     

    一、物理环境

    因一时兴起,所以工具准备的不是很充分,没有购置芯片脚夹、烧录夹、面包板、杜邦线等工具,故采用上文所述第二种方法,用工具对摄像头8脚存储芯片拆取进行离线烧录提取固件,如下图所示。
    1、RT809F编程器
    2、弹跳座
    3、电烙铁及焊锡等
    4、摄像头
    5、钳子、螺丝刀、镊子、撬棒等工具

     

    二、工具环境

    binwalk -- 通过固件文件头来分析文件和文件系统
    file -- 用来检测是否是有效的文件和文件类型
    hexdump --16进制导出工具
    strings --跟hexdump类似但是可以以可读的形式展示
    dd --从二进制文件中挖掘数据
    lzma --解压LZMA文件

     

    三、拆取芯片

    首先我们使用螺丝刀,钳子等工具将摄像头外壳拆取下来,找到Flash芯片位置。

    通常读取固件使用夹具连接各引脚,并和编程器连接,直接进行固件读取,但是由于我们手头没有合适的工具,所以采用拆解Flash芯片进行固件读取。

    1、将电烙铁加热加上锡,对准芯片一侧上锡,此时使用镊子将上锡的一侧轻轻翘起。

    2、对准芯片另一侧上锡,此时使用镊子将上锡的另一侧轻轻翘起,使用镊子轻轻夹出。

    3、清理焊锡,将清理后的Flash芯片放置于弹跳座中。

     

    四、识别芯片

    1、使用USB线将编程器连接至电脑并打开编程器软件,如图所示:

     

    2、点击智能识别SmartID,自动识别厂商芯片。

     

    五、提取固件

    将读取出的后缀为BIN的固件进行保存,至此固件读取完毕,为下一步固件分析提供基础。

     

    0X04 固件分析

    此处固件分析仅作为流程性简单介绍,之后会单独提取出来作为文章发布。

    file用来检测是否是有效的文件和文件类型,file分析的结果可以告诉我们该文件是否是已知的类型,这里的结果我们可以看到仅仅是显示数据文件。

     

    hexdump 工具可以让你分析文件中的每一个字节,这是非常有价值的。使用hexdump分析固件如下,把结果写入到文件中方便分析:

    string可以显示文件中所有可打印的数据,依旧把结果写入到文件中方便分析:

    binwalk会分析二进制文件中可能的固件头或者文件系统,然后输出识别出的每个部分以及对应的偏移量,-e参数,自动把固件镜像中的所有文件都解压出来:

     

    0X05 Flash芯片固件防护

    防止Flash芯片被轻易提取出固件,以下为固件防护的措施有关的建议:

    1、防止固件提取的方式,对于MCU内部Flash的情况,通过编程的方式,把flash区域设置为读保护状态;而外部Flash的固件基本上都可以读取。

    2、对于外部Flash,可以用电路设计保护起来,设计在线检测电路,一旦发现Flash芯片的引脚出现断线,立即进行强电攻击,将Flash芯片破坏掉。

     

    参考资料

    1、物联网安全百科

    https://iot-security.wiki/hardware-security/hardware/preliminary.html

    2、一文看懂Flash芯片的种类与区别

    http://m.elecfans.com/article/654892.html

    3、看雪2018峰会回顾_智能设备漏洞挖掘中几个突破点(内有十种固件提取方法和首次公开uboot提取固件方法)

    https://bbs.pediy.com/thread-230095.htm

    4、物联网产品的硬件设计时注意的“安全”

    https://blog.csdn.net/u011270542/article/details/86614349

    展开全文
  • 近日,STMicroelectronics针对不同领域推出新款Flash芯片,其中包括针对移动电话、PDA等市场推出的M58WR128E芯片和针对机顶盒(STB——set-top boxes)推出的M58LWxxxC系列芯片。 M58WR128E芯片芯片为容量为128Mbit...
  • FLASH芯片型号

    2015-11-30 17:02:07
    项目使用flash芯片型号:S25FL064
    项目使用flash芯片型号:S25FL064
    
    展开全文
  • Flash芯片的笔记

    2014-02-26 15:36:39
    随便写的笔记,简单介绍了这个Flash芯片的操作模式,本科搞竞赛的可以看看。
  • W25Q64Flash芯片STM32操作

    万次阅读 多人点赞 2018-07-31 16:25:27
    1、W25Q64Flash芯片介绍 通讯方式:SPI通讯 大小:8M(Byte) (128块(Block),每块64K字节,每块16个扇区(Sector),每个扇区4K字节,每个扇区16页,每页256个 字节) 特点:Flash芯片内的数据只能由1变0,...

    1、W25Q64Flash芯片介绍

    通讯方式:SPI通讯

    大小:8M(Byte)   (128块(Block),每块64K字节,每块16个扇区(Sector),每个扇区4K字节,每个扇区16页,每页256个              字节)

    特点:Flash芯片内的数据只能由1变0,不能由0变1。

    引脚: 

                   

                  CS:CS为片选管脚,低电平有效。上电之后,在执行一条新的指令之前,必须让/CS管脚先有一个下降沿。 

                  DO(MISO:DO为串行数据输出引脚,在CLK(串行时钟)管脚的下降沿输出数据。

                  WP:WP为写保护管脚,有效电平为低电平。高电平可读可写,低电平仅仅可读。

                  DI(MOSI):DI为串行数据输入引脚,数据、地址和命令从DI引脚输入到芯片内部,在CLK(串行时钟)管脚的上升沿捕获捕获数据。

                  CLK(SLCK):CLK为串行时钟引脚。SPI时钟引脚,为输入输出提供时钟脉冲。

                  HOLD:HOLD为保持管脚,低电平有效。当CS为低电平,并且把HOLD拉低时,数据输出管脚将保持高阻态,并且会忽略数据输入管脚和时钟管脚上的信号。把HOLD管脚拉高,器件恢复正常工作。

                   VCC:电源2.7V~3.6V。

                   GND:地。

    W25Q64内部框架图:

    2、W25Q64Flash工作方式

           2.1 W25Q64 SPI数据传输时序

    W25Q64支持SPI数据传输时序模式0(CPOL = 0、CPHA = 0)和模式3(CPOL = 1、CPHA = 1),模式0和模式3主要区别是当SPI主机硬件接口处于空闲状态时,SCLK的电平状态是高电平或者是低电平。对于模式0来说,SCLK处于低电平;对于模式3来说,SCLK处于高电平。不过,在这两种模式下,芯片都是在SCLK的上升沿采集输入数据,下降沿输出数据。

           2.2 W25Q64数据格式

    W25Q64数据格式为数据长度8位大小,先发高位,再发低位。

           2.3 W25Q64传输速度

    W25Q64在标准模式下支持80M bit/s速度,快速模式下支持160M bit/s速度,高速模式下支持320M bit/s速度。

    3、W25Q64控制和状态寄存器

    通过对“读状态寄存器”指令读出的状态数据可以知道芯片存储器阵列是否可以写入或不可写,或是否处于写保护状态。通过“写状态寄存器”指令可以配置芯片写保护特征。

    总线忙标志位(BUSY)

    BUSY位是一个只读位,在状态寄存器中的S0位。当W25Q64在执行“页编程”、“扇区擦除”、“块区擦除”、“芯片擦除”以及“写状态寄存器”指令时,该位被硬件自动置1。这时候,除了“读状态寄存器”指令外的所有操作指令讲会被芯片忽略。当芯片执行完这些指令后,硬件会自动将该位清零,表示芯片器件可以接收其他的指令。

    写保护位(WEL

    WEL位是一个只读位,在状态寄存器的S1位。在执行完“写使能”指令后,该位会被硬件自动置1。当芯片掉电后和执行“写禁能”、“页编程”、“扇区擦除”、“块区擦除”以及“芯片擦除”指令都会进入“写保护状态”。

    块区保护位(BP2、BP1、BP0

    BP2、BP1、BP0这3位为可读可写位,分别在状态寄存器的S4、S3以及S2位。这3个位默认状态为0,即块区处于未保护状态。可以利用“写状态寄存器”指令对这几个位进行置1来达到块区保护的目的。块区保护状态为:没有保护、部分保护和全部保护状态。

    注:当状态寄存器的SRP位为1或读写保护管脚(/WP)为低电平时,这3个位不可被更改。

    底部和顶部块保护位(TB

    TB位是一个可读可写位,在状态寄存器的S5位,默认值为0。可以利用“写状态寄存器”指令对这个位进行置1或清零。当TB = 0时,表示保护位从顶部开始,当TB = 1时,表示保护位从底部开始。

    注:当状态寄存器的SRP位为1或读写保护管脚(/WP)为低电平时,这个位不可被更改。

    扇区/块保护(SEC

    SEC位为一个可读可写位,在状态寄存器的S6位,默认值为0。可以利用“写状态寄存器”指令对这个位进行置1或清零。当SEC = 0时,表示每次保护的区域大小为4K;当SEC = 1时,表示每次保护的区域大小为8K。

    状态寄存器保护位(SRP0、SRP1

    SRP0和SRP1这2位为可读可写位,分别在状态寄存器的S7和S8(状态寄存器2)位。这两个位的默认值为0,可以利用“写状态寄存器”指令对这个位进行置1或清零。这2个位和读写保护管脚(/WP)决定了状态寄存器写保护的方式。状态寄存器写保护的方式有:软件保护,硬件保护、电源锁定或一次性可编程(OTP)保护。

    快速SPI通讯使能(QE

    QE位为一个可读可写位,在状态寄存器的S9(状态寄存器2)位,默认值为0。以利用“写状态寄存器”指令对这个位进行置1或清零。当QE = 0时,W25Q54设置为标准速度模式或快速模式,保持管脚(/HOLE)和读写保护管脚(/WP)启用;当QE = 1时,W25Q54设置为高速模式,保存管脚(/HOLE)和读写保护管脚(/WP)被设置位IO2和IO3功能使用。

    4、W25Q64器件标识

    5、W25Q64工作原理

               W25Q64操作原理

    通过SPI接口,用标准的SPI协议发送相应指令给flash,然后flash根据命令进行各种相关操作。

                W25Q64常用操作命令

    指令名称

    字节1(CODE)

    字节2

    字节3

    字节4

    字节5

    字节6

    写使能

    06h

     

    写禁能

    04h

     

    读状态寄存器1

    05h

    (S7~S0)

     

    读状态寄存器2

    35h

    (S15~S8)

     

    读数据

    03h

    A23~A16

    A15~A8

    A7~A0

    D7~D0

    直至读完所有

    写状态寄存器

    01h

    (S7~S0)

    (S15~S8)

     

    页编程

    02h

    A23~A16

    A15~A8

    A7~A0

    D7~D0

    直至255个字节

    块擦除(64K)

    D8h

    A23~A16

    A15~A8

    A7~A0

     

    半块擦除(32K)

    52h

    A23~A16

    A15~A8

    A7~A0

     

    扇区擦除(4K)

    20h

    A23~A16

    A15~A8

    A7~A0

     

    芯片擦除

    C7/60h

     

    芯片掉电

    B9h

     

    释放掉电/器件ID

    ABh

    伪字节

    伪字节

    伪字节

    ID7~ID0

     

    制造/器件ID

    90h

    伪字节

    伪字节

    00h

    MF7~MF0

    ID7~ID0

    JEDEC ID

    9Fh

    MF7~MF0

    ID15~ID8

    ID7~ID0

     

    6、W25Q64常用指令工作时序

    写使能(06H

    写禁止(04H

    读状态寄存器指令(05H

    写状态寄存器指令(01H

     

    读数据(03H

    页写(02H

    扇区擦除指令(20H

    块擦除指令(D8H

    芯片擦除指令(07H

    掉电指令(B9H

    读ID指令(90H

    写使能(06H

    写禁止(04H

    读状态寄存器指令(05H

    写状态寄存器指令(01H

     

    读数据(03H

    页写(02H

    扇区擦除指令(20H

    块擦除指令(D8H

    芯片擦除指令(07H

    掉电指令(B9H

    读ID指令(90H

    7、STM32模块编程思路

    1. 配置SPI模块功能管脚相应的GPIO管脚。
    2. 配置SPI模块工作方式。
    3. 使能SPI模块时钟。
    4. 根据SPI SPI主模式设置步骤设置SPI工作方式。
    5. 编写SPI读写字节函数。
    6. 根据目前器件的指令操作器件。

    8、硬件原理图

    代码资源下载:https://download.csdn.net/download/lalala098/10576508

    展开全文
  • NAND Flash 芯片测试

    千次阅读 2019-05-28 22:19:47
    DFT : Design For Testability ...NAND Flash 芯片测试主要是为了筛选(Screen Out)出Flash阵列、译码器、寄存器的失效。 测试流程(Test Flow) 从wafer level,到single component level、module level,...
  • 通过verilog编写语言实现读写操作SPI的flash芯片,经过验证可用,能够实现读取芯片DEVICE id Cyclone IV E系列的EP4CE10F17C8 W25Q128BV
  • W25Q64Flash芯片

    2020-08-29 17:23:16
    1、W25Q64Flash芯片介绍 板上有个带SPI的FLASH产品,W25Q64,大容量64Mb的,也就是8M字节, 大小:8M(Byte) (128块(Block),每块64K字节,每块16个扇区(Sector),每个扇区4K字节,每个扇区16页,每页256个 ...
  • M25P64 FLASH 芯片手册

    2015-10-11 10:11:27
    M25P64 FLASH 芯片手册,不必多说,我想你能懂。
  • 在液晶显示器中,因为MCU程序和OSD菜单等数据的保存需要,经常用到FLASH芯片,常见的有MCU、25×××,24C××,39LV001、29FV等。本文系统介绍这些芯片在液晶显示器中的作用。
  • arduino使用SPIFlash库 读写Flash芯片

    千次阅读 2018-02-03 08:59:57
    SPIFlash库 – SPI华邦电子闪存Flash芯片arduino库 GITHUB 工程地址:SPIFlash 该库是用于华邦串行闪存芯片的库。目前的形式支持识别闪存芯片和它的各种功能;自动地址分配管理;在不同位置读写数据类型bytes/chars/...
  • 近日,AMD针对无线市场推出高性能保密Flash芯片——Am29PDL640G。这款芯片容量为64Mbit,采用64位密码保护。这款芯片主要针对无线产品,如移动电话等。与其他产品相比较,Am29PDL640G芯片具有高性能、低功耗、高安全...
  • NorFlash芯片特性分析

    2020-02-18 20:20:58
    Nor Flash是Intel在1988年...本文以JS28F512M29EWH为例分析Nor Flash芯片的特性以及读、擦、写、查询等操作的具体实现原理。 1、芯片特性 1)页大小32Bytes, 块大小128KB, 写缓冲区1KB(芯片厂家决定写缓冲区大...
  • Flash芯片型号查询器

    2012-02-14 15:27:52
    FlashGenius是一款FLASH闪存参数查询工具,可以快速查出FLASH芯片的制造商、产品类别、工作电压、存储容量、芯片版本、特征类型等。
  • 在液晶显示器中,因为MCU程序和OSD菜单等数据的保存需要,经常用到FLASH芯片,常见的有MCU、25×××,24C××,39LV001、29FV等。本文系统介绍这些芯片在液晶显示器中的作用。  一、液晶显示器中常用芯片类型  ...
  • Micron Flash芯片识别心得

    千次阅读 2019-03-31 14:45:39
    看这款FLASH芯片的时候,在Vivado中生成配置文件去编程设备,找不到对应的Flash型号,也不知道芯片是串行还是并行,内存大小以及其代号的意义。下面给出心得。 首先: 看完这个大概懂得了我需要找的芯片是1Gb,...
  • AM29LV320 FLASH 芯片手册

    2015-10-11 10:10:15
    AM29LV320 FLASH 芯片手册,不必多说,我想你能懂得。
  • Flash芯片的通病

    千次阅读 2014-12-14 20:53:27
    Flash芯片在写入数据的时候有诸多效率低下的地方。包括现在常用的U盘以及SSD中的Flash芯片,或者Bios常用的EEPROM,它们都不可避免。 1. Flash芯片存储的通病之一:Erase Before Overwrite 对于机械磁盘来说,...
  • Nand flash 芯片型号为 Samsung K9F1208U0B,数据存储容量为 64MB,采用块页式存储管理。8 个 I/O 引脚充当数据、地址、命令的复用端口。 芯片内部存储布局及存储操作特点 一片 Nand flash 为一个设备(device),...
  • SPI FLASH芯片SOP8与SOP16联接
  • spi flash芯片16脚转8脚

    2014-03-18 00:56:49
    spi flash芯片16脚转8脚详细
  • protues 中SPI接口串行flash芯片M45PE80的仿真,包含了擦除及字符串读写(the simulation the protues SPI interface serial flash chip M45PE80, erase and string to read and write)
  • s29gl-p_00_a11_e flash芯片

    2018-10-18 13:18:11
    s29gl-p_00_a11_e flash芯片,设计手册和接线图,以及硬件设计规则
  • 能学习了解存储芯片的原理和基本功能,对EEPROM和FLASH芯片有全面了解,帮助我们更好的应用存储芯片。在手机各种电子产品中,都由应用。
  • W25Q64 SPIFlash是一种利用Spi总线读写的flash芯片,大小为8Mbyte。
  • 在液晶显示器中,因为MCU程序和OSD菜单等数据的保存需要,经常用到FLASH芯片,常见的有MCU、25×××,24C××,39LV001、29FV等。本文系统介绍这些芯片在液晶显示器中的作用。  一、液晶显示器中常用芯片类型  ...
  • 在硬件电路的设计中,重点介绍了适合MSP430F149单片机的信号调理电路和单片机与FLASH芯片之间的SPI通信连接;在软件的开发中,用汇编语言开发出了利用MSP430F149单片机片内ADC12模块进行A/D转换的整个程序。结果表明:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,966
精华内容 3,186
关键字:

flash芯片