在许多的电子产品中都有使用串行闪存的需求。串行闪存具有较简单的控制程序和电路以及可靠的储存能力,因而倍受青睐。因此,它常被电子产品用来存储较关键的启动程序或者系统设置数据。每当系统激活时,串行闪存就会忙碌起来,尽快地把储存在里面的程序或数据加载到系统内。但越来越复杂的命令组合和命令差异,使得开发与除错工作变得更加困难。本文将介绍使用
逻辑分析仪来进行串行闪存的测量工作。
单线(Single)模式译码
早期的串行闪存使用SPI总线架构定义了4根与命令/数据传输有关的引脚,分别是:CS(片选)、SCK(时钟)、DI(数据输入)和DO(数据输出)。传输时,由DI将命令或数据传入串行闪存,而DO将数据读出,如图1所示。这种模式一般称之为单线模式。使用者若要测量串行闪存总线,只需使用具有SPI总线的仪器或者工具,就可以将单线模式的串行闪存命令/地址/数据解出。这是业内行之多年的作法。
图1:串行闪存单线模式(1-1-1)。注:JEDEC标准No.216:(x-y-z)标示串行闪存I/O的模式,分别为命令码(opcodex)、地址(addressy)和数据(Dataz)。
双线(Dual)及四线(Quad)模式译码
鉴于电子产品越来越需要大容量的储存空间,串行闪存的容量也相应扩大。储存容量扩大之后衍生而来的问题是读取数据的时间越来越长。于是串行闪存开始提高其工作频率——通过较高的传输频率缩短传输数据的时间。但这样却还不够快,因而进一步发展出了所谓的双线模式(如图2)和4线模式(如图3)的串行闪存。其总线传输的架构已渐渐与单线模式的SPI架构不同,这也使原有的SPI仪器或工具用于此类串行闪存的总线除错工作开始出现困难。
图2:串行闪存双线模式(2-2-2)。
图3:串行闪存4线模式(4-4-4)。
各厂商推出的串行闪存更增加了多种不同数量的命令与数据组合。若没有识别闪存命令的软件工具,将很难看出总线的内容。这样的需求使得具有支持串行闪存总线分析的逻辑分析仪成为了*的工具,它可以协助分析这种多样性的信号。它可以随着闪存命令的改变,而做出相应的分析。
使用逻辑分析仪分析不同命令的组合
随着命令的不同,串行闪存会以不同数量的传输线工作。以下范例列举了几种不同形式的串行闪存结构,从中可以一窥命令差异所带来的影响。
范例一:如图4所示,此命令3BH(FastReadDualI/O)是一个(1-1-2)结构的命令。输入命令与地址时只需要使用1根线,但数据输出时为双线。从图例可以看出,传送命令需要使用8个时钟周期,但接收数据只需4个时钟周期。
图4:闪存命令3BH波形画面(1-1-2)。
范例二:如图5所示,此命令EBH(FastReadQuadI/O)是一个(1-4-4)结构的命令,输入命令使用1根线,但地址与数据皆为4根线。从图例可以看出,传送命令需要使用8个时钟周期,但传送地址和接收数据只需2个时钟周期。
图5:闪存命令EBH波形画面(1-4-4)。
范例三:如图6所示,此命令6BH(FastReadQuadOuput)是一个(1-1-4)结构的命令,传送地址时只需要使用1根线,但数据输出时为4根线。从图例可以看出,传送命令与地址需要使用8个时钟周期,但接收数据只需2个时钟周期。
图6:闪存命令6BH波形画面(1-1-4)。
更胜于SPI总线分析的功能:从图7可以看出,有别于SPI数据,当输入与输出分成两根线时,不容易判别数据输出的时间点。光标A所在位置,就是串行闪存开始输出数据的时刻。从信道SPI-DO查看时,必须自行数到第5个字节,才算是数据的输出点。有时候串行闪存在输入时还会安插虚拟字节(DummyByte),这样就更增加了查看输出信号的困扰。但若采用串行闪存总线分析,借由清楚的文字说明,就可以清楚地标示数据的意义。
图7:串行闪存(SFlash)与SPI(SPI-DI、SPI-DO)总线分析比较。
图8:即使闪存进入性能增强模式,地址与数据也可被正确分析出来。
性能增强模式(PEM)的分析:为了加快闪存数据的传输速度,在进入性能增强模式后,读取数据不需要再下命令。因此,*笔输入数据即为地址,而非命令。此法可减少下命令的次数,以达到加速的效果。由于性能增强模式的设置参数都是包含在虚拟字节里面,并且各厂商设置与复位的规则也不相同,这使得在判读上困难许多。图8所示就是一个设置进入性能增强模式的波形范例。
逻辑分析仪串行闪存分析设置画面:在设置画面的左上角,可以选择不同的闪存制造商和闪存型号。分析软件已经收录了闪存数据手册数据作为分析的参考。数据没有*对应到型号,因此也可以采用兼容型号进行译码。设置画面左侧则是信道设置及译码分析设置。有些设置值如QPI(4外设接口)模式,在系统激活时就已被软件设置好。这样的话,使用者也可以通过手动方式逻辑分析仪分析,从而无误地解析出数据,如图9所示。
图9:串行闪存分析设置画面。
完整的串行闪存分析报告:不管是多线的组合或是性能增强模式,都可以借由完整的报告,将命令、地址、增强模式设置值、数据(十六进制与ASCII)详细地呈现。这样就可以快速得知分析的内容,尽快地找到问题点,如图10所示。
图10:串行闪存分析报告。
利用SPI触发来进行信号定位
虽然串行闪存会有多线的组合,但仍有一部分命令及地址是单线模式。因此,可利用逻辑分析仪的SPI触发功能协助信号定位。图11即是使用SPI触发功能,其主要就是把命令和地址数据输入,这样就可以针对特定条件进行触发。
图11:设置SPI触发功能以触发串行闪存命令0BH,地址12H23H45H。“AfterCS”打勾是指CS变为低电平便开始判断。
在使用SPI触发的同一时间,若可以将逻辑分析仪与示波器堆栈,就可以使用逻辑分析仪代替示波器定位,如图12所示。这样,问题分析就可以同时具有串行闪存数字与模拟信号的分析,从而更加详尽清楚。通过档案共享,亦可使整个工作团队共享撷取的信号,加快分析问题的速度。
图12:结合逻辑分析仪与示波器来看串行闪存总线信号。
本文小结
通过本文的介绍,串行闪存总线的分析工作将可以由逻辑分析仪触发和软件的配合完成。这便使原本复杂的命令组合变化和命令的定位工作都变得容易控制。从而,使用者可以专心于确认本身的设计问题,而不用花费时间去找到错误波形以及分析。这将是一个效率的解决方案。