1、22 集成电路应用 第 40 卷 第 7 期(总第 358 期)2023 年 7 月 Research and Design 研究与设计摘要:阐述C8051F系列MCU测试程序的设计方法,包括测试程序和软硬件方案、通信协议制定规则、配置程序编写方法,基于EVA-100实现C8051F330测试程序,在此基础上进行扩展,探讨整个系列MCU测试程序的扩展方案。关键词:集成电路测试,C8051F330,MCU,通信协议,EVA-100。中图分类号:TN407,TP368.1 文章编号:1674-2583(2023)07-0022-04DOI:10.19339/j.issn.1674-2583.202
2、3.07.009文献引用格式:杨超,金荣康,张金凤,吴迪.C8051F系列混合信号MCU测试方法与实现J.集成电路应用,2023,40(07):22-25.C8051F系列混合信号MCU测试方法与实现 杨超,金荣康,张金凤,吴迪(北京振兴计量测试研究所,北京 100074)Abstract This paper expounds the design method of the C8051F series MCU testing program,including testing programs and software and hardware solutions,communicatio
3、n protocol development rules,configuration program writing methods,and the implementation of the C8051F330 testing program based on EVA-100.On this basis,the extension is carried out to explore the expansion plan of the entire series MCU testing program.Index Terms integrated circuit testing,C8051F3
4、30,MCU,communication protocol,EVA-100.Analysis of Testing Method and Implementation for C8051F Series Mixed Signal MCUYANG Chao,JIN Rongkang,ZHANG Jinfeng,WU Di(Beijing Zhenxing Institute of Metrology and Testing,Beijing 100074,China.)作者简介:杨超,北京振兴计量测试研究所;研究方向:MCU测试程序设计。收稿日期:2022-10-20;修回日期:2023-06-2
5、2。工业控制和小型数字系统的主控芯片。1 C8051330芯片C8051F330封装资源结构图见图1,其封装是QFN-20,具有20个管脚,其中17个数字IO,可以经过配置和交叉引用将内部数字或者模拟资源引出;C8051F330具有10位多路模数、数模转换器,温度传感器,电压比较器等丰富的模拟资源,同时具有UART、SPI、SMBUS、PCA定时器等多样的数字接口资源;C8051F330具有片内上电复位,VDD实时监测,看门狗定时器和时钟振荡器等功能,是真正能独立工作的片上系统。其小型化的封装、丰富的系0 引言随着在嵌入式领域中对单片机的性能和功能要求越来越高,以往的单片机无论是运行速度还是系
6、统集成度等多方面都不能满足新的设计需求,SILICON LABS公司推出了C8051F系列单片机,成为MCU的典型代表。C8051F系列MCU,基于增强的CIP-51内核,其指令集与MCS-51完全兼容,具有标准8051的组织架构。CIP-51采用流水线结构。70%的指令执行时间为1或者2个系统时钟周期,是标准8051指令执行速度的12倍,其峰值执行速度可达100MIPS,是世界上最快的8位单片机。C8051F系列MCU,具有多种型号可选配置,集成了丰富的外设接口。数字资源方面:具有两路UART和最多可达5个定时器及6个PCA模块,此外还根据不同的需要集成了SMBUS,SPI,USB,CAN,
7、LIN等接口;模拟资源方面:绝大部分C8051F系列MCU都集成了单个或者两个ADC,片内ADC采样精度最多可达24位,采样速率可达800ksps,某些型号的器件还集成了温度传感器和电压基准。C8051F系列单片机是典型的混合信号MCU,具有功能多样,集成度高,封装简洁等特点,可以应用于多种控制场合,非常适合作为图1 C8051F330内部资源框图 集成电路应用 第 40 卷 第 7 期(总第 358 期)2023 年 7 月 23Research and Design 研究与设计统接口以及完善独立的功能,使其在军品和民品市场都得到了广泛的应用。2 基于EVA-100的C8051F330测试设
8、计与实现C8051F330器件逻辑资源众多、外设接口丰富、可编程性强,MCU的测试一直是元器件测试行业的难题;MCU不同于普通的元器件,未进行编程的MCU没有功能输出,无法直接对其进行测试。2.1 总体测试解决方案本文采用“自测试”方法对MCU进行测试:利用开发软件编写MCU配置程序,根据控制器功能分模块进行测试,将不同模块配置程序分别放在子程序中;制定通信协议指令,不同指令指向不同的配置子程序;ATE发送特定指令,MCU接收到指令执行特定的子程序,执行完成之后通过IO端口反馈执行结果,由ATE进行观测,直至完成所有子程序的测试和观测。测试软硬件开发方法见图2所示。2.2 测试架构测试架构见图
9、3。整体测试架构包括ATE测试设备,测试接口板(适配器),待测芯片,上位机和下载器等几个部分组成。与普通芯片测试区别在于施加测试之前,需要对芯片进行配置源程序的编写和下载,使得芯片具有特定的功能,并且待测芯片可以和测试台进行交互,方便进行测试调度。本文采用的自动测试设备是ADVANTEST生产的EVA-100,该设备测试速度可以达到100MHz,具有256个测试通道,PPMU带负载能力达到32mA,图形化的编程界面操作简单,具有图形匹配功能和多样的向量编程语言,特别适合于用作MCU的测试平台。2.3 测试硬件的设计测试接口板及其与ATE连接关系示意图如下图4所示,主要包括复位电路,晶振电路、电
10、源等待测芯片正常工作需要的最小系统。预留下载接口,与待测芯片调试、下载管脚相连,方便综合控制计算机对待测芯片的下载配置;待测芯片的所有可测管脚从测试插座引出,与测试台数字通道相连,方便进行驱动的施加、响应的观测;为了实现UART、SPI、SMBUS等总线接口的测试,被配置为上述总线接口的IO管脚需要上拉,要求同一IO管脚在不同时间点具有不同的硬件连接状态,由光耦进行状态的切换,光耦控制管脚接到测试台继电器控制位上。除此之外,测试接口板所有电源均连接到ATE的数字可编程电源上,由测试台进行供电的同时可以监控功耗电流。2.4 通信协议的制定由以上分析可知,通信协议是ATE调度待测芯片内部资源的桥梁
11、,在顶层设计时制定一套通信协议:通信协议的容量要大于测试项的个数,保证通信协议可以调度足够多的测试项;通信协议包括调度协议和观测协议两个部分,调度协议用来调度待测芯片的测试项,决定配置程序指向不同的资源,观测协议约定了不同测试资源不同的输出,方便测试台进行观测。通常情况下,如果待测芯片具有足够的IO,一般选择IO不同状态的组合作为测试资源的调度,C8051F330测试过程中正是使用了这一方法。需要图2 测试软硬件开发方法图3 测试架构图图4 测试接口板及其与ATE连接关系24 集成电路应用 第 40 卷 第 7 期(总第 358 期)2023 年 7 月 Research and Design
12、 研究与设计循环等待通信协议。设置通信协议入口,指向不同的测试项,分别编写不同测试项初始化程序,测试过程和ATE配合,待测芯片在内部进行判断功能是否合格,判断之后发送观测指令,观测指令维持固定的时间等待ATE观测,之后待测芯片进入等待状态,总线空闲,等待下一次通信协议指令的到来。2.6 测试程序的编写和实现(1)IO测试程序编写与实现。编写测试PATTERN,ATE通过测试PATTERN将IO测试指令发送到待测芯片,待测芯片接收到IO测试指令之后进入IO初始化配置,初始化配置中将P0、P1、P2所有管脚输出高电平,间隔一段时间之后所有管脚输出电平翻转成低电平。测试PATTERN编写过程中计算好
13、时间,在固定的时间判断P0,P1,P2端口的高低电平,PATTERN测试通过说明器件IO功能完好。(2)S M B U S 测 试 程 序 编 写 与 实 现。C8051F330的SMBus I/O接口是一个双线的双向串行总线。SMBus完全符合系统管理总线规范1.1版,与I2C串行总线兼容。为了验证SMBUS接口完好性,本文外接EEPROM进行辅助测试,当器件收到IIC测试指令,进入IIC初始化配置,通过SCL、SDA两个管脚对EEPROM进行全片写入,读出操作,在控制器内部进行判断,如果读出结果与写入结果一致,通过P1端口发出相应的观测指令,功能测试PATTERN在预期的时间读取观测指令,
14、功能测试通过,则SMBUS接口功能完好。(3)UART测试程序编写与实现。编写测试PATTERN,测试系统通过测试PATTERN发送UART测试指令;C8051F330进入UART初始化配置,配置过程通过交叉开关将固定的引脚指定为UART输入和输出管脚,并配置工作模式为,输入管脚收到的UART数据通过输出管脚再次发送;测试系统通过测试向量向UART专用的输入管脚写入符合UART协议的指令,C8051F330收到UART指令后将收到的数据重新打包通过UART输出管脚发出,测试系统观测是否在预期时间收到预期的UART数据包,功能测试通过,表明UART功能完好。(4)DA模块测试程序编写与实现。C8
15、051F330的DA模块是10位电流型运放,即可以对最大量程的电流值(0.5mA,1mA,2mA三个可选量程档位)等分成1024份,根据数字量的不同,随意选择输出的恒流值。编写测试PATTERN,测试系统发送DA测试指令,C8051F330进入DA测试模式,首先进行DA初始化,选择量程档位为2mA,设定DA输入分别为1024,512,256,0,数字输入改变中间分别延迟固定时间,测试系统在DA稳定状态下测试DA专用输出管脚电流值,分别在2mA,1mA,0.5mA,0mA附近并满足误差要求范围之内,判定DA功能合格。(5)AD测试程序编写与实现。编写测试注意的是C8051F330的IO接口默认状
16、态下输出为高,需要用0作为有效位进行通信协议的制定。测试程序开发和调试过程中部分调度协议和观测协议见表1所示。待测芯片C8051F330共3组IO,其中P0、P1端口分别是8个IO,P2端口仅有1个IO;P0端口复用状态较多,时钟输入和UART专用管脚必须连接在P0上,P0端口不适合用作测试调度和观测;P1组IO同样具有8个可用IO,测试过程软件编程可以避免P1作为复用端口,共有64个不同状态可以选择,即通信协议容量为64,完全满足本次测试需求。另从表1可知,观测协议同样选择P1端口进行ATE比对(除某些特定功能外),并且调度协议与观测协议相同,方便测试程序和配置程序的编写。2.5 配置源程序
17、的编写C8051F330配置源程序编写思路流程如图5所示,首先进行内核初始化,配置系统时钟源,将承载调度协议的P1端口设置成数字IO,随后进入FOR表1 通信协议对照表图5 配置源程序编写流程图 集成电路应用 第 40 卷 第 7 期(总第 358 期)2023 年 7 月 25Research and Design 研究与设计PATTERN,测试系统发送AD测试指令,C8051F330进入AD测试模式;进行初始化配置,将固定管脚配置成AD输入,测试台通过专用模拟输入管脚输入固定的电平,并将采样得到的数字码与预期数字码进行比较,在误差允许范围之内人为AD模块测试合格,发送预期的观测指令,测试系
18、统在固定的时间采集到观测指令,则AD模块测试通过。(6)输出电平测试程序编写与实现。编写测试PATTERN,测试系统发送输出电平测试指令,C8051F330进入输出电平测试模式,进行初始化配置,将所有管脚设置为设置成数字IO,推挽输出模式,输出高电平,此时进行根据数据手册施加的电流值进行VOH测试;使用同样的方式,将所有数字IO设置成低电平,进行VOL的测试即可。输入电流的测试方法与输出电平类似,不再坠余,具体参数见表2所示。3 测试程序开发过程中的问题与应对策略 3.1 测试程序的扩展C8051F系列MCU,种类繁多,封装各异,在本文的基础上,但是他们在软件开发上具有通用性,利用本文所述方法
19、,在此基础上进行扩展,可以很方便地进行C8051F系列MCU测试程序开发。需要注意的是,在通信协议制定过程,某些芯片管脚比较多,直接选用某一组IO进行通信协议的制定即可,有些芯片管脚特别少,例如C8051F300,仅有12个管脚,其中还有某些专用管脚,这样就不适合使用IO作为通信协议的制定,可以选用UART指令制定通信协议,这样既减少了通信协议对IO的占用,又增加了通信协议的容量,方便进行测试程序开发。3.2 测试向量的编写本文所述C8051F330包括其他MCU不同于普通的逻辑器件,测试过程中会不断响应外部的事件,在内部进行查询或者中断处理,最后发送给测试设备响应信号。整个过程,单个芯片同一
20、个测试项响应时间会有不同,不同的器件同一个测试项响应时间也会有所不同,也就是说测试过程某些测试项没有明确的预期时间。某些测试项需要使用测试设备的匹配功能进行测试,测试向量停在某一行等待,当匹配到预期的高、低电平再继续往下进行测试,如此方可保证测试的一致性。IIC,UART等总线测试过程尤其需要使用测试设备的匹配功能。4 结语本文以C8051F330为例介绍了C8051F系列MCU测试程序开发方法,主要介绍了测试程序软硬件开发方案,通信协议制定规则,配置程序编写方法,并基于EVA-100实现了C8051F330测试程序开发,在此基础上进行了扩展,介绍了整个系列MCU测试程序开发扩展方案。本文提供
21、的方法,不仅可以用于C8051F系列MCU测试程序开发,对于其他系列MCU,包括ARM,DSP等器件测试程序开发,均有比较大的借鉴意义。同时,本文所述测试方法,充分利用MCU强大的运算、控制和判断能力,在MCU内部执行流程控制和结果判断,使得MCU和测试设备协调运作,大幅度减少了ATE测试PATTERN编写难度,在前期合理规划的条件下,可以充分覆盖器件的功能、资源和故障模式,具有良好的推广效果。参考文献1 席筱颖.8位MCU设计验证及测试向量故障覆盖率分析D.黑龙江:哈尔滨理工大学,2007.2 姚土生.一款兼容MCS-51指令8位微控制器的研究与设计D.陕西:西安电子科技大学,2011.3 刘海涛.基于8 位MCU核的智能编码ASIC设计D四川:电子科技大学,2003.4 严克剑,张淼,黄先伟.单片机C语言编程中多位乘法运算问题探讨J.广东工业大学学报,2006(04):23-26.5刘春光.改进后MCU测试架构及其测试策略研究J.电子测试,2021(15):107-108+85.6 张键,鲍宜鹏.基于MCU的可测性设计与实现J.电子与封装,2021,21(01):76-80.7杨兆瀚.MCU芯片测试系统研究与实现D.黑龙江:哈尔滨工程大学,2015.表2 C8051F330输入输出参数