在许多的电子产品中都有使用 Serial Flash的需求,它有较简单的控制程序与电路以及可靠的储存能力,使它倍受青睐。因此,常被用于电子产品里放置较关键的开机程序(Boot code)或系统设定资料(System setting)。每当系统启动时,Serial Flash 就会忙碌起来,尽快的把储存在里面的程序或资料载入系统内。但越来越复杂的命令组合以及命令差异,使得开发与除错工作变得更加困难。本文将会介绍使用逻辑分析仪来进行 Serial Flash 的量测工作。
早期的 Serial Flash 使用 SPI 总线架构,定义了 4 根与命令资料传输有关的脚位分别是 Chip Select(CS)、Clock(SCK) 、Data In(DI) 、Data Out(DO)。传输时,由 DI 将命令或资料传入 Serial Flash,而 DO 将资料读出。如图一所示。一般称之为单线模式(Single mode)。
图一 Serial Flash Single mod (1-1-1)*
* JEDEC Standard No.216: (x-y-z): 标示Serial Flash I/O 的模式,分别为命令码(opcode x),位址(address y),资料(Data z)。
使用者若需量测 Serial Flash 总线时,只需使用具有 SPI 总线的仪器或工具,就可以将单线模式之Serial Flash 命令/地址/资料解出。这是业界行之多年的作法。
有鉴于电子产品越来越需要大容量的储存空间,Serial Flash 容量也顺应扩大。储存容量扩大之后衍生而来的问题是,读取资料的时间越来越长,于是 Serial Flash 开始提高其工作频率,借由较高的传输频率,以缩短传输资料的时间。但这样还是不够快,进一步发展出现所谓双线模式(Dual mode)如图二与4线模式(Quad Mode)如图三的 Serial Flash。其总线传输的架构,已渐渐与单线模式之 SPI 架构不同,也使原有的 SPI 仪器或工具用在此类 Serial Flash 的总线除错工作开始出现困难。
图二 Serial Flash双线模式(Dual mode 2-2-2)
图三 Serial Flash 4线模式(Quad Mode 4-4-4)
在各厂商所推出的Serial Flash,更增加了多种不同数量的命令与资料组合,若没办法识别 Flash 命令的软件工具,将很难看出总线的内容。因为这样的需求,使得具有支援 Serial Flash 总线分析的逻辑分析仪成为不可或缺的工具,它可协助分析这种多样性的讯号。他可以随着 Flash 命令的改变,而做出相应的分析。
范例一: 如图四所示,此命令 3Bh (Dual I/O Fast Read) 是个 (1-1-2) 结构的命令,输入命令与地址时只需要使用 1 条线,但资料输出时为双线。图例可以看出,传送命令须使用 8个 Clock,但接收资料只需 4 个 Clock。
图四 Flash 命令 3Bh 波形画面 (1-1-2)
范例二: 如图五所示,此命令 EBh(Fast Read Quad I/O) 是个 (1-4-4) 结构的命令,输入命令使用 1条线,但地址与资料皆为 4 条线。图例可以看出,传送命令须使用 8个 Clock,但传送地址与接收资料只需 2 个 Clock。
图五 Flash 命令 EBh波形画面(1-4-4)
范例三: 如图六所示,此命令 6Bh(Fast Read Quad Ouput)是个 (1-1-4) 结构的命令,与地址时只需要使用 1 条线,但资料输出时为 4线。图例可以看出,传送命令与地址须使用 8个 Clock,但接收资料只需 2 个 Clock。
图六 Flash 命令 6Bh波形画面(1-1-4)
如图七所示可看出有别于 SPI 资料输入与输出分成两条线时,不容易判别和时是资料输出的困扰。在游标A所在的位置,就是 Serial Flash 开始输出资料的地方,从通道 SPI-DO 查看时必须自行数到第5个Byte 才算是资料输出点。有时候 Serial Flash 在输入时还会安插 Dummy Byte,这样就更增加查看输出讯号的困扰。但若采用 Serial Flash 总线分析,就会清楚的标示来。
图七 Serial Flash(SFlash) 与 SPI (SPI-DI, SPI-DO) 总线分析比较
为了加快 Flash 资料传输速度,在进入效能提升模式后,读取资料不需要再下命令。因此,第一笔输入资料即为地址,而非命令。此法可减少下命令的次数,以达到加速的效果。由于效能提升模式的设定参数,都是包含在 Dummy byte 里面。而且,各厂商之设定(Set)与取消 (Reset) 规则也不同,也使得判读上困难许多。如图九所示,就是一个设定进入效能提升模式波形范例。
图九 即使Flash 进入效能提升模式,地址与资料也可正确地被分析出来
在设定画面左上角,可选择不同的 Flash 制造商及Flash型号。分析软件已经收录 Flash Data Sheet 资料,作为分析的参考。设定画面左侧则是通道设定及多样的译码分析设定,有些设定值如 QPI(Quad Peripheral Interface)模式,在系统启动时就被软件设定好。这样的话使用者也可以透过手动的方式指定逻辑分析仪分析,就可以无误的解析出资料,如图八所示。
图八 Serial Flash 分析设定画面
不管是多线的组合或是效能提升模式都可藉由完整的报告,将命令、地址、提升模式设定值、资料(十六进制与 ASCII) 都可详细的呈现。这样,就可快速的得知分析的内容,尽速的找到问题点,如图十所示。
图十 Serial Flash 分析报告
虽然 Serial Flash 会有多线的组合,但仍有一部分的命令及地址是单线模式。因此,可利用逻辑分析仪的 SPI触发功能协助讯号定位。图十一即是使用 SPI 触发功能,主要就是把将命令及地址资料输入。这样,就可以针对特定条件进行触发。
图十一 设定 SPI触发功能以触发 Serial Flash 命令0Bh,地址 12h 23h 45h.
在使用SPI触发的同一个时间,若可以将逻辑分析仪与示波器堆栈,就可以使用逻辑分析仪替示波器定位,如图十二所示。这样,问题分析就同时具有 Serial Flash 数位与类比讯号的分析,更加的详尽清楚。透过档案共享,亦可使整个工作团队共享撷取的讯号,加快分析问题的速度。
图十二 结合逻辑分析仪与示波器来看 Serial Flash 总线讯号
藉由本文的介绍,Serial Flash 总线分析工作将可藉由逻辑分析仪触发及软件的配合。使原本复杂的命令组合变化及命令的定位工作都变得容易控制。这样,使用者可专心于确认本身的设计问题,而不用花费时间去找到错误波形及分析。这会是个非常有效率的解决方案。