Model 2400 SourceMeter Technical Note: Understanding the 2400 Memory Buffer Technical Summary: The Model 2400 has 5000 points of data storage. The 5000 point data memory is divided into two distinct 2500 point data buffers with quite different uses and quite different features. For some applications over the GPIB bus, it is possible to combine the 2 buffers to store up to 5000 readings. Technical Details: The specifications for the 2400 indicate the following for the Memory Buffer: "5000 readings @ 5 1/2 digits (two 2,500 point buffers). Includes selected measured value(s) and time stamp. Lithium battery backup." To fully understand the memory buffer architecture, the following details are given. There are two 2,500 point data buffers in the Model 2400. One of the buffers is used to store data into the internal data (TRACE) buffer. This is the buffer that is used when you wish to store readings from either the front panel by hitting the STORE button or using the TRACE subsystem SCPI commands over the GPIB. This buffer is battery backed using a Lithium battery, allowing you to get your data back now or two years from now. When you create a sweep from the front panel using the 2400, the measured data is stored in the TRACE buffer automatically. The number of readings stored is based on the total number of points used in the sweep, up to a maximum of 2500 points. The sweep can not be extended past 2500 points by using the second buffer. The second buffer, often called the Trigger Count Buffer, is used by the READ? or FETCH? SCPI commands over the bus. A 2500 point data buffer has been allocated for these commands. It is possible using one READ? or FETCH? command to take up to 2500 readings and return them over the GPIB bus. This buffer is not battery backed. If you turn off the 2400 power, you lose the data. This buffer can not be combined with the TRACE buffer to get a total of 5000 from the front panel. A unique feature of this buffer is that it is pipelined. In other words, while the 2400 is taking measurements, it can also be transferring data out of the READ buffer at the same time. So how do I get 5000 readings? The technique can only be used over the GPIB bus. The method requires using both buffers. The user could program the 2400 as follows: *RST TRACE:POINTS 2500 TRIGGER:COUNT 2500 TRACE:FEED:CONTROL NEXT OUTPUT ON INIT;:INIT TRACE:DATA?;:FETCH? The first INIT command in the sixth line stores 2500 readings into the Trace Buffer. The second INIT in the sixth line stores 2500 readings into the FETCH buffer. The last line of the program retrieves the 2500 readings from both buffers, giving you a total of 5000 readings. This is how you get a total of 5000 readings across the bus. There are two points to keep in mind when attempting to do this. First, a semicolon will separate the data returned from the TRACE:DATA? command and the FETCH? command. Data returned by a TRACE:DATA? command is separated by commas as well as data returned by the FETCH? command. A semicolon will be sent by the 2400 to separate the data from the two query commands. Your program must be smart enough to detect the semicolon as well as the comma when parsing the data. Second, this method may not be appropriate in time critical applications. You could end up with a short period of time that separates the TRACE:DATA? operation and the FETCH? operation. A time critical applications may not be able to tolerate any time delays. Please weight these issues carefully when developing your application.