皇晶Acute TL2236逻辑分析仪进行串行闪存量测方案
仪器信息网 · 2012-09-13 11:56 · 49939 次点击
在许多的电子产品中都有使用串行闪存(Serial/SPIFlash)的需求,它有较简单的控制程序与电路以及可靠的储存能力,使它倍受青睐。因此,常被用于电子产品里放置较关键的开机程序(Bootcode)或系统设定数据(Systemsetting)。
每当系统启动时,SerialFlash就会忙碌起来,尽快的把储存在里面的程序或数据加载系统内。但越来越复杂的命令组合以及命令差异,使得开发与除错工作变得更加困难。本文将会介绍使用逻辑分析仪来进行SerialFlash的量测工作。
单线模式译码
早期的SerialFlash使用SPI总线架构,定义了4根与命令数据传输有关的脚位分别是ChipSelect(CS)、Clock(SCK)、DataIn(DI)、DataOut(DO)。传输时,由DI将命令或数据传入SerialFlash,而DO将数据读出。如图一所示。一般称之为单线模式(Singlemode)。
*JEDECStandardNo.216:(x-y-z):标示SerialFlashI/O的模式,分别为命令码(opcodex),地址(addressy),数据(Dataz)。
用户若需量测SerialFlash总线时,只需使用具有SPI总线的仪器或工具,就可以将单线模式之SerialFlash命令/地址/数据解出。这是业界行之多年的作法。
双线及四线模式译码
有鉴于电子产品越来越需要大容量的储存空间,SerialFlash容量也顺应扩大。
储存容量扩大之后衍生而来的问题是,读取数据的时间越来越长,于是SerialFlash开始提高其工作频率,藉由较高的传输频率,以缩短传输数据的时间。
但这样还是不够快,因此进一步发展出现所谓双线模式(Dualmode)如图二,与四线模式(QuadMode),如图三的SerialFlash。其总线传输的架构,已渐渐与单线模式之SPI架构不同,也使原有的SPI仪器或工具用在此类SerialFlash的总线除错工作开始出现困难。
在各厂商所推出的SerialFlash,更增加了多种不同数量的命令与数据组合,若没办法识别Flash命令的软件工具,将很难看出总线的内容。因为这样的需求,使得具有支持SerialFlash总线分析的逻辑分析仪成为不可或缺的工具,它可协助分析这种多样性的讯号。他可以随着Flash命令的改变,而做出相应的分析。
使用逻辑分析仪分析不同命令组合分析
A.随着命令的不同,SerialFlash会以不同数量的传输线工作
下列的范例,列举了几个不同形式结构的SerialFlash结构,可以一窥命令差异所带来的影响。
范例一:如图四所示,此命令3Bh(FastReadDualI/O)是个(1-1-2)结构的命令,输入命令与地址时只需要使用1条线,但数据输出时为双线。图例可以看出,传送命令须使用8个Clock,但接收数据只需4个Clock。
图四Flash命令3Bh波形画面(1-1-2)
范例二:如图五所示,此命令EBh(FastReadQuadI/O)是个(1-4-4)结构的命令,输入命令使用1条线,但地址与数据皆为4条线。图例可以看出,传送命令须使用8个Clock,但传送地址与接收数据只需2个Clock。
图五Flash命令EBh波形画面(1-4-4)
范例三:如图六所示,此命令6Bh(FastReadQuadOuput)是个(1-1-4)结构
的命令,与地址时只需要使用1条线,但数据输出时为4线。图例可以看出,传送命令与地址须使用8个Clock,但接收数据只需2个Clock。
图六Flash命令6Bh波形画面(1-1-4)
B.更胜于SPI总线分析的功能
如图七所示,可看出有别于SPI数据输入与输出分成两条线时,不容易判别何时是数据输出的时间点。在光标A所在位置,就是SerialFlash开始输出数据的地方,从信道SPI-DO查看时必须自行数到第5个Byte才算是数据输出点。
有时候SerialFlash在输入时还会安插DummyByte,这样就更增加查看输出讯号的困扰。但若采用SerialFlash总线分析,藉由清楚的文字说明,就可以清楚的标示来数据的意义。
图七SerialFlash(SFlash)与SPI(SPI-DI,SPI-DO)总线分析比较
C.效能提升模式PEM(Performanceenhancemode)的分析
为了加快Flash数据传输速度,在进入效能提升模式后,读取数据不需要再下命令;因此第一笔输入数据即为地址,而非命令。此法可减少下命令的次数,以达到加速的效果。
由于效能提升模式的设定参数,都是包含在Dummybyte里面。而且,各
厂商之设定(Set)与取消(Reset)规则也不同,也使得判读上困难许多。如图八所示,就是一个设定进入效能提升模式波形范例。
图八即使Flash进入效能提升模式,地址与数据也可正确地被分析出来
D.逻辑分析仪SerialFlash分析设定画面
在设定画面左上角,可选择不同的Flash制造商及Flash型号。分析软件已经收录FlashDataSheet数据,作为分析的参考,实时没有完全对应到型号,也可以拿兼容的型号来解碼都是可以的。
设定画面左侧则是信道设定及译码分析设定,有些设定值如QPI(QuadPeripheralInterface)模式,在系统启动时就被软件设定好。这样的话使用者也可以透过手动的方式指定逻辑分析仪分析,就可以无误的解析出数据,如图九所示。
图九SerialFlash分析设定画面
E.完整的SerialFlash分析报告
不管是多线的组合或是效能提升模式都可藉由完整的报告,将命令、地址、提升模式设定值、数据(十六进制与ASCII)都可详细的呈现。这样,就可快速的得知分析的内容,尽速的找到问题点,如图十所示。
图十SerialFlash分析报告
利用SPI触发来进行讯号定位
虽然SerialFlash会有多线的组合,但仍有一部分的命令及地址是单线模式。因此,可利用逻辑分析仪的SPI触发功能协助讯号定位。图十一即是使用SPI触发功能,主要就是把将命令及地址数据输入。这样,就可以针对特定条件进行触发。
图十一设定SPI触发功能以触发SerialFlash命令0Bh,地址12h23h45h.
AfterCS打勾的意思是指从CSgolow之后就开始判断
在使用SPI触发的同一个时间,若可以将逻辑分析仪与示波器堆栈,就可以使用逻辑分析仪替示波器定位,如图十二所示。这样,问题分析就同时具有SerialFlash数字与模拟讯号的分析,更加的详尽清楚。透过档案共享,亦可使整个工作团队共享撷取的讯号,加快分析问题的速度
图十二结合逻辑分析仪与示波器来看SerialFlash总线讯号
结语
藉由本文的介绍,SerialFlash总线分析工作将可藉由逻辑分析仪触发及软件的配合。使原本复杂的命令组合变化及命令的定位工作都变得容易控制。这样,使用者可专心于确认本身的设计问题,而不用花费时间去找到错误波形及分析。这会是个非常有效率的解决方案。