在通用自动测试仪上实现SPI 存储器测试的方法研究

最新更新时间:2014-03-10来源: 21IC关键字:自动测试仪  SPI  存储器 手机看文章 扫描二维码
随时随地手机看文章

串行存储器大多采用I2C 或SPI 接口进行访问,其中以SPI 接口的芯片最多,主要包括EEPROM、FLASH memory、FRAM等类型。与并行存储器相比,串行存储器引脚少、体积小、易于扩展、与单片机或控制器连接简单、工作可靠,而且大多拥有掉电保持数据的特性,所以越来越多地用在各类电子产品和工业测控系统中。但SPI 存储器所有输入的内容全都由一个管脚完成,通用自动测试仪无法分辨这些信息类型,因此不便于实现地址自动算法产生,这给使用通用测试仪测试该类芯片带来了很大难度。本文首先介绍了SPI 类串行接口存储器的结构,进而以芯片AT25HP512 为例,讲述了其工作原理及测试难点,最后提出了一种能应用于通用自动测试仪的SPI 存储器测试方法。

1 SPI 串行接口存储器的基本结构

1.1 SPI 总线的结构

SPI 是一种通用串行接口总线,字长为8 位或16 位,SPI接口利用SCK、SI 和SO 三根线进行数据读/ 写。其中,SCK 为时钟信号,用于对数据传输的速率进行同步,在每一个SCK 周期,有一位数据移入或移出串行存储器。SI 为串行数据输入,用于输入命令和数据。SO 为串行数据输出,用于输出状态和数据。本文将以一种典型的SPI EEPROM AT25HP512 为例分析其结构及访问方式。图1 为AT25HP512 芯片的管脚定义,其他SPI存储器通常也都有类似的管脚。

1.2 AT25HP512 的读/ 写方式

AT25HP512 容量64K 位,采取分页存储的结构,每页128 位,既可随机读/ 写数据,又可以以序列方式连续读/ 写。序列读操作一旦执行,位地址可以自动增加,直到读出所有单元;序列写操作一旦执行,可以完成一页的128 位写。图2 为AT25HP512页写操作的时序图,利用该特性可快速完成数据的访问。

2 使用自动测试仪测试SPI 存储器的难点

2.1 数字集成电路自动测试仪的特点

自动测试仪(ATE),用于检测集成电路功能的完整性。标准的数字ATE 可针对专用及通用数字电路提供高速、高通道数字控制、测试能力。芯片的测试程序通常会有许多个功能测试向量以测试不同的功能模块,这些向量都会被加载ATE 内存中,以顺序或并发方式被执行。在实际生产过程中,由于受ATE 内存大小(即图形深度)的限制,如果向量过长,超过测试设备图形深度,就要加载一段向量,测试一段向量,再加载一段向量,再测试。该做法会使测试成本大为增加,因此往往不允许多次加载,所有测试向量需要一次性加载或由算法自动产生,以保证测试的连续性。

2.2 存储器测试特点

存储器虽然逻辑结构简单,但容量通常较大,而且由于存储器各个存储单元有可能出现相互打扰,即某个存储单元的数据变化可能引起其他单元的变化,因此存储器需要反复读/ 写的测试,测试向量的总长度往往超过ATE 的测试图形深度。针对存储器这种结构固定、可连续访问、测试算法固定的器件,需要ATE 能根据算法自动产生测试图形,用比较短的测试向量,按照固定地址产生逻辑自动完成有规律的地址变化,实现连续读/写操作。

通用ATE 一般都具备一组或多组地址产生器(APG),该单元模块可完成地址保持(HOLD)、自加(INC)、自减(DEC)等操作,使用这些标准逻辑,就可以实现绝大多数的存储器测试算法。以最常用的棋盘格测试算法为例。

如果顺序写测试程序,需要4N 的测试向量深度(N 为存储器容量),但是用测试算法,每一步流程只需要几条向量,全部只需要用几十条向量就能完成,具体方法如图3 所示。可见利用自动地址产生逻辑,可以实现极大深度的存储器测试。

2.3 SPI 存储器测试难点

上述方法可用于多数并行存储器,但难以用于SPI 存储器。

主要原因为:

(1)SPI 存储器没有独立的数据总线和地址总线,所有输入都由SI 这一根线完成,SI 除要发送地址外,还要发送数据和指令,无法独立应用于地址操作,也就无法完成对地址的算法产生,如INC 等;

(2)SPI 总线通常应用8 位寄存器,为完成一个数据传输需要在8 个时钟周期,由8 条向量串行执行,这就大大增加了向量的长度。因此,尽管ATE 有足够的数据宽度,却往往受限于数据位的深度不足,无法完成测试。

3 SPI 存储器的测试实现方法

首先,SCK 信号要按测试需求产生测试时钟,~CS、~WP 和~HOLD 给出相应控制信号。

