Fastest trigger re-arming on PS3206D MSO

Post your C and C++ discussions here
Post Reply
Posts: 0
Joined: Tue Jan 27, 2015 1:15 am

Fastest trigger re-arming on PS3206D MSO

Post by wpats » Mon Jun 01, 2015 10:57 pm

I am trying to write an application for unmonitored data logging using my PS3206D MSO. The signal of interest has bursts of pulses with a pulse repetition interval of a few milliseconds. The bursts themselves are separated by arbitrarily long intervals. The app will arm the trigger and save the amplitude and some form of timestamp for each pulse when the trigger fires. I'm interested in dropping as few pulses as possible so I am looking for the API which will re-arm the trigger and transfer the samples to app buffers as quickly as possible during each burst.

I have been experimenting with the C_Console app provided with the latest SDK. I've found that after collecting a block or stream of samples after the trigger fires the only way to re-arm the trigger is to call ps3000aRunBlock / ps3000aRunStreaming again depending on the transfer mode. It looks like the block transfer mode provides the lowest trigger re-arm latency and I am able to capture waveforms at ~10ms intervals. Similar loop using the streaming mode results in a latency of ~150ms between trigger re-armings. And the rapid block transfer mode does no better possibly because it is copying multiple segments.

What is the recommended transfer mode and API to use for my application ? Is it triggered block mode using multiple segments ?

I am using Visual Studio 2012 to build the sample code.

Any help/tips would be appreciated.



Advanced User
Advanced User
Posts: 2856
Joined: Tue May 31, 2011 3:43 pm
Location: St. Neots, Cambridgeshire

Re: Fastest trigger re-arming on PS3206D MSO

Post by Hitesh » Fri Jun 05, 2015 11:09 am

Hi Patrick,

You can segment the memory of the device using the ps3000aMemorySegments function.

Ensure that you set up your data bufffers prior to the start of data collection and call the ps3000aGetValuesOverlapped function.

Following this, you can call ps3000aRunBlock in turn changing the segmentIndex parameter each time.

Update: You could also collect the data in streaming mode using one trigger and then analyse the data post-capture in order to extract out the required information.

Hope this helps,

Software Dev. Engineer

Post Reply