Open calebjordan opened 8 years ago
@calebjordan thanks for the detailed issue. APS.loadConfig
only loads a sequence file so it's not clear to me how your setting all the other parameters for the APS - in particular the setRunMode
or triggerSource
. It looks to me like you're just playing out the entire 32k sample waveform library.
Could you try something like (from memory and not tested live):
aps = APS();
aps.connect('A6001nBT');
aps.stop();
aps.loadConfig('C:/Users/Caleb/Development/BBN/AWG/Bias/bias-APS.h5');
aps.setRunMode(1,1);
aps.setRunMode(1,3);
aps.triggerSource = 'external';
aps.run()
@caryan , adding setRunMode
lines doesn't change anything. I still have to make my pulses add up to ~30us or I get repeated waveforms.
I also don't quite understand what those lines do. According to read the docs,
setRunMode(channel, mode)
Inputs integer channel - target channel (1-4); integer mode - RUN_WAVEFORM (0) or RUN_SEQUENCE (1)
Description Sets the run mode to either directly output the contents of waveform memory, or to function as a pulse sequencer, stepping through the loaded link list entries.
Are the arguments just swapped in aps.setRunMode(1,3);
? And aren't I trying to play a waveform, rather than a sequence?
I've tried every combination of setRunMode
and setRepeatMode
. Nothing seems to change this behavior.
@calebjordan if can you add the h5 sequence file you're trying to play to the issue I can try it here and see what's going on.
Here's a sample .h5.
Compiled Pulse:
Matlab Code
>> aps = APS();aps.connect('A6001nBT');
>> aps.stop();aps.setRunMode(1, 1);aps.setRunMode(1, 3);
>> aps.triggerSource = 'external'
>> aps.stop();aps.loadConfig('C:/Users/Caleb/Development/BBN/AWG/Bias/slow-APS.h5');aps.run()
Result:
Yes, Colm swapped the argument order. It should be aps.setRunMode(3,1)
. Or spelled differently, aps.setRunMode(3, aps.RUN_SEQUENCE)
.
If you call loadConfig()
, then you are using sequence mode. loadWaveform()
is used for waveform mode.
Could this have anything to do with the hardware being a DACII and not an APS? I wasn't able to reproduce this behavior with an APS unit. I will try in a bit with a DACII.
I also get the same result when running with expManager, which I imagine would intelligently configure things. And this happens with both of these DACIIs.
I'm trying to generate a single gaussian pulse per trigger. What I'm getting is a pulse train filling up ~26 us. I tried playing with
aps.setRepeatMode()
with no results.Green is pulse, Yellow is slaveTrig.
The APS is receiving a 1kHz trigger. Any ideas as to what's causing this? I can add a ~30us
Id()
, but this makes the plots impossible to see and shouldn't be necessary.PyQlab
Qlab
Config
Instruments.instrDict.APS
ChannelParams.json