RIGOL Technologies

Welcome, Guest Login

Support Center

Deep Memory Collection on the DS6000 Oscilloscope

Last Updated: Feb 27, 2019 05:34PM PST
This article relates to the 6000 Series Oscilloscopes and the deep memory binary data collection and conversion capabilities.

There are a number of commands to get the scope trigger and timing setup. Once you trigger the deep memory capture that you want here is the best way to get the deep memory to a PC. After the // are comments.

:WAV:MODE RAW          //sets mode to get to deep data
:WAV:FORM BYTE          //best format for deep data pull speed
:STOP       //stops the scope acquisition. necessary to pull deep data

:TIM:SCAL?                  //queries the time per division
(scope returns time per division value)
:CHAN1:SCALE?            //asks scope for volt/div on chan1. assumes you are using channel 1.
(scope returns volts per div value for chan 1)
:CHAN1:OFFS?            //asks scope for position of ground on chan1 on display. assumes you are using channel 1.
(scope returns volts per div value for chan 1)
:TIM:OFFS?            //asks scope for position of trigger from left to right on display. 
(scope returns time offset)
:ACQ:SRAT?          //asks scope for acq rate. in this test it is 250 MSa/S.
returns as
2.500000e+08 (scope returns sample rate)
:ACQ:MDEP?          //asks scope for mem depth or number of points. 
(scope returns memory depth)

//those above do only after you change the settings. Can just do a :SING or :RUN and then :STOP and //then gather new data again after a trigger event.

//Here is the part where we gather the data. 1 million points at a time until all done. This keeps the //time to get the data small enough so that we can avoid timeouts or other connection errors.

// this part we loop through:

:WAV:STOP 1000000
:WAV:POINTS 1000000

(scope returns 1 Million and 11 bytes of a header. Strip off the header)

// Repeat these commands until at the end of the data changing the start value by adding 1000000 to //the start and stop value each time. If you have less than a million for the last call, reset the STOP and points value they don't try to read beyond the buffer end.

//When done reading the entire wave best practice is to send:

//Then you can capture new data

// Now Convert the data bytes to volts. To do this we use the data we got above:

[<waveform Byte Value> * (ChanScale/32)] - (chanOffset + 4*ChanScale) = <Waveform Volt Value>

//the timing info:
time between points = 1/<Sample Rate>
time of 1st point relative to trigger= -[(<time pre division>*7)-<time offset>]
Login above for personalized content


seconds ago
a minute ago
minutes ago
an hour ago
hours ago
a day ago
days ago
Invalid characters found