其次,为了利用了测试仪的通道宽度,减少测试向量的深度,需要将串行发送的数据以并行的方式存储于测试仪中。多数通用测试仪都设计了并行转串行的逻辑模块,即在多个通道上并行输入数据,通过系统指令完成转换,由一个通道将数据发送出来。如果ATE 不具备该功能,也可由外部逻辑实现。

最后,要最大限度地应用测试仪的AGP 模块地址自动产生逻辑,将串行程序算法并行化处理,最终给出区别存储器地址和其他输入信息的控制逻辑。

3.1 棋盘格算法测试

以AT25HP512 棋盘格测试为例,串行SPI 存储器测试可分为以下步骤。

(1)并行转串行。存储器待收发的数据和指令都以8 位并行的方式放置在内部寄存器中,因此要借助ATE 并行转串行输出功能,将8 个通道的数据从一个通道输出。以并行转串行指令PTOS 为例,PTOS 00000101,相当于从SI 引脚在8 个周期串行输出0 0 0 0 0 1 0 1 ;

(2)将指令寄存的数据以8 位并行方式连接到测试通道上。

以读状态寄存器命令为例,SI 要输出的数据连接到不同通道,再由并转串逻辑电路输出。读出的结果与预期值进行比较。

表1 相当于执行了读状态寄存器命令RDSR,本例中读回的预期结果为LLLLLLLL.

(3)设置状态寄存器。发送写状态寄存器命令WRSR,设置存储器为写READY 状态。

(4)将8 位地址线连接到AGP 相关的通道上。

(5)为了能在SI 引脚上既能输出地址又能输出指令和数据,要设置多路选择单元,完成切换。切换控制位可以由通道位完成。图4 为测试通道控制的寄存器输入切换,控制位为0,SI引脚切换至地址线,控制位为1,SI 引脚切换至数据线和指令线。

应用该开关,就可以把需要使用算法的地址和不需要利用算法的指令和数据在通道上分开。

(6) 完成向存储单元写入数据的操作。表2 实现了连续写一页的函数PAGEWRITE 操作,从0 地址开始连续进行128 个写操作,把00000000 和11111111 的棋盘格数据交替写入一页中。

(7) 利用AGP,实现页地址递增操作。每一页写都调用PAGEWRITE,每完成一次页写操作,页地址自动加1,执行下一页的写操作,直到全部页的写操作完成。表3 为每调用一次单页写,页地址自动加1 的操作。

(8) 读并检验结果操作。与写操作类似,给出读指令和起始地址后,可连续读出所有单元。

以上方法,首先完成了逐页的连续写操作,页地址可自动递增,每完成一次正向棋盘格(按0101 格式)写操作后,再以0 地址为起始地址,完成整个器件地址自动递增的连续读操作。然后再按照相同的方法执行一次反向棋盘格(按1010 格式)的写、读,从而实现完整的棋盘格测试。

3.2 其他测试算法

在实际工程中应用最多的是存储器测试法算法复杂度为N的测试算法,除棋盘格测试法外,较为常用的还有齐步法、列条图形法和前进后退法等。应用这些算法测试SPI 存储器都与棋盘格测试类似,只是AGP 自动产生算法的方式不同,本文不再详述。

4 结语

本文分析了SPI 串行存储器的结构和访问方式,利用通用自动测试仪的并行转串行指令,增加了选通控制逻辑,为ATMEL公司的SPI 串行存储器AT25HP512 编写了测试程序,该程序最终以二进制代码的形式顺序存储于测试仪中。实验证明,该方法可以克服SPI 存储器地址算法自动产生的困难,对该类芯片测试具有通用性。

关键字:自动测试仪  SPI  存储器 编辑:探路者 引用地址:在通用自动测试仪上实现SPI 存储器测试的方法研究

上一篇:测量等离子体密度的微波标量反射计设计
下一篇:基于μC/OS Ⅱ的三维打印机的控制系统研究

推荐阅读最新更新时间:2023-10-12 22:36

