实现串行接口芯片测试的方法与流程

文档序号:30950699发布日期:2022-07-30 07:25阅读:244来源:国知局
实现串行接口芯片测试的方法与流程

1.本发明涉及硬件电路领域,尤其涉及芯片测试领域,具体是指一种实现串行接口芯片测试的方法。


背景技术:

2.现有的芯片测试方法一般都需要在芯片外部封装独立的测试引脚,通过该引脚选择进入各种测试模式,然后编写测试程序后转换成二进制文件的测试码,从测试引脚输入来完成对电路各项性能的测试和评估。
3.这种方法需要封装额外的专用测试引脚,对于一些走低成本路线的中低端芯片,会增加额外的封装成本。同时,这种传统的测试方法都需要编写较为复杂的软件测试程序,对于测试人员的软件编程能力要求较高,且一旦发现测试问题,从繁杂的程序中排查也较为不易,因此整体测试效率较低。


技术实现要素:

4.本发明的目的是克服了上述现有技术的缺点,提供了一种满足测试效率高、成本低廉、适用范围较为广泛的实现串行接口芯片测试的方法。
5.为了实现上述目的,本发明的实现串行接口芯片测试的方法如下:
6.该实现串行接口芯片测试的方法,其主要特点是,所述的方法包括以下步骤:
7.通过i2c控制模块的串行通信引脚输入第一通信协议,芯片进入测试模式;
8.通过指令码及其解析格式,选择进入各项次级测试模式,通过i2c控制模块的串行通信引脚与测试译码电路进行数据串行或并行转换,进行数据的读写;
9.接收测试结束指令或指令译码错误指令,芯片退出测试模式。
10.较佳地,所述的芯片进入测试模式的步骤具体包括以下处理过程:
11.芯片处于空闲态,若检测到i2c_rstn变高,芯片进入等待状态;
12.拉低并保持串行数据线sda,芯片进入应答阶段;
13.等待预设时间后释放串行时钟线scl,使串行时钟线scl恢复默认值上拉高电平;
14.芯片检测到串行时钟线scl变高,自动释放串行数据线sda,使串行数据线sda恢复成默认值上拉高电平,芯片退出应答阶段,进入释放状态;
15.拉高test_en信号,进入测试模式,进行地址匹配,芯片等待接收模式选择码的输入。
16.较佳地,所述的芯片处于空闲态的情况下,复位信号long_rstn为0且串行时钟线scl被强制拉低。
17.较佳地,所述的预设时间为大于80微秒。
18.较佳地,所述的芯片进入各项次级测试模式的步骤具体包括以下处理过程:
19.通过i2c控制模块输入的第一字节数据选择次级测试模式,进入相应测试,每种次级模式对应一组5位的模式选择编码;
20.次级测试过程结束,输入对应的指令退出次级模式;若重新进入其他次级测试模式。
21.较佳地,所述的进入次级测试模式的步骤还包括以下处理过程:
22.若输入的次级测试模式编码值不在芯片包含的次级测试模式内,则产生一个时钟周期的i2c_test_quit信号至i2c控制模块,i2c控制模块将test_en信号拉低,退出测试模式。
23.较佳地,所述的芯片退出测试模式的步骤具体包括以下处理过程:
24.判断是否接收测试结束指令或指令译码错误指令,如果是,则芯片退出测试模式,test_en信号拉低;否则,继续保持测试状态;
25.芯片进入quit状态,判断是否检测到long_rstn拉高,如果是,则切换至norm状态,i2c控制模块退出测试模式,恢复正常通信模式;否则,继续保持quit状态。
26.较佳地,所述的次级测试模式包含5种模式,分别为扫描链测试、ram测试、otp测试、寄存器测试和时钟测试。
27.较佳地,所述的扫描链测试模式,具体为:
28.在test_en信号变高后,通过i2c接口输入scan test模式码mode_code1,进入扫描链测试模式,完成芯片扫描链测试,在掉电时退出scan test模式;
29.所述的ram测试模式,具体为:
30.在test_en变高后,通过i2c接口输入ram bist模式码mode_code2,进入ram bist模式,完成对ram的读写测试,通过ram bist测试退出指令码退出ram测试模式。
31.较佳地,所述的otp测试模式,具体为:
32.在test_en变高后,通过i2c接口输入otp test模式码mode_code3,进入otp test模式,完成对otp的擦除、烧写、读取的测试,完成测试后,通过otp test测试退出指令码退出otp测试模式;
33.所述的寄存器测试模式,具体为:
34.在test_en变高后,通过i2c接口输入reg test模式码mode_code4,进入寄存器测试模式,通过不同的指令码访问trim寄存器和sfr寄存器;通过设定trim以及sfr寄存器,完成各项性能参数测试,通过reg test测试退出指令码退出寄存器测试模式;
35.所述的时钟测试模式,具体为:
36.在test_en变高后,通过i2c接口输入clk test模式码mode_code5,进入clk test模式,完成对芯片时钟网络的测试,通过clk test测试退出指令码退出时钟测试模式。
37.采用了本发明的实现串行接口芯片测试的方法,复用i2c引脚为测试引脚,省去了芯片需要额外封装的专用测试引脚,节约了封装成本。本发明依托i2c硬件通信协议的优势,承担了很大部分软件程序的开销,使得芯片测试程序得以简化,一旦测试中发现问题,也更容易排查,大大提高了测试人员的工作效率,进一步降低成本,提高芯片测试效率。
附图说明
38.图1为本发明的实现串行接口芯片测试的方法的系统框图。
39.图2为一实施例的实现串行接口芯片测试的方法的进入测试模式的特定协议时序图。
40.图3为一实施例的实现串行接口芯片测试的方法的次级测试模式i2c通讯格式示意图。
41.图4为一实施例的实现串行接口芯片测试的方法的次级测试模式时序图。
具体实施方式
42.为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
43.本发明自主创新了一套进入测试模式、选择次级测试模式、退出测试模式的系统性方法。首先,进入测试模式的特定协议可保证进入测试模式的可靠性和稳定性;其次,通过自主创新的指令码及其解析格式,可灵活选择进入各项次级测试模式、进行数据的读写以及完善的测试退出机制,依托i2c硬件通信协议的优势,承担了很大部分软件程序的开销,使得芯片测试程序得以简化,一旦测试中发现问题,也更容易排查,大大提高了测试人员的工作效率,进一步降低成本,提高芯片整体测试效率。
44.本发明提供了一种通过异步半双工串口通信协议i2c进行芯片测试的方法。
45.本发明所阐述的方法其工作原理如下:
46.在芯片系统复位信号long_rstn复位期间,通过i2c接口输入第一通信协议,使芯片进入测试模式,从而进行各项测试。进入测试模式后,i2c负责与指令译码模块之间进行数据串行/并行转换,实现测试数据的读写,整个系统框图如图1所示。
47.本发明公开了异步半双工串口通信协议i2c进行芯片测试的方法,提供了测试模式的特定协议,也提供了二级测试模式的方法、指令码及其解析格式。
48.本发明的该实现串行接口芯片测试的方法,所述的方法包括以下步骤:
49.通过i2c控制模块的串行通信引脚输入特定的通信协议,芯片进入测试模式;
50.通过指令码及其解析格式,选择进入各项次级测试模式,通过i2c控制模块的串行通信引脚与测试译码电路进行数据串行或并行转换,进行数据的读写;
51.接收测试结束指令或指令译码错误指令,芯片退出测试模式。
52.该发明所阐述的方法分为两个部分,第一部分是i2c进入测试模式特定协议的设计,进入测试模式的特定协议时序图如图2所示。
53.(1.1)long_rstn=0且scl被强制拉低,芯片此时处于空闲态idle,此为第一阶段;
54.(1.2)此时如果检测到i2c_rstn变高,芯片将进入等待状态wait,此为第二阶段;
55.(1.3)此后芯片将进入应答阶段,这时芯片内部自动将sda拉低并保持,此为第三阶段;
56.(1.4)测试人员在观测到sda拉低后,等待至少80us后释放scl,使scl恢复成默认值上拉高电平,芯片内部当检测到scl变高之后,自动释放sda,使得sda也恢复成默认值上拉高电平,芯片退出应答阶段转而进入释放状态release,此为第四阶段;
57.(1.5)此时test_en拉高,表明成功进入测试模式。先进行地址匹配,在测试模式中,i2c从设备地址硬件固定;主设备发送正确地址匹配后,芯片开始等待接收模式选择码输入,测试一段时间后,当收到测试结束指令quit或是指令译码错误指令,芯片退出测试模式,test_en随即拉低,芯片进入quit状态,此为第五阶段;
58.(1.6)在quit模式下,一旦检测到long_rstn拉高,芯片切换到norm状态,i2c随即
退出测试模式,回归正常通信模式。
59.第二部分是次级测试模式的设计,次级测试模式的时序图如图4所示。
60.test_en变高进入测试模式后,通过i2c输入1字节数据选择次级测试模式,并进行相关的测试。测试模式中i2c从机地址固定,写或读操作由主机发送的读写(r/w)位决定,
‘0’
表示主机发送数据(写),
‘1’
表示主机接收数据(读)。具体方法如下所述:
61.(2.1)通过i2c输入的第一字节数据为次级测试模式选择,次级测试模式共包含5种模式:扫描链测试(scan test)、ram测试(ram bist)、otp测试(otp test)、寄存器测试(reg test)、时钟测试(clk test)。同时,每种次级模式对应一组5位的模式选择编码,5种次级测试模式及其对应编码如下表1所示。
62.次级测试模式scan testram bistotp testreg testclk test模式选择码mode_code1mode_code2mode_code3mode_code4mode_code5
63.进入次级测试模式的通讯格式为:1位起始位start+8位i2c从设备地址+1位写操作位+5位模式选择码+1位停止位stop,具体如下图3所示。
64.(2.2)如果输入的次级测试模式编码值在这5种以外,则产生一个时钟周期的i2c_test_quit信号给i2c控制模块,i2c控制模块进而将test_en拉低,退出测试模式。
65.(2.3)选择任一模式后,可进入相应测试。次级测试过程结束后,可输入指令退出次级模式。根据不同的次级模式,有不同的退出指令。
66.(2.4)退出次级测试模式后,如需重新进入其他次级测试模式,可重复步骤1操作。
67.各次级测试模式如下:
68.扫描链测试模式:
69.test_en变高后,通过i2c接口输入scan test模式码mode_code1,即进入扫描链测试模式。进入该模式后,完成芯片扫描链测试,只有掉电才能退出scan test模式。
[0070][0071]
ram测试模式:
[0072]
test_en变高后,通过i2c接口输入ram bist模式码mode_code2,即进入ram bist模式。进入该模式后,完成对ram的读写等测试,完成测试后,通过ram bist测试退出指令码退出该测试模式。
[0073][0074]
otp测试模式:
[0075]
test_en变高后,通过i2c接口输入otp test模式码mode_code3,即进入otp test模式。进入该模式后,完成对otp的擦除、烧写、读取等测试,完成测试后,通过otp test测试退出指令码退出该测试模式。
[0076]
[0077][0078]
寄存器测试模式:
[0079]
test_en变高后,通过i2c接口输入reg test模式码mode_code4,即进入寄存器测试模式。进入该模式后,可以通过不同的指令码,访问trim寄存器(固化在otp区域中的寄存器)和sfr寄存器(cpu可访问的通用寄存器)。通过设定trim以及sfr寄存器,可以完成高速振荡器、低速振荡器、ldo、上电复位、低压复位、带隙基准、io端口等模拟电路以及数字电路模块的各项性能参数测试。完成测试后,通过reg test测试退出指令码退出该测试模式。
[0080][0081]
时钟测试模式:
[0082]
test_en变高后,通过i2c接口输入clk test模式码mode_code5,即进入clk test模式。进入该模式后,完成对芯片时钟网络的测试,完成测试后,通过clk test测试退出指令码退出该测试模式。
[0083][0084]
上述测试方法,在测试模式下,通过复用i2c的串行通信引脚为芯片测试引脚,省去了原本芯片需要额外封装的专用测试引脚,节约了封装成本。
[0085]
同时,在测试过程中,以i2c通信协议为基础,自主创新了一套进入测试模式、选择次级测试模式、退出测试模式的系统性方法。首先,进入测试模式的特定协议可保证进入测试模式的可靠性和稳定性;其次,通过自主创新的指令码及其解析格式,可灵活选择进入各项次级测试模式、进行数据的读写以及完善的测试退出机制,依托i2c硬件通信协议的优势,承担了很大部分软件程序的开销,使得芯片测试程序得以简化,一旦测试中发现问题,也更容易排查,大大提高了测试人员的工作效率,进一步降低成本,提高芯片测试效率。
[0086]
采用了本发明的实现串行接口芯片测试的方法,复用i2c引脚为测试引脚,省去了芯片需要额外封装的专用测试引脚,节约了封装成本。本发明依托i2c硬件通信协议的优势,承担了很大部分软件程序的开销,使得芯片测试程序得以简化,一旦测试中发现问题,也更容易排查,大大提高了测试人员的工作效率,进一步降低成本,提高芯片测试效率。
[0087]
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1