Posted Thu, 02 Mar 2023 20:36:37 GMT by Chung, Jack
I measured a diode using Keithley 6485 with two different data acquisition means. One is via the internal buffer (TRAC:DATA?). The other is via the ?READ command. I expect similar current values of 0.5 x 10^-12 A, but it is not in the end. The data attained from buffers which do not show negative values. As for the data from ?READ, the data fluctuates around zero. To me, the data from buffers seems to have an offset or an absolute function applied. The two sets of data are attached.

I did zero check before the two measurements and have both zero check and autozero ON for the measurements. Would it be possible due to the zero check offset activation difference for TRAC:DATA? and ?READ commands? Would both commands work very differently and create the difference?

Thank you.
Posted Fri, 03 Mar 2023 19:24:36 GMT by McKinney, Ty
Can you attach a copy of your code please?

READ and TRAC:DATA are very different commands.
READ will send an INITiate and FETCh? command to your unit. What this will do is initiate your trigger model and fetch the data from one triggers worth of data, most of the time it will only give you the LATEST data point.

TRAC:DATA following and INIT command will read back the entirety of your buffer.

That being said, there should not be a difference between the measured values numerically if you use either command, which is why I'd like a copy of your code to see if there is anything causing this large difference in data you are seeing.
Posted Sat, 18 Mar 2023 22:26:52 GMT by Chung, Jack
Thank you, Ty. Below is my code for the reading buffer.<br> <br> inst.write('FORM:ELEM READ, TIME')<br> inst.write('SYST:ZCH ON')<br> <br> inst.write('CURR:RANG 2e-9')<br> inst.write('INIT')<br> inst.write('SYST:ZCOR:ACQ')<br> inst.write('SYST:ZCOR ON')<br> <br> inst.write('TRAC:CLE')<br> inst.write('TRIG:COUN 100')<br> inst.write('TRAC:POIN 100') &#160; # Set no. of pt in the buffer<br> inst.write('TRAC:FEED SENS')<br> inst.write('TRAC:FEED:CONT NEXT')<br> <br> inst.write('SYST:ZCH OFF')<br> time.sleep(2)<br> <br> inst.write('INIT')<br> databuffer= inst.query('TRAC:DATA?', delay= 28)<br> <br> print(inst.query('SYSTem:ERRor?'))<br> inst.write('*RST')<br> -----<br> <br> I believe that I misunderstood TRAC:DATA. The statement asks the machine to return values stored in buffer to the computer's memory. I should have&#160;SYST:ZCH OFF' before&#160;TRAC:FEED SENS and&#160;TRAC:FEED:CONT NEXT because TRAC:FEED asks the machine to read current values to store in buffer (in the above case, 100 points in buffer).<br> <br> BTW, do I need TRAC:FEED:CONT NEXT, which seems to be redundant for reading current values to buffer?<br> What about&#160;TRIG:COUN 100?&#160;TRAC:POIN 100 is the command to allocate 100 points in buffer for 100 current values in the later code.<br> <br> Below is my code for READ. It seems to be straightforward and has no problem.<br> inst.write('SYST:ZCH ON')<br> inst.write('CURR:RANG 2e-9') &#160; # set to 2nA-range for ZCOR<br> inst.write('INIT')<br> inst.write('SYST:ZCOR:ACQ')<br> inst.write('SYST:ZCOR ON')<br> <br> inst.write('CURR:RANG:AUTO ON')<br> inst.write('SYST:ZCH OFF')<br> <br> inst.query(':READ?')
Posted Wed, 22 Mar 2023 19:10:35 GMT by Chung, Jack
I turn off zero check before&#160;TRAC:FEED SENS, which measures current values and stores in buffer. However, it does not alter anything I observed. My speculation is not correct. Please help me to understand the commands for buffer operation in Keithley 6485.

You must be signed in to post in this forum.