news 2026/4/23 13:49:41

STS8200测试机学习日记(随缘更新中)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STS8200测试机学习日记(随缘更新中)

壹、STS8200概述

STS8200服务于模拟芯片的测试。主要由测试主机和电脑(PC机)组成。

PC机通过PCI总线接口卡控制和管理测试主机,C/C++编程,支持1/2/4/8/16工位工作模式。

贰、内部模块

一、CBIT

C-bit,或者CBIT,是测试机的一个控制模块,主要用于驱动继电器等功能。

CBIT128是指有128路I/O接口,可实现16工位并行(一般每个工位预留8个C-bit通道)

1.函数CBIT128()

用于定义一块CBIT128

比如进行四工位的测试,假设每个工位使用两个继电器:K1和K2

先进行绑定操作,有点类似于parameter

工位1:K1=Cbit0, K2=Cbit1;

工位2:K1=Cbit8, K2=Cbit9;

工位3:K1=Cbit16, K2=Cbit17;

工位4:K1=Cbit24, K2=Cbit25;(官方手册中写成了K1=Cbit23, K2=Cbit24;,虽然应该能运行,但不规范)

CBIT128 cbit; BYTE K1_S1=0; BYTE K2_S1=1; BYTE K1_S2=8; BYTE K2_S2=9; BYTE K1_S3=16; BYTE K2_S3=17; BYTE K1_S4 =24; BYTE K2_S4 =25; cbit.SetOn(K1_S1, K1_S2, K1_S3, K1_S4, K2_S1, K2_S2, K2_S3, K2_S4,-1);

参数-1是结束符,表示参数列表结束

这里一次性传入了 8 个 CBit 编号(4 个 K1 + 4 个 K2),实现4 个工位的继电器同时吸合,也就是 4 个 DUT 同时接入测试资源,并行测试。

2.初始化函数Init

直接调用即可

cbit.Init();
所有128CBIT控制位断开,且给电源(+5V+12V,±15V)上电。
CBIT 输出低电平,继电器吸合
CBIT 输出高电平,继电器断开
3.SetOn()、SetCBITOn()、SetCBITOff()
SetOn()吸合指定的继电器,不在列表中的都断开,可以同时控制多个,需要以-1作为列表结束,以下两个都是单参数,不需要-1标志结束
SetCBITOn()吸合指定的继电器,其他的维持原状,一次只能吸合一个继电器
SetCBITOff()断开指定的继电器,其他的维持原状,一次只能断开一个继电器

二、FPVI10

FPVI10:双通道浮动功率电压电流源模块,用来给芯片提供电压电流,测量电压电流、功耗等参数
双通道是指有两个相互独立的通道,两套相互独立的电压电流源
浮动是指每个通道的地都是独立的
1.FPVI10()
定义一个FPVI10通道,一般测试机有多块FPVI10板卡,一块板卡有两个通道
比如:第 1 块板卡的 2 个通道是 0、1;第 2 块板卡的 2 个通道就是 2、3;第 3 块就是 4、5…… 以此类推。
一般最大配置16块板卡,即总共32个通道
则单工位工作最大逻辑通道号是31,双工位并行最大逻辑通道号是15,四工位并行最大逻辑通道号是7
FPVI10 fpvi0(0); // 使用逻辑通道0 FPVI10 fpvi1(1); // 使用逻辑通道1 //工位绑定 StsSetModuleToSite(MD_FPVI10,SITE_1,0,1,-1); /* StsSetModuleToSite( MD_FPVI10, // 模块类型:FPVI10 SITE_1, // 系统固定:绑定到第1工位 0,1, // 把逻辑通道0、1分给它 -1 // 结束符 ); */ StsSetModuleToSite(MD_FPVI10, SITE_2, 2, 3, -1); //绑定 FPVI10 的 CH2~CH3 为 SITE2 StsSetModuleToSite(MD_FPVI10, SITE_3, 4, 5, -1); //绑定 FPVI10 的 CH4~CH5 为 SITE3 StsSetModuleToSite(MD_FPVI10, SITE_4, 6, 7, -1); //绑定 FPVI10 的 CH6~CH7 为 SITE4

2.Set()

设置FPVI10的状态,包括工作模式(恒压或恒流)、恒压或恒流的值、电压量程或电流量程、 输出继电器状态及 capload时间。

3.MeasureVI()

