在许多的电子产品中都有使用串行闪存(Serial/SPI 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)。
* 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)如图二,与四线模式(Quad Mode),如图三的 Serial Flash。其总线传输的架构,已渐渐与单线模式之 SPI 架构不同,也使原有的 SPI 仪器或工具用在此类 Serial Flash 的总线除错工作开始出现困难。
在各厂商所推出的Serial Flash,更增加了多种不同数量的命令与数据组合,若没办法识别 Flash 命令的软件工具,将很难看出总线的内容。因为这样的需求,使得具有支持 Serial Flash 总线分析的逻辑分析仪成为不可或缺的工具,它可协助分析这种多样性的讯号。他可以随着 Flash 命令的改变,而做出相应的分析。
使用逻辑分析仪分析不同命令组合分析
A. 随着命令的不同,Serial Flash 会以不同数量的传输线工作
下列的范例,列举了几个不同形式结构的 Serial Flash 结构,可以一窥命令差异所带来的影响。
范例一:如图四所示,此命令 3Bh (Fast Read Dual I/O) 是个 (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)
B. 更胜于 SPI 总线分析的功能
如图七所示,可看出有别于 SPI 数据输入与输出分成两条线时,不容易判别何时是数据输出的时间点。在光标A所在位置,就是 Serial Flash 开始输出数据的地方,从信道 SPI-DO 查看时必须自行数到第5个Byte 才算是数据输出点。
有时候 Serial Flash 在输入时还会安插 Dummy Byte,这样就更增加查看输出讯号的困扰。但若采用 Serial Flash 总线分析,藉由清楚的文字说明,就可以清楚的标示来数据的意义。
图七 Serial Flash(SFlash) 与 SPI (SPI-DI, SPI-DO) 总线分析比较
C. 效能提升模式 PEM (Performance enhance mode)的分析
为了加快 Flash 数据传输速度,在进入效能提升模式后,读取数据不需要再下命令;因此**笔输入数据即为地址,而非命令。此法可减少下命令的次数,以达到加速的效果。
由于效能提升模式的设定参数,都是包含在 Dummy byte 里面。而且,各
厂商之设定(Set)与取消 (Reset) 规则也不同,也使得判读上困难许多。如图八所示,就是一个设定进入效能提升模式波形范例。
图八 即使Flash 进入效能提升模式,地址与数据也可正确地被分析出来
D. 逻辑分析仪 Serial Flash 分析设定画面
在设定画面左上角,可选择不同的 Flash 制造商及Flash型号。分析软件已经收录 Flash Data Sheet 数据,作为分析的参考,实时没有完全对应到型号,也可以拿兼容的型号来解碼都是可以的。
设定画面左侧则是信道设定及译码分析设定,有些设定值如 QPI(Quad Peripheral Interface)模式,在系统启动时就被软件设定好。这样的话使用者也可以透过手动的方式指定逻辑分析仪分析,就可以无误的解析出数据,如图九所示。
图九 Serial Flash 分析设定画面
E. 完整的Serial Flash分析报告
不管是多线的组合或是效能提升模式都可藉由完整的报告,将命令、地址、提升模式设定值、数据(十六进制与 ASCII) 都可详细的呈现。这样,就可快速的得知分析的内容,尽速的找到问题点,如图十所示。
图十 Serial Flash 分析报告
利用 SPI 触发来进行讯号定位
虽然 Serial Flash 会有多线的组合,但仍有一部分的命令及地址是单线模式。因此,可利用逻辑分析仪的 SPI触发功能协助讯号定位。图十一即是使用 SPI 触发功能,主要就是把将命令及地址数据输入。这样,就可以针对特定条件进行触发。
图十一 设定 SPI触发功能以触发 Serial Flash 命令0Bh,地址 12h 23h 45h.
After CS 打勾的意思是指从 CS go low 之后就开始判断
在使用SPI触发的同一个时间,若可以将逻辑分析仪与示波器堆栈,就可以使用逻辑分析仪替示波器定位,如图十二所示。这样,问题分析就同时具有 Serial Flash 数字与模拟讯号的分析,更加的详尽清楚。透过档案共享,亦可使整个工作团队共享撷取的讯号,加快分析问题的速度
图十二 结合逻辑分析仪与示波器来看 Serial Flash 总线讯号
结语
藉由本文的介绍,Serial Flash 总线分析工作将可藉由逻辑分析仪触发及软件的配合。使原本复杂的命令组合变化及命令的定位工作都变得容易控制。这样,使用者可专心于确认本身的设计问题,而不用花费时间去找到错误波形及分析。这会是个非常有效率的解决方案。