I need to buy a picoscope 6402C (because I need a sampling rate of 1 GSa/s for each channel in 4 channels), but before doing so, I have to be sure that it will be able to do what I need to do (I will explain it in a moment). Fortunately, I own a picoscope 5242A, so for the moment I can try to get data in Matlab using only 2 channels, and a lower sampling rate. But I have some problems. First I will explain what I need, then I will ask some questions.
What I need to do (using the picoscope 6402C that I will buy in the forthcoming days):
- I need to collect data in 4 channels, at 1 GSa/s (one value every 1 ns) for each channel, during 6 ms (hence I need 24 MSamples of data = 6MS each channel x 4 channels.). All the channels will be configured at a range of +-100 mV. I need a resolution of 1 mV so with 8 bits I am ok. After this data is collected in the scope's memory, I plan to transfer it to Matlab and cut the values that I am interested to work with. However, transfer the whole 24 MS of data can take quite a long time, and I only need "blocks" of the collected data. More concretely, I set the trigger (rise, 1V threshold) at t=0 to channel A. Then I need to collect 1000 samples of data from channel B (at t=100 us), 1000 sampes from channel A (at t=1100 us), 1000 samples from channel C (at t=4100 us) and 1000 samples from channel D (at t=5100 us). After that, I process this data and I repeat the operation every 1 s.
Questions:
Q: Is it possible to transfer a block (or "window") of 1 microsecond (1000 samples) of each channel (as described before) to Matlab for processing, thus avoiding to transfer the whole 24 MS (which can take a long time to transfer)?
I am asking this because if I collect 40MS of data using the pico software, I can get the data perfectly, but saving the data as a plain text file to the computer is very slow (around 1 minute using USB 2.0).
Q: How can I set each Channel properties, sample rate, and MS to capture using Matlab?
I am trying to modify the "PS5000A_ID_Block_Example.m" file, but I am only able to set the resolution using:
Code: Select all
[status, resolution] = invoke(ps5000aDeviceObj, 'ps5000aSetDeviceResolution', 12);
I can change the autotrigger time with the last value of the following line,
Code: Select all
[status] = invoke(ps5000aDeviceObj, 'setSimpleTrigger', 0, 1000, 2, 0, 500);
I still don't know how to set the timebase. I need to set to capture data at the maximum sampling rate available, and to capture 6 ms of data, but I don't know how. I tried to change the "65" value of the following line
Code: Select all
[status, timeIntervalNanoSeconds, maxSamples] = invoke(ps5000aDeviceObj, 'ps5000aGetTimebase', 65, 0);
I have read the picoscope 5000 API programmers guide but I still don't know how to proceed.
Any help would be much appreciated!
Last question (not so important):
Q: Is it possible to set the channel range to +-50mV, using a x10 probe? Using the picoscope software I can set +- 100 mV, but no lower values.