4.GetMeasResult()

5.GPFPVI10()

三、FOVI100

八通道浮动电压电流源模块,每四个通道为一组,两组独立全浮动,每组共用一路FL和SL
有6个电压量程档:
±50V(最大输出±40V )±20V±10V±5V±2V±1V
7个电流量程档:
±1A(脉冲)±100mA±10mA±1mA±100uA±10uA(仅测量),±1uA
(仅测量)
支持与FPVI10模块同步。
系统最多支持16块FOVI100模块工作
1.FOVI()
定义一路FOVI100通道,并指定使用的逻辑通道号。每块FOVI100有8个物理通道,分为CH0~3,CH4~7两组
假如配置4块FOVI100(4*8=32个物理通道),四工位并行工作
FOVI fovi0(0) ; //使用逻辑通道 0 FOVI fovi1(1) ; //使用逻辑通道 1 FOVI fovi2(2) ; //使用逻辑通道 2 FOVI fovi3(3) ; //使用逻辑通道 3 FOVI fovi4(4) ; //使用逻辑通道 4 FOVI fovi5(5) ; //使用逻辑通道 5 FOVI fovi6(6) ; //使用逻辑通道 6 FOVI fovi7(7) ; //使用逻辑通道 7

对应工位绑定:

StsSetModuleToSite(MD_FOVI, SITE_1, 0, 1, 2, 3, 4, 5, 6, 7, -1); //绑定 FOVI100 的 CH0~CH7 为 SITE1 StsSetModuleToSite(MD_FOVI, SITE_2, 8, 9, 10, 11, 12, 13, 14, 15, -1); //绑定 FOVI100 的 CH8~CH15 为 SITE2 StsSetModuleToSite(MD_FOVI, SITE_3, 16, 17, 18, 19, 20, 21, 22, 23, -1); //绑定 FOVI100 的 CH16~CH23 为 SITE3 StsSetModuleToSite(MD_FOVI, SITE_4, 24, 25, 26, 27, 28, 29, 30, 31, -1); //绑定 FOVI100 的 CH24~CH31 为 SITE4

只需要定义8个逻辑通道变量,4各工位共用这一套变量名

比如说:

StsSetModuleToSite(MD_FOVI, SITE_1, 0,1,2,3,4,5,6,7, -1); // 当代码操作【SITE_1】的【逻辑通道0】时 → 去碰【物理通道0】 // 当代码操作【SITE_1】的【逻辑通道1】时 → 去碰【物理通道1】 StsSetModuleToSite(MD_FOVI, SITE_2, 8,9,10,11,12,13,14,15, -1); // 当代码操作【SITE_2】的【逻辑通道0】时 → 去碰【物理通道8】 // 当代码操作【SITE_2】的【逻辑通道1】时 → 去碰【物理通道9】

在真正测电路参数的时候,会这样写:

FOVI VCC(0); //定义逻辑通道 0 给 VCC FOVI VOUT(1) ; //Define Logical channel 1 to VOUT FOVI FB(2) ; //Define Logical channel 2 to FB FOVI CS(3) ; //Define Logical channel 3 to CS

2.GPFOVI()

在实际应用中,比如说一次4工位的测试,可以写成

#define STS_SITE_NUM 4 FOVI VCC(0); //Define Logical channel 0 to VCC FOVI VOUT(1) ; //Define Logical channel 1 to VOUT FOVI FB(2) ; //Define Logical channel 2 to FB FOVI CS(3) ; //Define Logical channel 3 to CS STSSetModuleToSite(MD_FOVI,SITE_1,0, 1, 2, 3); STSSetModuleToSite(MD_FOVI,SITE_2, 4, 5, 6,7); STSSetModuleToSite(MD_FOVI,SITE_3, 8, 9, 10, 11); STSSetModuleToSite(MD_FOVI,SITE_4, 12, 13, 14, 15);

也可以利用GPFOVI定义一个组,来简化代码,这里先略过,后面给完整实例

3.Set()

一样的,比如说对于

VCC.Set(FV, 5, FOVI_10V, FOVI_100MA, RELAY_ON);

恒压模式,5V的电压,量程为10V,100mA,打开输出继电器,没写上升时间,默认为0.1ms,可以自己手动设置,精度为0.1ms。

其中,输出继电器,有四种状态:

