如何在使用Keithley2635B源表产生周期性信号时禁用“预充电”?

2024-10-04 03:27:46 发布

您现在位置:Python中文网/ 问答频道 /正文

你好

上下文:

我试图源自定义波形使用凯斯利2635B源。使用trigger属性listv和timer属性delaylist很容易做到,但会出现意外的行为。你知道吗

正如您在所附图片上看到的,我正在寻找一个非常简单的方形信号(具有相同延迟的两点+A–A),并使用smua.trigger.arm.count = <Periods>重复多次。注意信号在每个新周期开始时是如何稳定的吗?它只发生在跨越0时,如果我添加一个偏移量,使信号保持相同的符号,就没有问题。这个平台有一个非常一致的持续时间125µs,无论我尝试来源于哪个频率。它的影响是不可忽视的高频了。你知道吗

enter image description here

下面是代码的重要部分。上游的代码只处理用户给定的各种参数(频率、振幅、偏移量等),以创建适当的listvdelaylist。发送到Keithley的Lua命令用WRITE()函数包装,以便程序的其余部分可以用Python编写。你知道吗

# Source V
K.WRITE("smua.source.func = smua.OUTPUT_DCVOLTS")

# Configure actions to start immediately.
K.WRITE("smua.trigger.arm.stimulus = 0") 
K.WRITE("smua.trigger.source.stimulus = 0") 
K.WRITE("smua.trigger.endpulse.stimulus = 0")  

# Configure the source action.
K.WRITE("smua.trigger.source.action = smua.ENABLE")              
K.WRITE("smua.trigger.endpulse.action = smua.SOURCE_HOLD")       
K.WRITE("smua.trigger.source.listv(%s)" %SourceArray)
K.WRITE("smua.trigger.arm.count = %d" %Periods)        
K.WRITE("smua.trigger.count = %d" %PointsPerPeriod)

# Delay between outputs
K.WRITE("trigger.timer[1].reset()")
K.WRITE("trigger.timer[1].delaylist = {}".format(DelayArray))
K.WRITE("trigger.timer[1].stimulus = smua.trigger.SOURCE_COMPLETE_EVENT_ID")
K.WRITE("smua.trigger.measure.stimulus = trigger.timer[1].EVENT_ID")

# Start the trigger to generate the AC signal then turn off the output when done.
K.WRITE("smua.source.output = 1")
K.WRITE("smua.trigger.initiate()")
K.WRITE(“waitcomplete()”)
K.WRITE("smua.source.output = 0")

问题:

源表文件表明

in cases where the first sweep point is a nonzero value, it may be necessary to pre-charge the circuit so that the sweep will return a stable value for the first measured point without penalizing remaining points in the sweep.

所以我假设我看到的高原是每次重复开始时的预充电。有没有办法禁用它?提前谢谢。你知道吗


Tags: thetosourceoutput信号countactionwrite