You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Keithley2635B源表生成周期性信号时禁用预充电?

解决Keithley 2635B重复生成方波时周期起始出现平台的问题

我之前调试Keithley 2635B的自定义波形生成时,也碰到过一模一样的问题——用listv和delaylist做简单方波(+A/-A,延迟相同),设置smua.trigger.arm.count重复周期后,每个新周期开头都会出现莫名的平台,单周期输出却完全正常。结合官方手册和实际调试经验,给你梳理下原因和可行的解决办法:

可能的触发逻辑问题

这个平台本质上是周期衔接时的触发延迟导致的:

  • 当用smua.trigger.arm.count设置重复次数时,每次周期结束后源表会重新执行“武装触发”的流程,这个过程中硬件会有微小的响应延迟,导致下一个周期的第一个电平不能立即切换,从而形成平台;
  • 另外,delaylist的循环衔接逻辑也可能有坑——默认情况下,列表执行完最后一个延迟后,源表会保持最后一个电平,直到下一次触发武装完成,这中间的间隙就是你看到的平台。

亲测有效的解决办法

1. 换用repeat.count替代arm.count

两者的触发逻辑差异很大:

  • arm.count是多次武装触发,每次武装执行一遍完整列表;
  • repeat.count是单次武装下重复执行列表,能跳过多次武装的额外延迟,衔接更顺畅。

示例代码:

-- 配置方波的两个电平和对应延迟
smua.trigger.source.listv = {A, -A}
smua.trigger.source.delaylist = {t, t}
-- 设置单次武装下的重复周期数
smua.trigger.repeat.count = <Periods>
-- 启动触发
smua.trigger.initiate()

2. 给列表加一个“无缝衔接”的过渡点

如果必须用arm.count,可以在列表末尾加一个快速切换回起始电平的点,把最后一个延迟设为0,让周期结束后立即跳回+A:

smua.trigger.source.listv = {A, -A, A}
smua.trigger.source.delaylist = {t, 0, t}
smua.trigger.arm.count = <Periods>

这样每个周期的结尾会瞬间切回起始电平,下一次武装触发后直接进入正常延迟,平台就会消失。

3. 拉满输出切换速率

检查源表的电压切换速率设置,把它调到最快(关闭 slew limit),减少电平切换的响应时间:

-- 关闭输出速率限制,让电平切换最快
smua.source.slewlimit = 0

注意:过快的切换可能引入少量噪声,你可以根据实际测试结果微调这个值。

4. 直接用内置方波功能

如果自定义列表的方式麻烦,不如试试源表自带的方波生成,稳定性更好:

-- 配置内置方波参数
smua.source.func = smua.OUTPUT_DCVOLTS
smua.source.trigger.func = smua.TRIGGER_SQUARE
smua.source.trigger.frequency = 1/(2*t) -- 周期是2t,对应你原来的两个延迟时间
smua.source.trigger.highlevel = A
smua.source.trigger.lowlevel = -A
smua.source.trigger.count = <Periods>
smua.trigger.initiate()

调试小技巧

  • 先测单周期输出,确认波形正常,排除列表本身的问题;
  • 用示波器抓周期衔接处的波形,看看延迟到底出在哪个环节(是软件触发延迟还是硬件切换延迟);
  • 如果平台依然存在,可以尝试升级源表的固件,有些老固件会有触发逻辑的小bug。

内容的提问来源于stack exchange,提问作者Guimoute

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:22:26