Acute协议分析仪针对NAND Flash的测试

NAND-Flash存储器是Flash存储器的一种,Flash主要分两种,NAND FlashNOR Flash

  1. NOR的成本相对高,容量相对小,比如常见的只有128KB256KB1MB2MB等等,优点是读写数据时候,不容易出错。所以在应用领域方面,Nor Flash比较适合应用于存储少量的代码。
  2. NAND Flash成本相对低,说白了就是便宜,缺点是使用中数据读写容易出错,所以一般都需要有对应的软件或者硬件的数据校验算法,统称为ECC。但优点是,相对来说容量比较大,现在常见的NAND Flash都是1GB2GB,更大的8GB的都有了,相对来说,价格便宜,因此适合用来存储大量的数据。其在嵌入式系统中的作用,相当于PC上的硬盘,用于存储大量数据。

一般的嵌入式平台的启动流程也就是,系统从装有启动代码的NOR Flash启动后,初始化对应的硬件,包括SDRAM等,然后将NAND Flash上的Linux 内核读取到内存中,做好该做的事情后,就跳转到SDRAM中去执行内核了,然后内核解压(如果是压缩内核的话,否则就直接运行了)后,开始运行,在Linux内核启动最后,去Nand Flash上,挂载根文件,比如jffs2yaffs2等,挂载完成,运行初始化脚本,启动consle交互,才允许你通过console和内核交互。至此完成整个系统启动过程。而NOR Flash就分别存放的是UbootNAND Flash存放的是Linux的内核镜像和根文件系统,以及余下的空间分成一个数据区。

NAND Flash按照内部存储数据单元的电压的不同层次,也就是单个内存单元中,是存储1位数据,还是多位数据,可以分为SLCMLC

SLCSingle Level Cell)单个存储单元,只存储一位数据,表示10就是上面介绍的,对于数据的表示,单个存储单元中内部所存储电荷的电压,和某个特定的阈值电压Vth,相比,如果大于此Vth值,就是表示1,反之,小于Vth,就表示0

MLCMulti Level Cell)与SLC相对应的,就是单个存储单元,可以存储多个位,比如2位,4位等。其实现机制,说起来比较简单,就是通过控制内部电荷的多少,分成多个阈值,通过控制里面的电荷多少,而达到我们所需要的存储成不同的数据。比如,假设输入电压是Vin4V(实际没有这样的电压,此处只是为了举例方便),那么,可以设计出22次方=4个阈值, 1/4 Vin1V2/4Vin2V3/4Vin3VVin4V,分别表示2位数据00011011,对于写入数据,就是充电,通过控制内部的电荷的多少,对应表示不同的数据。

下面我们就用皇晶(Acute)最新的BusFinder(BF6264B)进行一款NAND Flash的协议测试,被测物是旺宏电子的2G-bit SLC NAND Flash, MX30LF2G18AC.

首先请上我们今天的主角,AcuteBusFinder. 需要搭配专门的Nand Flash套件

 

待测物是一块使用了MX30LF2G18AC的板卡,见下图,连接好后的样子,

  • 连接BF6264B和我们的电脑, 按照设备连接手册连接即可,非常简单,见下图

连接机器的12V电源到电源插孔, 连接电脑通过USB3.0Type B线. 3,4,5,6口暂时用不到.(3,4口可用于叠加示波器观察信号品质)

  • Acute网站下载软件安装即可. http://www.acute.com.tw/eng/p4_download.php?did=1
  • 安装好软件后运行的界面如下. 选择协议分析仪图标进入.(BF6264B是协议分析仪和逻辑分析仪二和一的功能,所以会有逻辑分析和协议分析两种模式可用)

  • 进入后如下,点通讯协议,选择NAND Flash,

  • 先选择vendor 我们选macronix, 型号选MX30LF2G18AC, 点确定即可.

注意在Vendor列表里面若没有找到完全符合的型号,使用者亦可选择命令格式兼容的型号即可,当选择Custom NAND 项目时,用户可以自行建立NAND Flash 指令表,设定自己需要的命令和参数。如下(详细的设定方法请参考使用手册)

  • 点开下图圈中的图标进行NAND Flash通道设置,因为我们使用的是NAND ProbeSlot B)所以是按照下图固定好的接线顺序连接即可,接下来选择触发电平,这颗芯片是3.3V的所以我们选择Vcc 3.3V. 完了后确定即可.

  • 通道设定完按确定后返回到Protocol settings界面,

如上图即可功能区做一下简单说明:

  1. 主协议分析区有硬件解码工作(设置画面右侧所有的选项,都只做用于主协议分析),次协议分析由软件进行译码工作,因此,会于采集时伴随主协议的数据同时将波形数据取回. 开启次要协议分析后,从设备回传的总数据量会增加很多,这点要注意.此处可指定波形回传之后要采用哪一种通信协议做解码,若选择IO选项,则只显示波形.
  2. 过滤: 此功能为硬件数据过滤功能,常见的用法就是减少Data的长度,可使设备降低内存用量.
  3. 触发条件:设置触发之后若于信号满足触发条件后,就会于报告窗口做出红色箭头之触发标记,并且于trigger out端口送出触发脉冲信号. 在协议分析工作模式下使用触发功能,采集工作并不会因为触发而停止,而是持续在符合条件的地方做出标记. 如需查看所有触发所在位置,可点选“触发列表”功能即可列出所有触发点.
  4. VCC detect channel 提供了两个模拟的通道,可以用来侦测两组电压.
  • 以上设定完成按确定后,返回主界面如下

点协议分析模式按钮,可以设定三种工作模式, 我们这次选择协议分析仪模式,这三种模式的区别如下简单介绍.

协议分析仪模式:将采集到的数据即时送回PC显示,可立即的看到协议分析完的结果.

数据记录仪模式:将数据送回PC之后,仅做存档,不作后处理与显示,直到使用者按下停止后才开始做数据处理与显示.

数据监控仪模式:将数据保留于设备内不回传PC,此时新数据会不断循环覆盖掉旧数据,或者也可以设置触发条件以便于等候符合触发条件的数据到达后才填满内存,当数据收集满了之后再送回PC处理.

  • 接下来可以选择是否显示波形,default是不选择的, 可以点选显示波形,这样的坏处就是数据储存量很大,动辄就上1GB, 但是这个功能也特别好用,可以用来判断自己的接线是否ok, 如下图, 所有data信号和control信号都有抓到正常状态跳变.(这里有一个地方需要注意这些波形只能作为参考,其每个通道之间并没有做相位对齐调整)

  • 以上设定好后就可以按下采集按钮,开始采集待测板的信号. 下面我们以一个简单的ID READ命令的处理来看下抓的资料,

查看下datasheet,如下 , 我这颗是 2Gb,x8,3V.

  • 下面介绍一下功能, 如下图.

细节窗口: 先用鼠标点击报告窗口的Data栏位后,数据就会显示在细节窗口里.

统计窗口: 根据通信协议特性不同而做数据统计,方便了解整个传输的情况, 点选数据后软件会将该统计到的数据整理显示于统计列表窗口中.

隐藏数据窗口:在此画面可选择要隐藏之数据项目,本功能描述是用软件将数据隐藏起来,只要点击清除,就可恢复原数据.

  • 最后可以把抓到的数据进行存档,可保存成.txt.csv格式.