RELAY_ON:打开输出继电器;
RELAY_OFF:关闭输出继电器;
RELAY_HOLD:输出继电器保持上一个状态;
RELAY_SENSE_ON:启动独立测量模式。只打开SENSE线输出继电器,关
FORCE线输出继电器。此时FOVI100处于独立电压表模式。

4.SetSyn()

对不同的工位设定不同的电压值或电流值,且该操作对不同工位完全同步。
double setValue[2] = {3, 5}; int siteSize = 2; fovi0 .SetSyn(FV, setValue, siteSize, FOVI_10V, FOVI_100MA, RELAY_ON);
fovi0通道的SITE1设置其输出3VSITE2设置其输出5V,且 SITE1 和SITE2同步输出。同时设置risingTime为默认值。
5.SetClamp()
设置FOVI100的正负箝位值。
6.MeasureVI()
设置FOVI100的测量次数、测量间隔、测量模式以及AWG测量模式下的四次测量启动时刻。
采样测量次数,范围为1~2048
采样时间间隔单位为us,范围为10~30000us
测量模式不写默认为普通测量模式,调用函数后完成测量
VOUT.MeasureVI(20, 10);
普通模式测量,采样20次,间隔10us
7.GetMeaReault()
获取MeasureVI的测量结果。
如果选择MVRET,则测试结果为电压值,单位为V
如果选择MIRET,则测量结果为电流值,单位为A
不过事实上电压电流值都会测量,只是用户选择返回什么值
采样类型参数可为
不写默认平均值
fovi0.MeasureVI(20, 10);//fovi0 采样 20 次,间隔 10us for(i=0; i<SITENUM; i++) { adresult[i]=fovi0.GetMeasResult(i, MIRET); //sampleNumber 处参数没有填写,系统默认 AVERAGE_RESULT,此时返回电流平均值 }
返回fovi0电流测量结果平均值
fovi0.MeasureVI(20, 10); //fovi0 采样 20 次,间隔 10us for(i=0; i<SITENUM; i++) { adresult[i]=fovi0.GetMeasResult(i, MVRET, 14);//返回第 15 个点的电压值 }
返回fovi0电压测量结果第15个点的值

四、一些重要函数

1.StsGetParam()

获取函数参数指针,若返回NULL,则不可使用该指针来操作参数赋值及获取条件值等操作。
实际上就是找到测试机软件界面上的「参数框」,并和代码里的变量绑定。让代码能把测试结果(电压 / 电流)显示到测试软件的界面上。方便我们直接看测试结果。
CParam *OS_VCC = StsGetParam(funcindex,"OS_VCC");

代码找到界面上叫OS_VCC的参数框

OS_VCC->SetTestResult(site, 0, adresult[site]);

把测到的电压值,填到这个参数框里,界面就会显示数值

2.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 13:46:17

LVGL按键事件响应太慢?从GUI-Guider到Linux移植的性能调优实战

LVGL按键响应延迟诊断与优化&#xff1a;从事件捕获到渲染的全链路调优 当你在Linux平台上使用GUI-Guider设计的LVGL界面出现按键响应延迟时&#xff0c;问题可能隐藏在从硬件中断到屏幕渲染的整个链路中。本文将带你深入事件处理流程的每个环节&#xff0c;通过实际案例演示如…

作者头像 李华
网站建设 2026/4/23 13:43:55

单细胞分析革命:SCP管道的全栈解决方案

单细胞分析革命&#xff1a;SCP管道的全栈解决方案 【免费下载链接】SCP An end-to-end Single-Cell Pipeline designed to facilitate comprehensive analysis and exploration of single-cell data. 项目地址: https://gitcode.com/gh_mirrors/sc/SCP 在单细胞转录组学…

作者头像 李华
网站建设 2026/4/23 13:41:35

VisualCppRedist AIO终极指南:3步解决Windows程序启动失败的完整教程

VisualCppRedist AIO终极指南&#xff1a;3步解决Windows程序启动失败的完整教程 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否遇到过新下载的游戏无法启…

作者头像 李华
网站建设 2026/4/23 13:41:31

WPS-Zotero终极指南:5分钟实现WPS与Zotero无缝文献管理

WPS-Zotero终极指南&#xff1a;5分钟实现WPS与Zotero无缝文献管理 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero 还在为学术论文的文献引用而烦恼吗&#xff1f;WPS-Zoter…

作者头像 李华