avr的IO模拟SPI时序接收23位数据
/************************************************************************************** 接口说明:DAT-----PD4 CLK-----PD2(INT0) CS-------PD3(INT1) *****************************************************************************************/ #include iom16v.h #include macros.h #define dat (PIND&
[单片机]
STM32F7实现SPI读写,读取W25Q16型号
SPI协议的原理,网上大把的资料可以找到,这里记录一下SPI的初始化过程,以即以读取W25Q16型号为例的一个简单的SPI读写过程。 CubeMX配置: SPI模式 有只发送、只接收、半双工和全双工模式; 根据自己的需求,和SPI设备支持的类型,这里选择全双工的SPI; 片选信号 因为我们这个SPI总线上会挂载多个从设备,而且只有一个主机,所以,这里禁用硬件片选,程序里面读写之前使用软件进行片选; 帧格式 这里选择Motorola帧格式; 选择TI格式不能设置CPOL和CPHA,而且必须要开启硬件NSS这里才能选择TI模式。 博主在网上搜了一些关于TI的SSP协议相关的资料,只有简简单单的一句:SSP总线兼容SPI,S
[单片机]
STM32F7实现<font color='red'>SPI</font>读写,读取W25Q16型号
STM32之SPI模式
SPI协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的 通信总线,它由摩托罗拉公司提出,当前最新的为V04.01-2004版。 根据SPI时钟极性(CPOL)和时钟相位(CPHA)配置的不同,分为4种SPI模式。 时钟极性是指SPI通信设备处于空闲状态时(也可以认为这是SPI通信开始时,即SS线 为低电平时),SCK信号线的电平信号。CPOL=0时,SCK在空闲状态时为低电平,CPOL=1时则相反。 时钟相位是指数据采样的时刻,当CPHA=0时,MOSI或MISO数据线上的信号将会在SCK时钟线的奇数边沿被采样。当CPHA=1时,数据线在SCK的偶数边
[单片机]
CPU的运行机制
MCU的架构 MCU的架构主要包含三部分,CPU,存储器以及外设。 其中对于CPU的学习,主要需要掌握如下几个方面: 寄存器组 指令 栈 中断 时钟 CPU的一个总体架构图: 在上图中,可以清晰地看到指令寄存器,控制单元、寄存器组、逻辑运算单元、程序状态寄存器,以及指令存储单元,数据存储单元。 下面对上述几个部分展开详细论述。 算术逻辑运算单元 算术逻辑单元英文缩写为ALU,是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分,由与门和或门组成的算术逻辑单元,主要功能是进行二位元的算术运算,加减乘(不包含除)。 其中算术逻辑运算单元主要包含如下四个要素: 两个输入数据 ———— operands(操
[单片机]
CPU的运行机制
STM32 SPI 注意要点
觉得SPI很简单,所以从来没有去仔细去看就直接用了,这次在调一个芯片的时候出现了一个比较奇怪的问题,以为是程序逻辑的问题,浪费了好几天的时间都没有找到原因。今天乖乖查阅了一些手册,最后在《STM32不完全手册》里找到了线索,现在索性对SPI做个总结。首先说最近碰到的问题。 问题一:错以为SPI的读数据,直接读取SPIx- DR寄存器就可以完成。 这个问题我一直没注意,十分惭愧。原来SPI的时钟只有在往DR寄存器里面写数据的时候才会产生,读是不会产生的(暂时没有从哪个资料中得到确认,不过我猜就是这样)。所以要读取slave发过来的数据,master必须先发一个 DUMMY 数据,这个数据内容不重要
[单片机]
STM32自学之SPI的DMA操作(寄存器级)
STM32自学之SPI的DMA操作(寄存器级) 一、实验目标 学会配置STM32的SPI寄存器和DMA寄存器,实现STM32的SPI1与SPI2通信功能,每次发送一字节数据,并可多次发送,如果接收的数据正确,则点亮LED灯。之后看可以利用DMA来实现什么功能~~~ 二、实验目的 加入DMA的SPI通信相对于普通SPI通信有什么好处?ST给SPI加了DMA功能出于什么目的?我觉得这是很重要的一个问题,一直边学习边想。以下是我的看法: 减少CPU负荷?我想这应该是DMA最主要的功能,可是对于SPI通信来说,其实大部分时候我们需要根据发送的指令- 目标器件的应答来决定下一个指令,所以此时CPU还是需要一直等待每次通信的结束。而且
[单片机]
STM32自学之<font color='red'>SPI</font>的DMA操作(寄存器级)
嵌入式TTS汉语语音系统的设计与实现
   语言是人与人交流信息的一种手段。使计算机、带有人机交互的电器、仪表等能像人一样开口“说话”是科技工作者多年的研究目标。文语转换TTS(Text To Speech)是自动将输入文字转换成语音输出,并尽量使输出的语音效率流畅、自然的一类技术。TTS系统主要需解决两个问题:①文本分析,即语言学分析。该任务是将以文本广度输入的字符串转换成语言学的表述;②语音合成。即根据语言学的内在表述信息合成语音。TTS系统中的语音合成方法分为时域和频域两大类:频域方法主要有LPC参数合成及其振峰合成两种,其实质是在工程上实现语音生成模型,进而在终端特性上模拟发音器官。在目前阶段,频域方法形成的发音尚不自然,且需要的计算量很大,不适宜在低端的嵌入
[应用]
单线程远程网络控制SPI
摘要:生产3线 SPI 接口按MAX7221显示控制器(低电平有效CS,DIN和CLK)的要求,这1 - Wire网络地址连续三个1线开关(DS2413的)。第一个开关直接创建片选(低电平有效CS),第二个创建串行数据线直接(标准),而第三个开关与三异或门的帮助,创造了串行时钟(CLK)。   许多的1 - Wire ®兼容的外围设备可用,但对于那些缺乏的1 - Wire能力,图1所示电路一种方法可以实现它。显示的例子允许远程LED显示屏是由1线通过SPI™兼容的显示控制器的网络控制。   图1。三个1线开关(IC1的- IC3的),三异或门(IC4的),以及相关的组件使1 - Wire网络来控制这种通过S
[工业控制]
单线程远程网络控制<font color='red'>SPI</font>
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved