Signametrics Corporation SM4020 Operator`s manual

Operator's Manual
Model SMU2055 6½ Digit USB Digital Multimeter
Signametrics Corporation
April, 2010
Compatible with Rev 1.62 Hardware
CAUTION
In no event shall Signametrics or its Representatives be held liable for any consequential damages whatsoever
(including, without limitation, damages for loss of business profits, business interruption, loss of business
information, or other loss) arising from of the use of or inability to use Signametrics products, even if Signametrics
Corporation has been advised of the possibility of such damages. Because some States do not allow the exclusion or
limitation of liability for consequential damages, the above limitations may not be applicable to you.
 2008 Signametrics Corp. Printed in the USA. All rights reserved. Contents of this publication must not be
reproduced in any form without the permission of Signametrics Corporation.
Signametrics
2
TABLE OF CONTENTS
1.0 INTRODUCTION .................................................................................................................................................6
1.1 SAFETY CONSIDERATIONS ..........................................................................................................................6
1.2 MINIMUM REQUIREMENTS .........................................................................................................................6
1.3 FEATURE SET .............................................................................................................................................6
2.0 SPECIFICATIONS ...............................................................................................................................................7
2.1 DC VOLTAGE MEASUREMENT ...................................................................................................................7
2.2 DC CURRENT MEASUREMENT ....................................................................................................................8
2.3 RESISTANCE MEASUREMENTS ....................................................................................................................8
2.3.1 2-wire .......................................................................................................................................8
2.3.2 4-wire .......................................................................................................................................8
2.4 AC VOLTAGE MEASUREMENTS ..................................................................................................................8
2.4.1 AC Voltage True RMS Measurement .......................................................................................9
2.4.2 AC Volts Accuracy ...................................................................................................................9
2.5 AC CURRENT MEASUREMENT, TRUE RMS ..............................................................................................10
2.6 DIODE TEST FUNCTION ............................................................................................................................10
2.7 MEASUREMENT RATES CONTROL ............................................................................................................11
2.8 ACCURACY NOTES ...................................................................................................................................11
2.9 OTHER SPECIFICATIONS ...........................................................................................................................12
2.10 ACCESSORIES .........................................................................................................................................13
3.0 GETTING STARTED.........................................................................................................................................14
3.1 SETTING THE DMM..................................................................................................................................14
3.2 INSTALLING THE SOFTWARE.....................................................................................................................14
3.3 INSTALLING THE DMM MODULE .............................................................................................................14
3.4 CALIBRATION FILE ...................................................................................................................................14
3.5 DMM INPUT TERMINALS .........................................................................................................................15
3.6 DMM REAR PANEL ..................................................................................................................................15
3.7 STARTING THE CONTROL PANEL ..............................................................................................................16
3.8 USING THE CONTROL PANEL ....................................................................................................................16
4.0 DMM OPERATION AND MEASUREMENT TUTORIAL...........................................................................18
4.1 VOLTAGE MEASUREMENT ........................................................................................................................18
4.1.1 DC Voltage Measurements ....................................................................................................18
4.1.2 True RMS AC Voltage Measurements ...................................................................................18
4.2 CURRENT MEASUREMENTS ......................................................................................................................18
4.2.1 Improving DC Current Measurements ..................................................................................19
4.3 RESISTANCE MEASUREMENTS ..................................................................................................................19
4.3.1 2-Wire Ohm Measurements ...................................................................................................19
4.3.2 4-Wire Ohm Measurements ...................................................................................................19
4.3.3 Effects of Thermo-Voltaic Offset............................................................................................20
4.4 DIODE CHARACTERIZATION .....................................................................................................................20
5.0 WINDOWS INTERFACE ..................................................................................................................................21
5.1 DISTRIBUTION FILES ................................................................................................................................21
5.2 USING THE SMU2060 DRIVER SET WITH C++ OR SIMILAR SOFTWARE ...................................................22
5.3 VISUAL BASIC FRONT PANEL APPLICATION .............................................................................................23
5.3.1 Visual Basic Simple Application ............................................................................................23
5.4 WINDOWS DLL DEFAULT MODES AND PARAMETERS ..............................................................................24
5.5 USING THE DLL WITH LABWINDOWS/CVI ...........................................................................................24
5.6 WINDOWS COMMAND LANGUAGE ...........................................................................................................24
DMMCalibrate................................................................................................................................25
DMMCleanRelay ............................................................................................................................25
DMMClearMinMax ........................................................................................................................26
3
Signametrics
DMMCloseUSB...............................................................................................................................26
DMMDelay .....................................................................................................................................27
DMMErrString................................................................................................................................27
DMMGetBusInfo.............................................................................................................................28
DMMGetCalDate............................................................................................................................29
DMMGetdB.....................................................................................................................................29
DMMGetdBStr ................................................................................................................................30
DMMGetDevLocation.....................................................................................................................30
DMMGetDeviation .........................................................................................................................30
DMMGetDeviatStr..........................................................................................................................31
DMMGetDiffMnMxStr ....................................................................................................................31
DMMGetFunction...........................................................................................................................32
DMMGetGrdVer .............................................................................................................................32
DMMGetHwVer..............................................................................................................................33
DMMGetHwOption.........................................................................................................................33
DMMGetID .....................................................................................................................................34
DMMGetManDate ..........................................................................................................................35
DMMGetMax ..................................................................................................................................35
DMMGetMaxStr .............................................................................................................................36
DMMGetMin...................................................................................................................................36
DMMGetMinStr ..............................................................................................................................37
DMMGetNumDevices .....................................................................................................................37
DMMGetRange ...............................................................................................................................38
DMMGetRate..................................................................................................................................38
DMMGetSupplyV............................................................................................................................39
DMMGetStoredReading .................................................................................................................39
DMMGetType .................................................................................................................................40
DMMGetVer ...................................................................................................................................40
DMMInit .........................................................................................................................................41
DMMIsAutoRange ..........................................................................................................................41
DMMIsInitialized............................................................................................................................42
DMMIsRelative ...............................................................................................................................42
DMMOpenUSB ...............................................................................................................................43
DMMRead.......................................................................................................................................43
DMMReadNorm..............................................................................................................................44
DMMReadNsamples .......................................................................................................................45
DMMReadStr ..................................................................................................................................45
DMMSetAutoRange ........................................................................................................................46
DMMSetFunction............................................................................................................................46
DMMSetRange................................................................................................................................47
DMMSetRate...................................................................................................................................48
DMMSetRelative .............................................................................................................................49
DMMTerminate...............................................................................................................................49
5.7 CALIBRATION SERVICE COMMANDS.........................................................................................................49
AC_zero ..........................................................................................................................................50
DMMLoadCalFile...........................................................................................................................50
SetGain............................................................................................................................................51
GetGain...........................................................................................................................................51
GetOffset .........................................................................................................................................52
SetFcomp ........................................................................................................................................53
SetOffset ..........................................................................................................................................53
Linearize_AD ..................................................................................................................................54
Read_ADcounts ..............................................................................................................................54
5.8 MAINTANANCE COMMANDS .....................................................................................................................55
GrdXingTest....................................................................................................................................55
WrCalFileToStore...........................................................................................................................55
WrCalStoreToFile...........................................................................................................................56
5.9 ERROR CODES ..........................................................................................................................................57
5.10 WARNING CODES ...................................................................................................................................57
5.11 PARAMETER LIST ...................................................................................................................................58
Signametrics
4
5.11.1 Measurement and Source Functions....................................................................................58
5.11.2 Range Values .......................................................................................................................58
5.11.3 Measurement Rate parameters ............................................................................................59
6 CALIBRATION .....................................................................................................................................................60
7.0 WARRANTY AND SERVICE...........................................................................................................................62
8.0 ACCESSORIES...................................................................................................................................................62
5
Signametrics
1.0 Introduction
Congratulations! You have purchased a USB Digital Multimeter. The SMU2055 Digital Multimeter (DMM) has
sophisticated analog and digital circuitry to provide repeatable measurements, and its protected to handle any
unexpected situations your measurement environment may encounter. Your new DMM is easy to setup and use. To
get years of reliable service from your DMM, please take a few moments to review this manual before installing and
using this precision instrument.
This manual describes the SMU2055 USB module.
1.1 Safety Considerations
Safety Considerations
The SMU2055 DMM is capable of measuring up to 240 VDC or 240 VAC across the Volt HI and LO
terminals, and can also measure common mode signals that "float" the DMM above EARTH ground by up
to 300 VDC or 250 VAC. When making common mode measurements, the majority of the circuits inside
the DMM are set to the common mode voltage. These voltages can be lethal and may KILL!
The DMM comes installed in a plastic chassis with 4 components (bottom, top, front and back) that must
not be removed due to performance as well as safety reasons. Removal of these shields and/or
improper assembly of the shields can expose lethal voltages. The plastic screws are required for safety
reasons.
Warning
Check to see that all measurement wires are separated from the USB communication cable. If
measurement wires come into contact with the USB cable, this may apply measurement voltages to
your computer, causing personal injury and/or damage to your computer!
When making any measurements above 50 VDC or 40 VAC, use only approved Safety Test Leads
such as Signametrics Basic Test Leads or Deluxe Test Leads, offered as optional accessories with the
Signametrics DMM’s.
1.2 Minimum Requirements
The SMU2055 DMMs are precision modules that are compatible with any USB 2.0 or higher computer port. A
mouse must be installed when controlling the DMM from the Windows Control Panel. The SMU2055 comes with
a Windows' DLL, for operation with Windows Version 95/98/Me/2000/XP, Vista and LINUX.
1.3 Feature Set
The SMU2055 is a traditional 6-1/2 digit DMM and can be used as a general purpose DMM. Signametrics also
offers the high precision 7-1/2 digit USB DMM, the SMU2060, which adds capacitance measurements, triggered
operation and a high resolution frequency counter. If your requirements call for a High Workload, then the Multi
Function SMU2064 will probably fit the ticket with its timing measurements, inductance, sourcing and higher
speed. The SMU2064 specialized measurements can replace costly instruments and thus shrinking the size and cost
of a test system.
Signametrics
6
SMU2055 basic features:
Function
Volts DC; four ranges, 240mV to 240V
Volts AC; TRMS; four ranges, 240mV to 240V
2-Wire Ohms, six ranges 240  to 24 M
4-Wire Ohms, six ranges 240  to 24 M
DC current, four ranges 2.4 mA to 2.4 A
AC current, four ranges 2.4 mA to 2.4 A
Diode V/I Five ranges, 100 A to 1mA
Auto range, Relative
Min/Max, dB and percent deviation functions
SMU2055 DMM











High Dynamic range; ±2,400,000 counts
Measurement rate selectable: 0.5 to250 readings/s
2.0 Specifications
The following specifications are based on both, verification of large number of units as well as
mathematical evaluation. The specifications should be considered for the specified environment.
It is important to note that a specified range for a DMM is expressed as a numeric value indicating the
highest absolute measurement that can be displayed using that range. The lowest value that can be
detected is expressed by the corresponding resolution for the range.
2.1 DC Voltage Measurement
Input Characteristics
 Input Resistance 240 mV, 2.4 V Ranges: >10 G, with typical leakage of 50pA
 Input Resistance 24 V, 240 V Ranges: 10.00 M
Accuracy ± (% of reading + Volts) [1]
Range
240 mV
2.4 V
24 V
240 V
Full Scale
6-½ Digits
240.0000 mV
2.400000 V
24.00000 V
240.0000 V
Resolution
100 V
1 V
10 V
100 V
24 hours
23C  1C
0.003 + 2 V
0.003 + 3 V
0.004 + 200 V
0.004 + 600 V
90 Days
23C  5C
0.005 + 3 V
0.004 + 4 V
0.005 + 250 V
0.005 + 800 V
One Year 23C
 5C
0.007 + 3.5 V
0.005 + 10 V
0.007 + 300 V
0.007 + 1 mV
[1] With reading rate set to < 2/sec, and within one hour from Self Calibration (S-Cal).
For resolution at higher measurement rates, see the following table. Use this table for DC Volts, DC
Current and Resistance measurements.
Maximum reading rate
1 / second
27/second
250 / second
Digits of Resolution
6-1/2
22 bits
6
20 bits
5-1/2
18 bits
DCV Noise Rejection Normal Mode Rejection, at 50, 60, or 400 Hz ± 0.5%, is better than 95 dB
for Rates of 6rps and lower. Common Mode Rejection (with 1 k lead imbalance) is better than 120
dB for these conditions.
7
Signametrics
2.2 DC Current Measurement
Input Characteristics



Number of built-in shunts Two
Currents greater than 2.4A require external shunt
Protected with 2.5A Fast blow fuse
Accuracy ± (% of reading + Amps) [1]
Range
2.4 mA
24 mA
240 mA
2.4 A
Full Scale
Reading
2.40000 mA
24.0000 mA
240.000 mA
2.40000 A
Resolution
10 A
100 A
1 A
10 A
Max Burden
Voltage
25mV
250mV
55mV
520mV
24 hours
23C  5C
0.05 + 300 A
0.05 + 350 A
0.05 + 50 A
0.3 + 60 A
90 Days
23C  5C
0.06 + 700 A
0.065 + 800 A
0.055 + 60 A
0.4 + 70 A
One Year 23C 
5C
0.07 + 1 A
0.08 + 1 A
0.065 + 80 A
0.45 + 90 A
[1] With reading rate set to < 2/sec, and within one hour from Zero (Relative control).
2.3 Resistance Measurements
Characteristics


Number of current sources Five
Maximum Test Voltage 2.4V
2.3.1 2-wire
Accuracy ± (% of reading + ) [1]
Range
Full Scale
6 ½ Digits
240.0000 
2.400000 k
24.00000 k
240.0000 k
2.400000 M
24.0000 M
240 
2.4 k
24 k
240 k
2.4 M
24 M
Resolution
100 
1 m
10 m
100 m
1
100 
Source
current
1 mA
1 mA
100 A
10 A
1 A
100 nA
24 hours
23C  1C
0.004 + 4.5 m [2]
0.0025 + 28 m
0.003 + 300 m
0.008 + 3.2 
0.02 + 40 
0.2 + 400 
90 Days
23C  5C
0.005 + 5 m [2]
0.004 + 32 m
0.004 + 330 m
0.012 + 4 
0.03 + 50 
0. 3 + 500 
One Year
23C  5C
0.008 + 6 m [2]
0.007 + 33 m
0.007 + 350 m
0.02 + 5 
0.04 + 70 
0.4 + 600 
[1] With reading rate set to < 2/sec, and within one hour from Self Calibration (S-Cal).
[2] Use of S-Cal and Relative to improve measurement floor.
2.3.2 4-wire
Accuracy ± (% of reading + ) [1]
Range
[3]
240 
2.4 k
24 k
240 k
Full Scale
6 ½ Digits
240.0000 
2.400000 k
24.00000 k
240.0000 k
Resolution
100 
1 m
10 m
100 m
Source
current
1 mA
1 mA
100 A
10 A
24 hours
23C  1C
0.004 + 3 m [2]
0.0025 + 28 m
0.003 + 300 m
0.008 + 3.2 
90 Days
23C  5C
0.005 + 4 m [2]
0.004+ 32 m
0.004 + 330 m
0.012 + 4 
One Year
23C  5C
0.008 + 5 m [2]
0.007 + 33 m
0.007 + 350 m
0.02 + 5 
[1] With reading rate set to < 2/sec, and within one hour from Self Calibration (S-Cal).
[2] Use of Relative to facilitate indicated floor.
[3] The 2.4MΩ and 24MΩ ranges are functional but not specified for 4-Wire operations.
2.4 AC Voltage Measurements
Input Characteristics





Input Resistance 1 M, shunted by < 300 pF
Max. Crest Factor 4 at Full Scale, increasing to 7 at Lowest Specified Voltage
AC coupled Specified range: 10 Hz to 200 kHz
Typical Settling time < 0.5 sec to within 0.1% of final value
Common Mode rejection: at 50Hz to 60Hz, 1 k imbalance in either lead, is better than 60 dB.
Signametrics
8
2.4.1 AC Voltage True RMS Measurement
Range [1]
240 mV
2.4 V
24 V
240 V
Full Scale 6-½ Digits
240.0000 mV
2.400000 V
24.00000 V
240.0000 V
Lowest specified Voltage
5 mV
20 mV
200 mV
2V
Resolution
100 V
1 V
10 V
100 V
[1] Signal is limited to 8x106 Volt Hz Product. For example, the largest frequency input at 250 V is 32
kHz, or 8x106 Volt x Hz.
2.4.2 AC Volts Accuracy
Settles to rated accuracy within 0.5 seconds for signals >50% of scale.
May take up to 2s to settle to rated accuracy for signals < 5% of scale.
Accuracy ± (% of reading + Volts) [1]
Range
240 mV
2.4 V
24 V
240 V
Frequency
10 Hz - 20 Hz
20 Hz - 47 Hz
47 Hz – 10 kHz
10 kHz – 50 kHz
50 kHz - 100 kHz
10 Hz - 20 Hz
20 Hz - 47 Hz
47 Hz – 10 kHz
10 kHz – 50 kHz
50 kHz - 100 kHz
10 Hz - 20 Hz
20 Hz - 47 Hz
47 Hz – 10 kHz
10 kHz – 50 kHz
50 kHz - 100 kHz
10 Hz - 20 Hz
20 Hz - 47 Hz
47 Hz – 10 kHz
10 kHz – 50 kHz
50 kHz - 100 kHz
24 hours
23C  1C
3 + 300 V
0.45 + 150 V
0.13 + 100 V
0.3 + 180 V
2 + 0.6 mV
3 + 2 mV
0.45 + 1.3 mV
0.07 + 1 mV
0.35 + 2 mV
2+ 2.5 mV
4 + 25 mV
0.50 + 20 mV
0.07 + 15 mV
0.2 + 25 mV
1.5 + 35 mV
3 + 250 mV
0.45 + 230 mV
0.07 + 180 mV
0.28 + 250 mV
1.5 + 350 mV
90 Days
23C  5C
3.4 + 500 V
0.47 + 170 V
0.14 + 110 V
0.35 + 220 V
2.1 + 0.8 mV
3.3 + 2.2 mV
0.47 + 1.5 mV
0.075 + 1.1 mV
0.37 + 2.3 mV
2.1 + 2.8 mV
4.3 + 16 mV
0.55 + 25 mV
0.075 + 20 mV
0.25 + 30 mV
1.6 + 28 mV
3.1 + 350 mV
0.+ 300 mV
0.075 + 220 mV
0.29 + 300 mV
1.6 + 400 mV
One Year
23C  5C
3.6 + 0.6 mV
0.5 + 0.35 mV
0.16 + 0.25 mV
0.4 + 0.35 mV
2.2+ 1 mV
3.5 + 2.5 mV
0.5 + 1.7 mV
0.08 + 1.2 mV
0.4 + 2.5 mV
2.2 + 5 mV
4.5 + 35 mV
0.65 + 30 mV
0.085 + 23 mV
0.3 + 35 mV
1.7 + 50 mV
3.3 + 400 mV
0.+ 350 mV
0.08 + 250 mV
0.55 + 350 mV
1.8 + 500 mV
[1] With reading rate set to ≤ 2/sec
ACV Noise Rejection Common Mode rejection, for 50 Hz or 60 Hz with 1 k imbalance in either lead, is better
than 60 dB.
Specs in red indicate change from last manual release.
9
Signametrics
2.5 AC Current Measurement, True RMS
Input Characteristics
 Crest Factor 4 at Full Scale
 Number of built-in shunts Two
 Currents greater than 2.4A require external shunt
 Protected with 2.5A Fast blow fuse
2.5.1 AC Current True RMS Measurement
Range
Full Scale 6 1/2 Digits
2.4 mA
24 mA
240 mA
2.4 A
2.400000 mA
24.00000 mA
240.0000 mA
2.400000 A
Lowest Specified
Current
60 A
300 A
3 mA
30 mA
Maximum Burden
Voltage (RMS)
25mV
250mV
55mV
520mV
Resolution
1 nA
10 nA
100 nA
1 uA
Accuracy ± (% of reading + Amps)
Range
Frequency [1]
2.4 mA
10 Hz - 20 Hz
20 Hz - 47 Hz
47 Hz - 1 kHz
1 kHz - 10 kHz
10 Hz - 20 Hz
20 Hz - 47 Hz
47 Hz - 1 kHz
1 kHz - 10 kHz
10 Hz - 20 Hz
20 Hz - 47 Hz
47 Hz - 1 kHz
1 kHz - 10 kHz
10 Hz - 20 Hz
20 Hz - 47 Hz
47 Hz - 1 kHz
1 kHz - 10 kHz
24 mA
240 mA
2.4 A
24 hours
23C  1C
3.8 + 4 A
0.9 + 4 A
0.04 + 1.5 A
0.12 + 4 A
1.8 + 30 A
0.6 + 30 A
0.07 + 10 A
0.21 + 30 A
1.8 + 400 A
0.6 + 400 A
0.1 + 100 A
0.3 + 300 A
1.8 + 4 mA
0.66 + 4 mA
0.3 + 3.8mA
0.4 + 4mA
90 Days
23C  10C
2.7 + 4 A
0.9 + 4 A
0.08 + 3 A
0.14 + 4 A
2.6 + 30 A
0.9 + 30 A
0.15 + 20 A
0.3 + 40 A
2.7 + 400 A
0.9 + 400 A
0.17 + 180 A
0.35 + 350 A
2.5 + 4.5 mA
0.8 + 6 mA
0.33 + 3.8 mA
0.45 + 4.5 mA
2.6 Diode Test Function

Test Currents Five

Current sources voltage compliance 4 V
Accuracy ± (% of reading + Volts) [1]
Range
Full Scale
5-½ Digits
0.1 A
1 A
10 A
100 A
1 mA
2.40000 V
Resolution
One Year 23C  10C
10 V
0.022 + 15 V
0.018 + 12 V
0.015 + 10 V
0.014 + 8 V
0.014 + 8 V
[1] With measurement rate set to 2rps or lower rate
Signametrics
10
One Year
23C  10C
2.9 + 4 A
1.0 + 4 A
0.12 + 4 A
0.22 + 4 A
2.8 + 30 A
1.0 + 30 A
0.16 + 30 A
0.4 + 40 A
2.8 + 400 A
1.0 + 400 A
0.2 + 220 A
0.4 + 400 A
2.7 + 5 mA
0.9 + 6 mA
0.35 + 4 mA
0.5 + 5 mA
2.7 Measurement Rates Control

Use DMMSetRate() using the following codes.
Rate
(Readings/sec)
0.5
1
2
3
7
14
27
50
90
170
250
Symbol
Code
RATE_p5
RATE_1
RATE_2
RATE_3
RATE_7
RATE_14
RATE_27
RATE_50
RATE_90
RATE_170
RATE_250
0
1
2
3
7
14
27
50
90
170
250
Power line Rejection
50Hz
60Hz
400Hz


















2.8 Accuracy Notes
Important: all accuracy specifications for DCV, Resistance, DCI, ACV, and ACI apply for the time periods shown
in the respective specification tables. To meet these specifications, Self Calibration must be performed once a day or
as indicated in the specification table. This is a simple software operation that takes a few seconds. It can be
performed by calling Windows command DMMCal(), or selecting S-Cal in the Control Panel.
These products are capable of continuous measurement as well as data transfer rates of up to 250 readings per
second (rps). In general, to achieve 6-1/2 Digits of resolution, the rate should be set to 2rps or lower.
Since the DMM is powered via a USB calbe (AM/BM 6’ cable), it is important to make sure it gets the
required 5V supply. Using the right USB cable is very important. Make sure this cable has a 24 AWG
wires for power supply, indicated by marking on the cable such as 28/1P + 24/2C. Be aware that there are
a lot of cables which are marked 28/1P + 28/2C. These have high resistance, and will not be adequate.
Another issue can be with powered USB hubs. Some of the lower quality units can have upwords of 8V
rather than the required 5V +/-5%. On initialization (DMMInint) the DMM measures its internal supply
voltage and returnes an error or warning code if the power is inadequate. See DMMGetSupplyV function.
11
Signametrics
2.9 Other Specifications
Temperature Coefficient
Less than 0.1 x accuracy specification below 18C and over
28C
Hardware Interface
Single USB/cPCI 3U slot
Overload Protection (voltage inputs)
250 VDC, 250 VAC
Isolation
300 VDC, 250 VAC from Earth Ground
Maximum Input (Volt x Hertz)
8x106 Volt x Hz normal mode input (across Voltage HI &
LO).
1x106 Volt x Hz Common Mode input (from Voltage HI or
LO relative to Earth Ground).
Safety
Designed to IEC 1010-1, Installation Category II.
Calibration
Calibrations are performed by Signametrics in a computer at
23C internal temperature rise. All calibration constants are
stored in an onboard memory and in a text file.
Temperature Range Operating
-10C to 65C
Temperature Range Storage
-40C to 85C
Size
Single 3U USB or CompactPCI slot
Power
+5 volts, 200 mA maximum
Note: Signametrics reserves the right to make changes in materials, specifications, product functionality, or
accessories without notice.
Signametrics
12
2.10 Accessories
Several accessories are available for the SM2060 series DMMs, which can be purchased directly from Signametrics
Corp, or from one of its approved distributors or representatives. Some of the accessories available:

DMM Probes SM-PRB ($15.70)

6 ft. USB 2.0 AM/BM cable SMU-CBL6ft

3 ft. USB 2.0 AM/BM cable SMU-CBL3ft

10 ft. USB 2.0 AM/BM cable SMU-CBL10ft

DMM Probe kit SM-PRK ($38.50)

Deluxe Probe kit SM-PRD ($95.00).

Shielded SMT Tweezers Probes SM-PRSMT ($24.90).

Multi Stacking Double Banana shielded cable 36” SM-CBL36 ($39.00).

Multi Stacking Double Banana shielded cable 48” SM-CBL48 ($43.00).

Lab View VI’s library SM204x.llb (free).

Linux Driver kit (free).

Extended 3 Year warrantee (calibration not included) $120.00 for SM2055.
13
Signametrics
3.0 Getting Started
After unpacking the DMM, please inspect for any shipping damage that may have occurred, and report
any claims to your transportation carrier.
The package includes the Digital Multimeter; Installation CD, a Floppy Disk containing the calibration
and verification records, 6’ USB cable and Certificate of Calibration.
3.1 Setting the DMM
The DMM is provided with plug-and-play installation software, and does not require any switch settings,
or other adjustments prior to installation.
3.2 Installing the Software.
Before connecting the DMM Hardware, it is necessary to install the DMM software. Insert the
Signametrics Product Installation CD into your CD drive. A menu will appear automatically on most
computers. Otherwise, double-click on the autorun.exe file in the root directory of the Installation CD.
A menu will appear, allowing you to choose which Signametrics product to install. Select the product
you would like to install, "SMU2055/2060/2064 USB DMMs". A Software Setup Wizard will begin.
Follow the installation process, selecting which components you would like installed, and where they
should be installed. The Hardware Driver and the Front Panel are required components to run and test the
product. On the last page of the wizard, click Install.
After the software has been installed, The Signametrics USB Driver Wizard will appear. Click "next". A
windows message may appear asking if you are sure you wish to install this driver. Continue the
installation. Afterwards, you should now see a screen that indicates the drivers have been sucsessfully
installed on this computer.
3.3 Installing the DMM Module
Warning
To avoid shock hazard, install the DMM only into a personal computer that has its power line connector
connected to an AC receptacle with an Earth Safety ground.
Use extreme care when plugging the DMM module(s) into a USB port on your computer. Make sure no
cable is connected to the front panel of the DMM while you plug it into the USB port.
Connect the SMU2055/2060/2064 to one of the USB ports on your computer. On Windows 2000, XP, or
Vista a "Found New Hardware" Wizard dialog box should appear. On Windows 7, the drivers may
automatically be detected and installed without a Found New Hardware Wizard Appearing.
The Wizard asks "Can Windows connect to Windows Update to search for software?" Select "No, not
this time" and click on "Next". Select "Install the software automatically" and click on "Next". Windows
should be able to find the drivers automatically since they were copied to the system (section 3.2).
Windows may double check whether you want to install the software. If this is the case, click "Continue
Anyways". The Wizard should say "The wizard has finished installing software for: [multimeter product
name]". Click "Finish" to complete the installation.
3.4 Calibration File
The SM60CAL.DAT file supplied with your DMM has a unique calibration record for that DMM (See
"Calibration" at the end of this manual.). In most cases, the installation of the calibration file is handled
automatically by the DMM software.
Signametrics
14
A copy of the calibration file resides on an EEProm on the DMM and is copied to your computer the first
time you use the instrument. A backup copy of the calibration file is included on a diskette that comes
with the DMM.
The default location of the Calibration File is “C:\SM60CAL.DAT”. If your system uses multiple
DMMs, the software will append the Calibration Records of each DMM into a single SM60CAL.DAT
file. The SM60CAL.DAT file is a text file, and can be opened using a text editor such as Notepad, should
it be necessary.
3.5 DMM Input Terminals
Before using the DMM, please take a few moments and review this section to understand where the
voltage, current, or resistance and other inputs and outputs should be applied. This section contains
important information concerning voltage and current limits. Do not exceed these limits, as
personal injury or damage to the instrument, your computer or application may result.
Figure 3-1. The DMM input connectors consist of four Banana jacks.
V, 2 + This is the positive terminal for all Volts, 2-Wire Resistance and diode test. When in 4-Wire
resistance measurement mode, it serves as the positive terminal of the current source. The maximum
input across V, 2 + and V, 2 - is 240 VDC or 240 VAC.
V, 2 - This is the negative terminal for all Volts, 2-Wire Resistance and diode test. When in 4-Wire
resistance measurement mode, it serves as the negative terminal of the current source. Do not float this
terminal or any other DMM terminal more than 240 VDC or 240 VAC above Earth Ground.
I , 4+ This is the positive terminal for all Current measurements. While in 4-Wire resistance
measurement mode it is the high sense. The maximum input across I, 4 + and I, 4 - is 2.5 A. Do not
apply more than 5 V peak across the I,4+ and I,4- terminals.
I,4 - This is the negative terminal for Current measurements. While in 4-Wire resistance measurement
mode it serves as the low sense. The maximum input across I, 4W + and I, 4W - is 2.5 A. Do not
apply more than 5 V peak across these two terminals.
The I,4 - Current function is protected by a 2.5 A, 250 V Fast Blow fuse (PCT type).
3.6 DMM Rear Panel
The rear panel includes various compliance and warning text and graphics, the unit serial number, its
modle number and the installed options. The USB connector provides for both, compueter interface and
power to run the DMM..
15
Signametrics
Figure 3-2. The Rear panel has the USB BF type connector. Compatible with BM cable.
3.7 Starting the Control Panel
You can verify the installation and gain familiarity with the DMM by exercising its measurement
functions using the Windows based Control Panel. To run the control panel, StartSMU2060 Series
MultimetersSMU2064 Multimeter. If you do not hear the relays click, it is most likely due to an
installation error. Another possible source for an error is that the SM60CAL.DAT file does not
correspond to the installed DMM.
When the DMM is started for the first time, it takes a few extra seconds to extract its calibration data from
the on-board memory, and write it to the calibration file C:\SM60CAL.DAT
The Control Panel is operated with a mouse. All functions are accessed using the left mouse button.
When the DMM is operated at very slow reading rates, you may have to hold down the left mouse button
longer than usual for the program to acknowledge the mouse click.
Note: The SMU2055 front panelstarts up in DCV, and 240 V range. If the DMM is operated in
Autorange, with an open input, it will switch between the 2.4V and 24V ranges every few seconds, as a
range change occurs. This is perfectly normal wth high end DMM’s such as the SM2055. This
phenomenon is caused by the virtually infinite input impedance of the 2.4V DC range. On these ranges,
an open input will read whatever charge is associated with the signal conditioning of the DMM. As this
electrical charge changes, the SM2055 will change ranges, causing the range switching. This is normal.
3.8 Using the Control Panel
Figure 3-2. The Control Panel. The two main groups include Measurement Function and Range buttons.
The Range buttons are context sensitive such that only “240m, 2.4, 24 and 240 appear when in a Voltage
Measurement Function is selected, and 2.4m, 24m, 240m and 2.4 appear when a Current Measurement
Function is selected, etc.
Signametrics
16
Note: All of the controls described below correspond to their respective software function, which can be
invoked within your control software or as objects in a visual programming environment. The software
command language provides a powerful set of capabilities. Some of the functions are not included in the
control panel, but are in the software.
DC/AC This function switches between DC and AC. This is applicable for the Voltage and Current
DMM functions.
Relative This is the Relative function. When activated, the last reading is stored and subtracted from all
subsequent readings. This is a very important function when making low-level DCV measurements, or in
2W. For example, when using 2W, you can null out lead resistance by shorting the leads together and
clicking on Relative. When making low level DC voltage measurements (e.g., in the V region), first
apply a copper short to the V, + & - input terminals, allow the reading to stabilize for a few seconds,
and click on Relative. This will correct for any internal offsets. The Relative button can also be used in
the Percent and dB deviation displays (shown below), which are activated using the Tools in the top
menu.
Rate Box: Controls the DMM Measurement rate. As rate decreases, the measurement noise decreases.
Also consider the power line frequency (50/60 Hz) of operation when setting it, as certain rates have
better noise rejection at either 50 or 60 Hz. (See “Specifications” for details.). When measuring VAC
values, there is no point setting the Rate to a value greater than 2rps.
Range: Can be set to Autorange or manual by clicking on the appropriate range in the lower part of the
Windows panel. Autoranging is best used for bench top application. Autorange is not recommended
for automated test applications due to the uncertainty of the DMM range, as well as the extra time for
range changes. Locking a range is highly recommended when operating in an automated test system,
especially to speed up measurements. Another reason to lock a range is to control the input impedance in
DCV. The 240 mV and 2.4 V ranges have virtually infinite input impedance, while the 24 V and 240 V
ranges have 10 M input impedance.
S_Cal: This function is the System Calibration that corrects for internal gain, scale factor and zero
errors. The DMM does this by alternatively selecting its local DC reference and a zero input. It is
required at least once every day to meet the accuracy specifications. It is recommended that you also
perform this function whenever the external environment changes (e.g. the temperature in your work
environment changes by more than 5C. This function takes a few seconds to perform. Disconnect all
leads to the DMM before doing this operation. Keep in mind that this is not a substitute for periodic
calibration, which must be performed with external standards.
17
Signametrics
4.0 DMM Operation and Measurement Tutorial
Most of the measurement functions are accessible from the Windows Control Panel (Figure above). All of
the functions are included in the Windows DLL driver library. To gain familiarity with the DMM, run the
Windows ‘SETUP.EXE’ to install the software, then run the DMM, as described in the previous section.
This section describes in detail the DMM’s operation and measurement practices for best performance.
4.1 Voltage Measurement
Measures from 0.1 V to 240 VDC or VAC. Use the V, 2+ and V, 2- terminals, being certain to
always leave the I,4+ and I,4- terminals disconnected. Use the AC/DC button on the Control Panel
to switch between AC and DC.
Making Voltage Measurements is straightforward. The following tips will allow you to make the most
accurate voltage measurements.
4.1.1 DC Voltage Measurements
When making very low-level DCV measurements (<1 mV), you should first place a copper wire shorting
plug across the V, 2 + and V, 2 - terminals and perform Relative operation to eliminate zero errors.
A common source of error can come from your test leads, which can introduce several Volts of error due
to thermal voltages. To minimize thermal voltaic effects, after handling the test leads; you should wait a
few seconds before making measurements. Signametrics offers several high quality probes that are
optimal for low-level measurements.
Note: The front panel powers up in 2rps, DCV, 240 V range. If the DMM is operated in Autorange, with
an open input, The DMM will keep changing ranges. This is perfectly normal with ultra high impedance
DMM’. The virtually infinite input impedance of the 240 mV and 2.4 V DCV ranges causes this
phenomenon. On these ranges, an open input will read whatever charge is associated with the signal
conditioning of the DMM. As this electrical charge accumulates, the DMM will change ranges.
4.1.2 True RMS AC Voltage Measurements
ACV is specified for signals greater than 1mV, from 10 Hz to 50 kHz. The ACV function is AC coupled,
and measures the true RMS value of the waveform. As with virtually all true-RMS measuring
meters, the DMM may not read a perfect zero with a shorted input. This is normal.
ACV measurements, if possible, should have the NEUTRAL or GROUND attached to the V,2 terminal. This prevents any “Common Mode” problems from occurring (Common Mode refers to
floating the DMM V,2- above Earth Ground.) Common Mode problems can result in noisy readings,
or even cause the PC to hang-up under high V X Hz input conditions. In many systems, grounding the
source to be measured at Earth Ground (being certain to avoid any ground loops) can give better results.
The settling time and low frequency limits of the RMS functions (AC Voltage and current) are effected
by both, the value of the input as a percentage of range, and the frequency of the signal.
Take into account the amount of time it takes for the RMS circuit to settle. With a setteling time of 0.5s,
you may use a measurement rate of 2 readings/s and take two readings. The first will provide the 0.5s to
settele, and the second will make a stable reading. Do not average since the first reading will introduce an
error.
For improved accuracy and stability while measuring low frequency signals, the measurement time
(1/rate) should be at least ten (10) times the period of the measured signal.
4.2 Current Measurements
The DMM measures AC and DC currents between 100 A and 2.5 A. Use the +I, 4W terminals, being
certain to always leave all other terminals disconnected. Use the AC/DC button to switch between AC
and DC. The AC current is an AC coupled True RMS measurement function. See figure 4-2 for
connection.
Signametrics
18
The Current functions are protected with a 2.5 A, 250 V fuse internal to the DMM. The 2.4mA and 24mA
ranges utilize a 10 shunt, while the 240mA and 2.4A ranges use a 0.1 shunt. In addition to the shunt
resistors, there is some additional parasitic resistance in the current measurement path associated with the
fuse and the internal wiring. The maximum burden voltage is about 250mV.
Warning! Applying voltages greater than 35 V to the I+, I- terminals can cause personal injury and/or
damage to your DMM! Think before applying any inputs to these terminals!
4.2.1 Improving DC Current Measurements
When making sensitive DC current measurements disconnect all terminals not associated with the
measurement. User the Relative function while in the desired DC current range to zero out any residual
error. Using the S-Cal (DMMCalibrate ()) prior to activating Relative will improve accuracy further.
Although the DMM is designed to withstand up-to 2.4A indefinitely, be aware that excessive heat may be
generated when measuring higher AC or DC currents. If allowed to rise this heat may adversely effect
subsequent measurements. In consideration with this effect, it is recommended that whenever practical,
higher current measurements be limited to short time intervals.
4.3 Resistance Measurements
The key for stable and accurate Resistance measurements, with low test voltage, is in the number of
current sources used. This DMM uses five. The V, 2 + provides the positive terminal and the V, 2negative terminal of the current source. The DMM measures resistance by forcing a current, and
measuring a voltage, which the DMM converts and displays as a resistance value. Most measurements
can be made in the 2-wire mode. The 4-wire ohms is used to make low value resistance measurements.
All resistance measurement modes are susceptible to Thermo-Voltaic (Thermal EMF) errors. See section
4.3.5 for details.
4.3.1 2-Wire Ohm Measurements
In the 2-Wire resistance measurement the DMM sources current and measure resuting voltage. The DMM
measure Resistance using six ranges; 240 to 24 M. Use the V,2+, V,2- terminals for this function.
Disconnect the I,2+ and I,2- terminals in order to reduce error due to leakage and noise, as well as
better safety.
If the resistor to be measured is less than 24 k, you may null out any lead resistance errors by first
shorting the ends of the V,2+ and V,2- test leads together and performing a Relative operation
(DMMSetRelative under program control). Making measurements above 200 k, you should consider
shielded or twisted leads to minimize noise pickup. Further improvement can be achieved using guarding
(section 4.3.5).
It is a good idea to be aware of the test voltages, particularly when measuring a circuite that includes
semiconductors. To reduce this voltage, select a higher resistance range (lower current). For instance,
measuring 10k resistor using the 24k range (100uA), results in 1V test voltage, which will turn on
semiconductor junctions, resulting in lower resistance reading. To avoid this error, select the 240k range
(10uA), which will result in 100mV and will read the 10k a lot more accurately (see section 2.3 for
resistance ranges vs. current). For characterizing semiconductor part types, use the Diode measurement
function.
For applications requiring voltage and current controlled resistance measurements, use the SMU2064,
which has Extended Resistance Measurement function as well as active guarding.
4.3.2 4-Wire Ohm Measurements
4-wire Ohms measurements are advantageous for making measurements below 200 k, eliminating lead
resistance errors. The V,2+ and V,2- terminals apply a current source stimulus to the resistance, and
the I,4+ and I,4- Input terminals are the sense inputs. The Source + and Sense + leads are connected
to one side of the resistor, and the Source - and Sense - leads are connected to the other side. Both Sense
leads should be closest to the body of the resistor. See Figure 4-3.
19
Signametrics
4-wire Ohm makes very repeatable low ohms measurements, from 10 m to 200 k. It is not
recommended to use 4W when making measurements above 200 k.
Figure 4-1. The I,4+ and I,4- sense leads should be closest to the body of the resistor when making 4Wire resistance measurements.
4.3.3 Effects of Thermo-Voltaic Offset
Resistance measurements are sensitive to Thermo-Voltaic (Thermal EMF) errors. These error voltages
can be caused by poor test leads, relay contacts and other elements in the measurement path. They affect
all measurement methods, including 2-Wire and 4-Wire. To quantify this error, consider a system in
which signals are routed to the DMM via a relay multiplexing system. Many vendors of switching
products do not provide Thermal EMF specification, and it is not uncommon to find relays that have more
than 50 V. With several relay contacts in the path, the error can be significant. This error can be
measured using the DMM’s 240mV DC range. To do this, close a single relay that is not connected to any
load, wait for a short time (about 2 minutes), than measure the voltage across the shorted relay contacts.
Make sure to short the DMM leads and set ‘relative’ to clear the DMM offset prior to the measurement.
To calculate worst-case error, count all relay contacts, which are in series with the measurement (V, +,
V, - terminals in 2-Wire, and I+, I- terminals in 4-Wire mode). Multiply this count by the Thermal EMF
voltage. Use Ohms law to convert this voltage to resistance error as in the following table.
Range
240 
2.4 k
24 k
240 k
2.4 M
24 M
Ohms
Current
1 mA
1 mA
100 uA
10 uA
1 uA
100 nA
DMM
Resolution
0.1m
1 m
10 m
0.1 
1
10 
Error due to
10 V EMF
10 m
10 m
100 m
1
10 
100 
Error due to
100 V EMF
100 m
100 m
1
10 
100 
1 k
Error due to
1mV EMF
1
1
10 
100 
10 
100 
Figure 4-2. Resistance measurement errors contributed by Thermo-Voltaic offset.
4.4 Diode Characterization
The Diode measurement function is used for characterizing semiconductor part types. This function is
designed to display a semiconductor device’s forward or reverse voltage. The DMM forces a current and
measures voltage drop. The available source currents for diode I/V characterization include five DC
current values, 100 A, 1 A, 10 A, 100 A and 1 mA. The maximum diode voltage that can be
measured with this function is 2.4V. For higher voltages see the leakage test function.
Applications include I/V characteristics of Diodes, LEDs, Low voltage Zener diodes, Band Gap devices,
as well as IC testing and polarity checking.
Signametrics
20
5.0 Windows Interface
The SMU2060 Windows interface package provided, contains all required componenets for the following
products: SMU2055, SMU2060 and SMU2064. It is a 32bit DLL based modules, which includes
windows Kernel driver. This package is sufficient for most windows based software applications.
5.1 Distribution Files
The distribution CD contains all the necessary components to install and run the DMM on computers
running any of the Microsoft® Windows™ operating systems. It also provides means for various
software packages to control the DMM. Before installing the DMM or software, read the “Readme.txt”
file. To install this software "Run Program" menu select ‘autorun.exe’ from the provided CD by doubleclick. Most files on this CD are compressed, and are automatically installed by running ‘autorun’, which
in turn executes the setup.exe file located on the CD in the respective product directory.
The DLL is a protected-mode Microsoft® Windows™ DLL that is capable of handling up to ten
Signametrics DMM’s. Also provided are samples Visual Basic™ front-panel application and a C++
sample, to demonstrate the DMM and the interface to the DLL. Check the README.TXT file for more
information about the files contained on the diskette. Some important files to note are:
File
Description
SM60CAL.DAT
File containing calibration information for each DMM. Do not write
into this file unless you are performing an external calibration! This file
is normally placed at the C:\ root directory the first time the DMM is
used. It may contain calibration records for several DMM’s.
SMU2060.LIB
The Windows import library. Install in a directory pointed to by your
LIB environment variable.
SMU2060.DLL
The 32-bit driver DLL. This should be installed either in your working
directory, in the Windows system directory, or in a directory on your
PATH. The installation program installs this file in your Windows
system directory (usually C:\WINDOWS\SYSTEM for Win98/95 or
at C:\WINNT\SYSTEM32 for Windows NT).
SMU2060.H
Driver header file. Contains the definitions of all the DMM’s function
prototypes for the DLL, constant definitions, and error codes. Install in
a directory pointed to by your INCLUDE environment variable.
USBDMMUser.H
Header file containing all of the necessary DMM’s function, range, rate
definitions to be used with the various measure and source functions.
The file SM60CAL.DAT contains calibration information for each DMM, and determines the overall analog
performance for that DMM. The first time you startup your DMM, this file will be created from the stored
calibration data on-board the DMM. You must not alter this file unless you are performing an external calibration of
the DMM. This file may contain multiple records for more than one DMM. Each record starts with a header line,
followed by calibration data.
card_id 8123
type 2055 calibration_date 06/15/2005
ad
; A/D compensation. Set during manufacturing.
72.0
20.0
1.0
vdc
; VDC 240mV, 2.4V, 24V,… 330V ranges. 1st entry is Offset the 2nd is gain parameters
-386.0 0.99961
-37.0 .999991
-83.0 0.999795
-8.8 1.00015
0
1.0
;Place holder on SMU2055
vac
; VAC 1st line - DC offset. Subsequent lines: 1st entry is Offset the 2nd is gain, 3rd freq. comp
21
Signametrics
0.0
0.84
1.015461
23
0.0043
1.0256
22
0.1
1.02205
2
0.4
1.031386
1
0
1.0
0
;Place holder on SMU2055
idc
; IDC 240nA to 2.5A ranges. 1st entry is offset, 2nd is gain parameter
0 1.0
;Place holder on SMU2055
0 1.0
;Place holder on SMU2055
0 1.0
;Place holder on SMU2055
0 1.0
;Place holder on SMU2055
-10.0 1.00083
; 2.4mA range
-16.0 1.00222
-50.0 1.0034
-176.0 1.0
; 2.4A range
iac
; IAC 2.4mA to 2.4A ranges, offset and gain
1.6 1.02402
0.0 1.03357
1.69 1.00513
0.0 1.0142
2w-ohm ; Ohms 24, 240, 2.4k,...,240Meg ranges, offset and gain
0
1.00
; placeholders
1256.0
1.002307
;240 Ohms range
110.0
1.002665
0.0
1.006304
0.0
1.003066
0.0
1.001848
0.0
0.995664
;24Meg range
0.0
1.0
; placeholders
…
The first line identifies the DMM and the calibration date. The "card-id" is stored on each DMM. During
initialization the driver reads it from the DMM and matches it to that in the calibration record.
During initialization (DMMInit()), the driver reads various parameters such as DMM type (SM2060/55/64), and
serial number, and then reads the corresponding calibration information from the SM60CAL.DAT file.
The DMMInit() function reads the information from these files to initialize the DMM. DMMInit accepts
parameters that are the names of these files. A qualified technician may modify individual entries in the calibration
file, then reload them using the DMMLoadCalFile command.
5.2 Using the SMU2060 Driver Set With C++ or Similar Software
The SMU2055 uses the SMU2060 driver package. Install the SMU2060.H and USBMMUser.H header file in a
directory that will be searched by your C/C++ compiler for header files. This header file is known to work with
Microsoft Visual C++™. To compile using Borland, you will need to convert the SMU2060.DEF and
SMU2060.LIB using ImpDef.exe and ImpLib.exe, provided with the compiler. Install SMU2060.LIB in a
directory that will be searched by the linker for import libraries. The SMU2060 software must be installed prior to
running any executable code. Install the SMU2060.DLL in a location where either your program will do a
LoadLibrary call to load it, or on the PATH so that Windows will load the DLL automatically.
In using the SMU2060 driver, first call DMMInit which read the calibration information, performs self test and
auto-calibration. Call DMMSetFunction to set the DMM to a measurement function. The DMM function constants
are defined in the DMMUser.H header file, and have names that clearly indicate the function they invoke. Use
DMMSetRate to set the reading rate defined in the header file.
Two functions are provided to return DMM readings. DMMRead returns the next reading as a scaled doubleprecision (double) result, and DMMReadStr returns the next reading as a formatted string ready to be displayed.
All functions accept a DMM-number parameter. This value, nDmm, is used to identify the DMM number in a
multiple DMM system. This value will be 0,1,2.. n. Most functions return an error or warning code, which can be
retrieved as a string using DMMErrStr().
Signametrics
22
5.3 Visual Basic Front Panel Application
The Visual Basic front panel application, SMU2064.EXE, is an interactive control panel for the SM2060 family of
DMMs. When it loads it will take a few seconds to initialize and self calibrate the hardware before the front panel is
displayed.
The push buttons labeled V, I, etc. control the DMM function. As you push a function, the front panel application
will switch the DMM to the selected range and function. Autorange mode is selected by pushing the AutoRange
check box. The S-Cal box recalibrates the DMM, leaving the DMM in the same state prior to operation. (This is an
internal calibration only, and is different from the external calibration, which writes to the SM60CAL.DAT file.
S-Cal is used to correct for any internal offset and gain drifts due to changes in operating temperature).
The source code file 2060Glbl.BAS (in the V_BASIC directory of the distribution diskette) contains the function
declarations and the various ranges, rates and other parameters that are required. These definitions are the duplicates
of the “C” header files required to write Visual Basic applications which interact with the driver DLL, along with
some global variables required for this particular front-panel application.
5.3.1 Visual Basic Simple Application
The following is a simple panel application for Visual Basic, which includes two files, Global.Bas and
SimplePanel.frm. It has a panel that contains two objects, a Text Box to display the DMM readings, and a
Command Button that acts as a reading trigger.
Global.bas module file contents:
Option Explicit
' Declare all functions we are going to be using: From SMU2060.H file.
Declare Function DMMInit Lib "SM2060.dll" (ByVal nDmm as long, ByVal calFile As String) As Long
Declare Function DMMSetRate Lib "SM2060.dll" (ByVal nDmm As Long, ByVal nRate As Long) _
As Long
Declare Function DMMSetFunction Lib "SM2060.dll" (ByVal nDmm As Long, ByVal nFunc As Long) As Long
Declare Function DMMSetRange Lib "SM2060.dll" (ByVal nDmm As Long, ByVal nRange As Long) As Long
Declare Function DMMRead Lib "SM2060.dll" (ByVal nDmm As Long, dResult As Double) As Long
' Definitions from DMMUser.H
' for DMMSetFunction()
Global Const VDCFunc = 0
Global Const VACFunc = 4
Global Const Ohm2Func = 21
Global nDmm as Long
' for DMMSetRange()
Global Const Range0 = 0
Global Const Range1 = 1
Global Const Range2 = 2
Global Const Range3 = 3
'Measurement Rate for use with DMMSetRate()
Global Const RATE_1R60= 4
'1rps with 60Hz line rejection
Global Const RATE_1R50 = 5
'1rps with 50Hz line rejection
Global Const RATE_2R60= 6
'2rps
Global Const RATE_4R60 = 8
'4rps
Global nDmm As Long
' Global store for the DMM number
SimplePanel.frm Form file contents:
Private Sub Form_Load()
'Fomr_Load allways gets executed first.
Dim i As Long
nDmm = 0
‘Set to first DMM in the system
i = DMMInit(nDmm,"C:\SM60CAL.dat") 'Initialize and load cal file
i = DMMSetFunction(nDmm, VDCFunc) 'Set DMM to DCV function
i = DMMSetRange(nDmm, Range2)
'Select the 24V range
i = DMMSetRate(nDmm, RATE_2R60) 'Set measurement rate
End Sub
23
Signametrics
Private Sub ReadBotton_Click()
Dim i As Long
Dim dReading As Double
i = DMMRead(nDmm, dReading)
TextReading.Text = dReading
End Sub
'Read Botton Click action.
'Any time this botton is pressed
'the DMM takes a reading and displays it.
'Take a reading
'display it in a Text box.
5.4 Windows DLL Default Modes and Parameters
After initialization, the Windows DLL default modes and parameters on your DMM are set up as follows:





Auto ranging: Off
Function: DC Volts
Range: 240V
Relative: Off
Measurement Rate: 2rps
5.5 Using the DLL with LabWindows/CVI
When using the SM2060 DLL with LabWindows/CVI, you should read the LabWin.txt file included with the
software diskette.
An example application of SM2060 DLL calls from LabWindows/CVI ® is shown below. It
contains functions measure_ohms() and measure_vdc(), with sample calls to the SM2060.
NOTE: Although these measurement functions use LabWindows/CVI® and the LabWindows/CVI(R)
Test Executive, they are not necessarily coded to LabWindows® instrument driver standards.
/* function: measure_ohms, purpose: measure 2-wire ohms */
int measure_ohms(double OHMreading) {
short ret, i;
DMMSetFunctions (0, OHMS2W);
DMMSetAutoRange (0, TRUE);
/* to settle auto-range and function changes ignore three readings */
for( i = 0 ; i < 4 ; i++ ) ret = DMMReadNorm (0, & OHMreading);
return ret;
}
/* function: measure_vdc, purpose: measure DC Volts */
int measure_vdc(double Vreading) {
short ret, i;
DMMSetFunctions (0, VDC);
DMMSetAutoRange (0, TRUE);
/* to settle auto-range and function changes ignore three readings */
for( i = 0 ; i < 4 ; i++ ) ret = DMMReadNorm (0, &Vreading);
return ret; }
5.6 Windows Command Language
The following section contains detailed descriptions of each function of the Windows command language. Those
commands that pertain to only the SM2060 are indicated. Most functions return an error code. The code can either
be retrieved as a string using DMMErrString function, or looked up in the SMU2060.H header file. The
DMMUser.H file contains all the pertinent definitions for the DMM ranges functions etc. The following description
for the various functions is based on “C” function declarations. Keep in mind that the Windows DLL containing
these functions assumes all int values to be windows 32bit integers (corresponds to VisualBasic long type). TRUE
is 1 and FALSE is 0 (which is also different from VisualBasic where True is –1 and False is 0).
Grayed out functions are either, untested or unimplemented.
Signametrics
24
DMMCalibrate
Internally calibrate the DMM.
Description
#include "SMU2060.H"
int DMMCalibrate(int nDmm)
This function performs self calibration of the various components of the DMM, as well
as an extensive self test. At the end of this operation it returns the DMM to the current
operating mode. Using this function periodically, or when the DMM internal temperature
varies, will enhance the accuracy of the DMM. Using this function does not remove the
requirement to perform periodic external calibration.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
The return value is one of the following constants.
Return Value
Value
Meaning
DMM_OKAY
DMM is OK.
Negative Value
Error
Example
status = DMMCalibrate(0); /* a quick internal cal.*/
Comments
This performs an internal DMM calibration and is the same as the S-Cal command in the
VB Control Panel. It is not related to the external calibration represented in the
SM60CAL.DAT file.
DMMCleanRelay
Service function that cleans specified relay.
Description
#include "SMU2060.H"
int DMMCleanRelay(int nDmm, int iRelay, int iCycles)
This function cleans iRelay by vibrating the contact iCycles times. This function is useful
for removing oxides and other deposits from the relay contacts. DC Current
measurements are particularly sensitive to K2 contact resistance and therefore should be
cleaned periodically. It is also useful for making sound in computer without a speaker.
Remarks
Return Value
Parameter
Type/Description
iRelay
int The relay to clean. 1 for K2, 2 for K2 and 3 for K3.
iCycles
int The number of times the relay contact is shaken. 1 to 1000.
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
Integer error code..
25
Signametrics
Value
Meaning
DMM_OKAY
Operation successfully completed.
Negative Value
Error code
Example
int status = DMMCleanRelay(0, 2, 100); // Shake K2 1000
DMMClearMinMax
Clears the Min/Max storage.
Description
#include "SMU2060.H"
int DMMClearMinMax(int nDmm)
This function clears the Min/Max values, and initiates a new Min/Max detection. See
DMMGetMin for more details.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
Integer error code..
Return Value
Value
Meaning
DMM_OKAY
Operation successfully completed.
Negative Value
Error code
Example
int status = DMMClearMinMax(0);
DMMCloseUSB
Close the USB bus for the specified DMM. Not for user applications.
Description
#include "SMU2060.H"
int DMMCloseUSB(int nDmm)
This function is limited for servicing the DMM. It has no use in normal DMM operation.
See also DMMOpenUSB() function.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
Integer error code.
Return Value
Signametrics
Value
Meaning
DMM_OKAY
Operation successfully completed.
26
Negative Value
Example
Error code
int status = DMMCloseUSB(0);
DMMDelay
Wait for a given time.
Description
#include "SMU2060.H"
int DMMDelay(double dTime)
Delay of dTime seconds. dTime must be a positive double number between 0.0 and 100.0
seconds.
Remarks
Parameter
Type/Description
dTime
double Delay time in seconds.
The return value is one of the following constants.
Return Value
Value
Meaning
DMM_OKAY
Operation successfully terminated
Negative Value
Error code
Example
DMMDelay(1.2); /* wait for 1.2 sec */
DMMErrString
Return the string describing the warning or error code.
Description
#include "SMU2060.H"
int DMMErrString(int iErrorCode, LPSTR lpszError, int iBuffLength)
This function returns a string containing the error or warning description which
corresponds to the iErrorCode. The string is placed at lpszError. Error codes are
negative numbers, while warning codes are positive numbers.
Remarks
Parameter
Type/Description
iErrorCode
int Error code.
iBuffLength
int The maximum available length of the string buffer
lpszError
LPSTR Points to a buffer (at least 64 characters long) to hold the
error/warning string.
The return value is the length of the error string or one of the following constants.
Return Value
Value
Meaning
27
Signametrics
Negative Value
Example
Error code
char cBuf[64];
int length = DMMErrString( -3, cBuf, 48);
DMMGetBusInfo
Returns the PCI Bus and Slot numbers for the selected DMM.
Description
int DMMGetBusInfo(int nDmm, int *bus, int *slot)
This function reads the PCI bus and slot numbers for the selected DMM. . It provides
means to relate the physical card location to the nDmm value by detecting the location of
a DMM in the PCI system tree. This function actually scans the hardware rather then
look up the information in the registry.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
bus
int * a pointer to integer at which the bus number is stored (0 to 255)
slot
int * A pointer to an integer where the slot number is stored
The return value is one of the following constants.
Return Value
Example
Signametrics
Value
Meaning
DMM_OKAY
Operation was successful.
Negative number
Error code
int bus, slot; // Find on which bus, and slot the DMM is at
DMMGetBusInfo(3, &bus, &slot); // DMM#3
28
DMMGetCalDate
Return the calibration date string from the DMM.
Description
int DMMGetCalDate(int nDmm, LPSTR lpszCalDate)
This function reads the calibration date string from the structure. This is the date the
DMM was calibrated last.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpszCalDate
LPSTR Points to a buffer (at least 64 characters long) to hold the
cal date string.
The return value is one of the following constants.
Return Value
Value
Meaning
any positive number
Length of the date string
Negative number
Error code
Example
char cBuf[64];
int status;
status = DMMGetCalDate(0, cBuf);
DMMGetdB
Get dB deviation from the reading at the time relative was activated.
Description
#include "SMU2060.H"
int DMMGetdB(int nDmm, double *lpdDev)
This function returns a double floating value that is the dB deviation relative to the
reading made just before the relative function was activated. This function is useful in
determining measurement errors in dB. It can be used for bandwidth measurements or
DC evaluation.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpdDev
double * Pointer where the dB value is to be saved.
Integer error code..
Return Value
Example
Value
Meaning
DMM_OKAY
Operation successfully completed.
Negative Value
Error code
double dB; int status = DMMGetdB(0, &dB);
29
Signametrics
DMMGetdBStr
Get dB deviation from the reading at the time relative was activated.
Description
#include "SMU2060.H"
int DMMGetdBStr(int nDmm, LPCSTR lpszDB)
This function is the same as the DMMGetdB(), with the exception that it returns a string.
See DMMGetdB() for more details.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpszDB
LPCSTR Points to a buffer (at least 64 characters long) to hold the
result. The return value will consist of a leading sign a floating-point,
and a ‘dB’ units specifier
Integer string length if successful, or an error code..
Return Value
Example
Value
Meaning
Negative Value
Error code
char cBuf[64]; int strLength = DMMGetdBStr(0, cBuf);
DMMGetDevLocation
Description
Get a string containing the location of the DMM in the USB structure.
#include "SMU2060.h"
Remarks
Return Value
Example
int DMMGetDevLocation(int nDmm, LPCSTR lpszLoc)
This service function retrieves the location of the USB DMM specified by nDmm in the
USB bus. A zero terminated string of length 8 is returned in lpszLoc. This function must
be used prior to opening the DMM. That is, prior to initializing or opening it by
DMMInit() or DMMOpenUSB().
Type/Description
Parameter
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpszLoc
LPCSTR Points to a buffer (at least 8 characters long) to hold the
result.
Integer string length if successful, or an error code.
Meaning
Value
Error code
Negative Value
Positive Value < 100 The length of the returned string
Warning code
Postive Value ≥ 100
char cBuf[8];
int i = DMMGetDevLocation(0, cBuf);
DMMGetDeviation
Description
Get percent deviation from the reading at the time relative was activated.
#include "SMU2060.H"
int DMMGetDeviation(int nDmm, double *lpdDev)
Signametrics
30
This function returns a double floating value that is the percent deviation relative to the
reading made just before the relative function was activated (DMMSetRelative). This
function is useful in quantifying measurement errors. It can be used for bandwidth
measurements or DC evaluation, or percent variation of a device under test over
temperature. The absolute value of lpdDev can be used as a pass/fail window for
production.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpdDev
double * Pointer where the deviation value is to be saved.
Integer error code..
Return Value
Value
Meaning
DMM_OKAY
Operation successfully completed.
Negative Value
Error code
Example
double error;
int status = DMMGetDeviation(0, &error);
DMMGetDeviatStr
Get percent deviation from the reading at the time relative was activated.
Description
#include "SMU2060.H"
int DMMGetDeviatStr(int nDmm, LPCSTR lpszDev)
This function is the same as the DMMGetDeviation(), with the exception that it returns
a string. See DMMGetDeviation() for more details.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpszDev
LPCSTR Points to a buffer (at least 64 characters long) to hold the
result. The return value will consist of a leading sign a floating-point,
and a % units specifier
Integer string length if successful, or an error code.
Return Value
Example
Value
Meaning
Negative Value
Error code
char cBuf[64];
int strLength = DMMGetDeviatStr(0, cBuf);
DMMGetDiffMnMxStr
Description
Returns the difference between the max and min values as string.
#include "SMU2060.H"
31
Signametrics
int DMMGetDiffMnMxStr (int nDmm, LPSTR lpszReading)
This function return the difference between the current Max. and Min values, which is
the peak-to-peak range of recent readings. It returns the result as a string formatted for
printing. The print format is determined by the range and function.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpszReading
LPSTR Points to a buffer (at least 64 characters long) to hold the
result.
The return value is one of the following constants, or the string length is OK.
Return Value
Value
Meaning
DMM_OKAY
Valid return.
Negative Value
Error code
Example
char cBuf[64];
int status = DMMGetDiffMnMxStr(0, cBuf);
DMMGetFunction
Get DMM function code.
Description
#include "SMU2060.H"
#include "DMMUser.h"
int DMMGetFunction(int nDmm)
This function returns the DMM function code. The codes are defined in the DMMUser.h
file.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with
zero.
Integer value corresponding to the current function, or an error code.
Return Value
Example
Value
Meaning
Positive value
See DMMUser.h for function/range codes.
Negative Value
Error code
if(DMMGetFunction == VDC) printf("VDC Function selected");
DMMGetGrdVer
Description
Get DMM firmware version.
#include "SMU2060.H"
Signametrics
32
int DMMGetGrdVer(int nDmm)
This function returns the DMM firmware version of the on-board controller.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
Integer value. The return value is the version value or an error code.
Return Value
Value
Meaning
Positive Value
Version
Negative Value
Error code
Example
firmwarever = DMMGetGrdVer(0);
DMMGetHwVer
Get the hardware version of the DMM.
Description
#include "SMU2060.H"
int DMMGetHwVer(int nDmm)
This function returns the hardware version. A returned value of 0 corresponds to Rev_, 1
corresponds to Rev_A, 2 to Rev_B etc.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
DMM hardware code or an error code.
Return Value
Example
Value
Meaning
Positive value
Hardware version code
Negative Value
Error code
int HWVer = DMMGetHwVer(0);
DMMGetHwOption
Description
Get the hardware option installed in the DMM.
#include "SMU2060.h"
int DMMGetHwOption(int nDmm)
Remarks
This function returns the hardware options installed. It returns a single character value
corresponding to the option. For instance, if option ‘R’ in installed, 0X12, the ASCII
equivalent or the letter ‘R’ is returned.
33
Signametrics
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
DMM hardware code or an error code.
Return Value
Value
Meaning
Positive value
Hardware version code
Negative Value
Error code
Example
int HWOption = DMMGetHwOption(0);
DMMGetID
Get DMM ID code.
Description
#include "SMU2060.H"
int DMMGetID(int nDmm)
This function returns the DMM identification code. Each DMM has a unique ID code
that must match the calibration file card_ID field in SM60CAL.DAT. This code must
reflect the last digits of the DMM serial number.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting
with zero.
Integer value card ID code (serial number) or an error code.
Return Value
Example
Signametrics
Value
Meaning
DMM_E_DMM
Invalid DMM number.
int id = DMMGetID(0);
34
DMMGetManDate
Get Manufacturing date stamp from the DMM hardware
Description
#include "SMU2060.H"
int DMMGetManDate(int nDmm, int *month, int *day, int *year)
This function returns the DMM manufacturing date which is read from the hardware.
The month, day and year are returned as integers. This is used to track the DMM to a
specific manufacturing date.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting
with zero.
month
int * A pointer to an integer where the month is stored
day
int * A pointer to an integer where the day is stored
year
int * A pointer to an integer where the year is stored
Integer error code or.
Return Value
Value
Meaning
DMM_OKAY
Operation was successful.
DMM_E_DMM
Invalid DMM number.
Example
int month, day, year, status
status = DMMGetManDate(0, &month, &day, &year);
DMMGetMax
Get Maximum reading history.
Description
#include "SMU2060.H"
int DMMGetMax(int nDmm, double *lpdMax)
This function returns a double floating value that is the maximum (of the Min/Max
function) value since either a function change, range change or call to the
DMMClearMinMax function was made. This value is updated every time a
measurement is performed using DMMRead, DMMReadStr or DMMReadNorm.
Remarks
Return Value
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpdMax
double * Pointer where the Max value is to be saved.
Integer error code..
35
Signametrics
Value
Meaning
DMM_OKAY
Operation successfully completed.
Negative Value
Error code
Example
double
Mx; int status = DMMGetMax(0, &Mx);
DMMGetMaxStr
Returns the maximum as a formatted string.
Description
#include "SMU2060.H"
int DMMGetMaxStr(int nDmm, LPSTR lpszReading)
This function is the string version of DMMGetMax. It returns the result as a string
formatted for printing. The print format is determined by the range and function. See
DMMGetMax for more details.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpszReading
LPSTR Points to a buffer (at least 64 characters long) to hold the
result.
The return value is one of the following constants, or the string length is OK.
Return Value
Value
Meaning
DMM_OKAY
Valid return.
Negative Value
Error code
Example
char cBuf[64];
int status = DMMGetMaxStr(0, cBuf);
DMMGetMin
Description
Get Minimum reading history.
#include "SMU2060.H"
int DMMGetMin(int nDmm, double *lpdMax)
Remarks
Signametrics
This function returns a double floating value that is the minimum (of the Min/Max
function) value since either a function change, range change or a call to the
DMMClearMinMax() function was made. This value is updated every time a
measurement is performed using DMMRead, DMMReadStr or DMMReadNorm.
36
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpdMax
double * Pointer where the Min value is to be saved.
Integer error code..
Return Value
Value
Meaning
DMM_OKAY
Operation successfully completed.
Negative Value
Error code
Example
double
Min; int status = DMMGetMin(0, &Min);
DMMGetMinStr
Returns the minimum as a formatted string.
Description
#include "SMU2060.H"
int DMMGetMinStr(int nDmm, LPSTR lpszReading)
This function is the string version of DMMGetMin. It returns the result as a string
formatted for printing. The print format is determined by the range and function. See
DMMGetMin for more details.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpszReading
LPSTR Points to a buffer (at least 64 characters long) to hold the
result.
The return value is one of the following constants, or the string length is OK.
Return Value
Example
Value
Meaning
DMM_OKAY
Valid return.
Negative Value
Error code
char cBuf[64];
int status = DMMGetMinStr(0, cBuf);
DMMGetNumDevices
Description
Get the number of USB DMM devices connected to the USB structure.
#include "SMU2060.h"
int DMMGetNumDevices(int * nDevices)
Remarks
This function retrieves the number of USB DMM devices connected to the USB bus. The
number of devices is saved at a location pointed to by nDevices. This function must be
used prior to opening the DMM. That is, prior to initialized or opening it by DMMInit()
or DMMOpenUSB(). See also DMMGetDevLocation().
37
Signametrics
Return Value
Example
Parameter
Type/Description
nDevices
* int Points to a location at which the number of devices is saved.
Integer string length if successful, or an error code.
Meaning
Value
Error code
Negative Value
Positive Value < 100 The length of the returned string
Warning code
Postive Value ≥ 100
int I; int number;
I = DMMGetNumDevices(& number);
DMMGetRange
Get DMM range code.
Description
#include "SMU2060.H"
#include "DMMUser.h"
int DMMGetRange(int nDmm)
This function returns the DMM range code. The range codes are in the sequence of 0, 1,
2, 3, … where 0 is the lowest range.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting
with zero.
Integer value corresponding to the currently set DMM range, or an error code.
Return Value
Value
Meaning
Zero or positive value
Range; zero being the lowest
Negative Value
Error code
Example
int id;
if(DMMGetRange == 0) printf("Lowest range selected");
DMMGetRate
Get the currently set reading rate
Description
#include "SMU2060.H"
int DMMGetRate(int nDmm, double *lpdRate)
This function returns a double floating rate in readings per second. See DMMSetRate
for details
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpdRate
double * Pointer where the rate is saved to.
Integer value version code or an error code.
Return Value
Value
Signametrics
Meaning
38
Negative Value
Example
Error code
int status; double rate;
status = DMMGetRate(0, & rate);
DMMGetSupplyV
Returns the one of the DMM supplies voltages.
Description
#include "SMU2060.H"
int DMMGetSupplyV(int nDmm, , double *lpdVoltage)
This function makes a measurement of one of the DMM power supplies voltages as an
indication of the USB supply voltage level. The nominal value is -12V. The USB
interconnect and some off the shelve hubs can make this voltage higher or lower than is
required. The acceptable value should be -10.5 to -13.5V. Voltages higher than -13.5V
may damage the SMU2055 and voltages below -9.0 are inadequate for proper operation,
and is usually indicative of poor USB cable. The value of this voltage is stored at a
double precision location pointed to by lpdVoltage.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpdVp;tage
LPSTD Points to a double to hold the result.
The return value is one of the following constants, or the string length is OK.
Return Value
Example
Value
Meaning
DMM_OKAY
Valid return.
Negative Value
Error code
Positive Value
Warning code
double v;
int status = DMMGetSupplyV(0, @v);
DMMGetStoredReading
Description
Get a single stored reding.
#include "SMU2060.h"
int DMMGetStoredReading(int nDmm, int iIndex, double *lpdRdng)
Remarks
User this function to retrieve readings previously captured by DMMReadNsamples.
Return a double precision reading number iIndex by placing it at a location pointed to by
lpdRdng. iIndex can have a value between 0 and the total number of measuremens taken
by DMMReadNsamples minus 1 (iN – 1).
Parameter
Type/Description
39
Signametrics
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
iIndex
int Index to the stored reading, can be 0 to the total of number of
readings taken mins 1.
lpdRdmg
double * Pointer where the reading value is to be saved.
Integer error code..
Return Value
Value
Meaning
DMM_OKAY
Operation successfully completed.
Negative Value
Error code
Example
double
v;
int status = DMMGetStoredReading(0, 0, &v); // get the 1st
reading
DMMGetType
Get the type of the DMM.
Description
#include "SMU2060.H"
int DMMGetType(int nDmm)
This function returns a value identifying the DMM model.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
DMM type Integer or an error code.
Return Value
Value
Meaning
2055
SM2055 is at nDmm slot
Other positive value
Warning code
Negative Value
Error code
Example
int DMMtype = DMMGetType(0);
DMMGetVer
Description
Get DMM software driver version.
#include "SMU2060.H"
int DMMGetVer(int nDmm, double *lpfResult )
Remarks
This function returns the DMM software driver version, which is a double floating value.
Parameter
Signametrics
Type/Description
40
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpfResult
double * Pointer to the location which holds the version.
Integer error code.
Return Value
Value
Meaning
Negative Value
Error code
Example
int status; double ver;
status = DMMGetVer(0, &ver);
DMMInit
Initialize a DMM.
Description
#include "SMU2060.H"
int DMMInit(int nDmm, LPCSTR lpszCal)
This function must be the first function to be executed. It opens the driver for the
specified DMM. The first DMM being 0, the second 1, etc.. It also initializes the DMM
hardware and does extensive self test to the DMM hardware. It then initializes the
software and reads the appropriate calibration record for the respective DMM from the
file specified by lpszCa, followed by self calibration. If the calibration record is outdated,
it opens a warning window. If an error is detected, an error code is returned.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpszCal
LPCSTR Points to the name of the file containing the calibration
constants for the DMM. Calibration information is normally read
from the file named SM60CAL.DAT located in the current directory.
Return Value
Example
The return value is one of the following constants.
Value
Meaning
DMM_OKAY
DMM initialized successfully.
Negative Value
Error code
/* initialize DMM */
int i = DMMInit(0,"C:\SM60CAL.dat");// Initialize the first DMM
DMMIsAutoRange
Description
Get the status of the autorange flag.
#include "SMU2060.H"
41
Signametrics
int DMMIsAutoRange(int nDmm)
This function returns the DMM autorange flag state.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
TRUE, FALSE or an error code.
Return Value
Value
Meaning
TRUE
Autoranging mode is selected.
FALSE
Autoranging mode is not selected.
DMM_E_DMM
Invalid DMM number.
Example
int autorange = DMMIsAutoRange(0);
DMMIsInitialized
Get the status of the DMM.
Description
#include "SMU2060.H"
int DMMIsInitialized(int nDmm)
This function returns the status of the DMM. If TRUE, the DMM has been initialized and
is active. If FALSE the DMM is not initialized. To use the DMM, it must be initialized
using DMMInit function. This function is used for maintenance and is not needed under
normal operation.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
TRUE, FALSE or an error code.
Return Value
Example
Value
Meaning
TRUE
DMM is initialized and active.
FALSE
DMM is not initialized.
DMM_E_DMM
Invalid DMM number.
int active = DMMIsInitialzied(0);
DMMIsRelative
Description
Get the status of the Relative flag.
#include "SMU2060.H"
int DMMIsRelative(int nDmm)
Signametrics
42
This function returns the DMM Relative flag state.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
Integer TRUE, FALSE or an error code.
Return Value
Value
Meaning
TRUE
Relative mode is selected.
FALSE
Relative mode is not selected.
Negative Value
Error code
Example
int rel = DMMIsRelative(0);
DMMOpenUSB
A service function which open the USB bus for the SMU2055. Not for user application.
Description
#include "SMU2060.H"
int DMMOpenUSB(int nDmm)
This function is limited for servicing the DMM. It has no use in normal DMM operation..
See also DMMCloseUSB() function.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
Integer error code.
Return Value
Value
Meaning
DMM_OKAY
Operation successfully completed.
Negative Value
Error code
Example
int status = DMMOpenUSB(0);
DMMRead
Description
Return the next floating-point reading from the DMM.
#include "SMU2060.H"
int DMMRead(int nDmm, double *lpdResult)
43
Signametrics
Executing the DMMRead function causes the DMM to perform a single conversion and
retrieve the result. The DMM, performs all scaling and conversion required, and returns
the result as a 64-bit double-precision floating-point number in the location pointed to by
lpdResult. It can read all the Primary functions (those that can be selected using
DMMSetFunction() and DMMSetRange() ). Returned result is a scaled value which is
normilized to the selected range. That is . That is, it returns 200 for 200mV input in the
240 mV range, and 100 for 100 k input in the 330k  range. Alternatively use the
DMMReadNorm() function for base units read function, or DMMReadStr() to return
the results as formated string of the DMMRead().Very large values are indication of
over range condition.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpdResult
double * Points to the location to hold the next reading.
The return value is one of the following constants.
Return Value
Value
Meaning
DMM_OKAY
DMM initialized successfully.
Negative Value
Error code
Positive Value
Warning code, including over range.
Example
double dResults[100];
int status;
For(i=0; I < 100; i++) DMMRead(0, &dResults[i]);// Read to a buffer
DMMReadNorm
Take a reading that is in base value.
Description
#include "SMU2060.H"
int DMMReadNorm(int nDmm, double *lpdRead)
This function returns a double floating-point reading. Unlike DMMRead() the returned
value is in base units. That is, it returns 0.2 for a 200 mV input and 1e6 for a 1.0 M.
Very large values are indication of over range condition.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpdRead
double * Pointer to a location where the reading is saved.
Integer value version code or an error code.
Return Value
Signametrics
Value
Meaning
DMM_E_RANGE
Over/Under range error.
Negative Value
Error code
DMM_OKAY
Valid return.
44
Example
double reading; int status = DMMReadNorm(0, &reading);
DMMReadNsamples
Take a reading that is in base value.
Description
#include "SMU2060.h"
int DMMReadNsamples(int nDmm, int iN)
In response to this command the DMM take iN measurements, and sends them back to
the USB bus. In order not to loose any, and cause overrun, use
DMMGetStoredReading() in a tight loop. Measurements are made using the currently
selected function, range and aperture.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
iN
Int The number of measurements to be taken. This value must be
between 2 and 10,000.
Integer value version code or an error code.
Return Value
Value
Meaning
POS_FS or NEG_FS
Positive or Negative Full Scale, or overrange
Negative Value
Error code
DMM_OKAY
No error
Example
int status = DMMReadNsamples(0, 100);
DMMReadStr
Return the next reading from the DMM formatted for printing.
Description
#include "SMU2060.H"
int DMMReadStr(int nDmm, LPSTR lpszReading)
This function is the string version of DMMRead(). It reads the next measurement result,
performs all scaling and conversion required, and returns the result as a string formatted
for printing. The print format is determined by the range and function. See DMMRead()
for more details.
Remarks
Return Value
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpszReading
LPSTR Points to a buffer (at least 64 characters long) to hold the
converted result. The return value will consist of a leading sign, a
floating-point value in exponential notation, and a units specifier.
The return value is one of the following constants, or the string length is OK.
45
Signametrics
Value
Meaning
DMM_OKAY
Valid return.
Negative Value
Error code
DMM_E_RANGE
DMM over range error occurred.
Example
char cBuf[64]; int status = DMMReadingStr(0, cBuf);
DMMSetAutoRange
Enable/Disable autorange operation of DMM
Description
#include "SMU2060.H"
int DMMSetAutoRange(int nDmm, int bAuto)
This function enables or disables autorange operation of the DMM.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
bAuto
int Determines whether or not autoranging is done. The value TRUE
(1) enables autoranging, FALSE (0) disables it.
The return value is one of the following constants.
Return Value
Example
Value
Meaning
DMM_OKAY
Function succeeded.
Negative Value
Error code
status = DMMSetAutoRange(0, TRUE); /* enable autoranging */
DMMSetFunction
Description
Set the DMM function.
#include "SMU2060.H"
#include "DMMUser.h"
int DMMSetFunction(int nDmm, int nFunc)
Remarks
Signametrics
This function selects the DMM’s measurement function. The DMMUser.h file contains a
table of values defined as VDC, VAC, IAC, IDC, OHMS4W, OHMS2W etc... Not all
functions are available for all DMM types.
46
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
nFunc
int A pre-defined constant corresponding to the desired function.
The return value is one of the following constants.
Return Value
Value
Meaning
DMM_OKAY
DMM initialized successfully.
Negative Value
Error code
DMM_E_FUNC
Invalid DMM function.
Example
status = DMMSetFunction(0, IDC); // Set for DC current
DMMSetRange
Set the DMM range for the present function.
Description
#include "SMU2060.H"
int DMMSetRange(int nDmm, int nRange)
This function sets the range used by the DMM for the present function. The table of
values is defined by the _240mV, _2400uA, etc. In general, the lowest range is 0, next is
1 etc. Each function has a pre defined number of ranges as specified in the specification
section of this manual. Not all ranges are available for all DMM types. For instance the
SM2064 has a 24 Ohms and 240Meg range, while the SM2060 and SMU2055 do not.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
nRange
int A pre-defined constant corresponding to the desired range.
The return value is one of the following constants.
Return Value
Example
Value
Meaning
DMM_OKAY
DMM initialized successfully.
Negative Value
Error code
DMM_E_RANGE
Invalid DMM range value.
status = DMMSetRange(0, _24mA);
47
Signametrics
DMMSetRate
Set the measurement rate.
Description
#include "SMU2060.h"
#include "USBDMMUser.h"
int DMMSetRate(int nDmm, int iRate)
This function sets the rate at which the DMM makes measurements. The allowed values
are defined in the DMMUser.h file. The rate (iRate) can be set from 0.5rps (RATE_p5)
to 250rps (RATE_250). Some of the rates have specific power line rejection as indicated
in the specification part of this manual. See DMM
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
iRate
int A pre-defined constant corresponding to the desired rate.
The return value is one of the following constants.
Return Value
Example
Signametrics
Value
Meaning
DMM_OKAY
DMM initialized successfully.
Negative Value
Error code
ERR_PARAMETER
Invalid measurement rate value entered.
status = DMMSetRate(0, RATE_2);
48
// Set to 2rps
DMMSetRelative
Set the DMM relative reading mode for the present function.
Description
#include "SMU2060.H"
int DMMSetRelative(int nDmm, int bRelative)
This function selects relative or absolute reading mode for the DMM. If the bRelative
parameter value is TRUE (1), the DMM will change to relative reading mode. If
FALSE, the DMM will change to absolute reading mode.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
bRelative
int TRUE (1) to enter relative mode, FALSE (0) to clear mode.
The return value is one of the following constants.
Return Value
Value
Meaning
DMM_OKAY
DMM mode changed successfully.
Negative Value
Error code
Example
status = DMMSetRelative(0, TRUE);
DMMTerminate
Terminate DMM operation (DLL)
Description
#include "SMU2060.H"
int DMMTerminate(int nDmm)
Removes DMM number nDmm. This routine is used only where it is needed to terminate
one DMM and start a new one at the same nDmm location. Otherwise, it is not
recommended to use this function.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM to be suspended.
The return value is one of the following constants.
Return Value
Example
Value
Meaning
TRUE
DMM Terminated
FALSE
DMM was not initialized, termination is redundant.
DMMTerminate(0); /* Terminate DMM # 0 */
5.7 Calibration Service Commands
49
Signametrics
AC_zero
Disable AC measurement zero funciton.
Description
#include "SMU2060.H"
#include "UseroDMM.h"
int AC_zero(int nDdmm, int bACZero )
ith bACZero FALSE, the AC zero function is disabled. If TRUE it is enabled. The
default value is TRUE. Diabeling the AC Zero funciton allows the derivation of the value
to be set as offset parameter for the selected ACV range. This function is used during
calibration.
Remarks
Parameter
Type/Description
iDmm
Identifies the DMM. DMMs are numbered starting with zero.
bACZero
Forces the AC zero to be active or inactive. Allowed values are TRUE
of FALSE.
The return value is one of the following constants.
Return Value
Value
Meaning
DMM_OKAY
Valid return.
Negative Value
Error code
Example
int err;
Err = AC_zero(0, FALSE); // disable AC Zero.
DMMLoadCalFile
Reload calibration record from file.
Description
#include "SMU2060.H"
int DMMLoadCalFile(int nDmm, LPCSTR lpszCal)
This function provides the capability to reload the calibration record. This is useful in
making limited calibration adjustments, and verifying them. By having a copy of the
original calibration file ‘SM60CAL.DAT’ open with an editor, modifying calibration
parameters and then reloading using DMMLoadCalFile, one can instantly verify the
corrections made. Make sure the ‘SM60CAL.DAT’ file itself is not altered since that
will void the calibration.
Remarks
Parameter
nDmm
lpszCal
Signametrics
Type/Description
int Identifies the DMM. DMMs are numbered starting with zero.
LPCSTR Points to the name of the file containing the calibration
constants for the DMM.
50
Return Value
The return value is one of the following constants.
Value
Meaning
DMM_OKAY
Cal record loaded successfully.
Negative Value
Error code
Example
/* Load a modified copy of the original calibration file to
verify correction made to a specific entry */
int i = DMMLoadCalFile(0, "C:\CAL_A.dat");
SetGain
Set currently set gain during service.
Description
#include "SMU2060.H"
#include "UseroDMM.h"
int SetGain(int nDmm, doulbe Gain)
This function sets the currently set gain,. Sets the gain of the the currently selected
function and range. The gain is returned as double-precision floating-point number
Gaint. This function is useful while performaing calibration. Set GetGain() function for
additional details.
Remarks
Parameter
Type/Description
iDmm
Identifies the DMM. DMMs are numbered starting with zero.
The return value is one of the following constants.
Return Value
Value
Meaning
lpdGain
double the gain.
DMM_OKAY
Valid return.
Negative Value
Error code
Example
SetGain(0, 1.00023); // set gain
GetGain
Description
Retrieve currently set gain.
#include "SMU2060.H"
#include "UseroDMM.h"
int GetGain(int nDmm, doulbe * lpdGain)
51
Signametrics
This function returns the currently set gain,. This is the gain associated with the currently
selected function and range. The value should be the same as that set in the calibration
record for this function and range. The gain is returned as a 64-bit double-precision
floating-point number in the location pointed to by lpdGaint. This function is useful
while performaing calibration. Set SetGain() function for additional details.
Remarks
Parameter
Type/Description
iDmm
Identifies the DMM. DMMs are numbered starting with zero.
The return value is one of the following constants.
Return Value
Value
Meaning
lpdGain
double * Points to the location to hold the gain.
DMM_OKAY
Valid return.
Negative Value
Error code
Example
double gain;
GetGain(0, &gain); // read gain
GetOffset
Retrieve currently set gain.
Description
#include "SMU2060.H"
#include "UseroDMM.h"
int GetOffset(int nDmm, doulbe * lpdOffset)
This function returns the currently set offset,. This is the offset associated with the
currently selected function and range. The value should be the same as that set in the
calibration record for this function and range. The offset is returned as a 64-bit doubleprecision floating-point number in the location pointed to by lpdOffsett. This function is
useful while performaing calibration. Set SetOffset() function for additional details.
Remarks
Parameter
Type/Description
iDmm
Identifies the DMM. DMMs are numbered starting with zero.
The return value is one of the following constants.
Return Value
Example
Signametrics
Value
Meaning
lpdOffset
double * Points to the location to hold the offset.
DMM_OKAY
Valid return.
Negative Value
Error code
double offst;
GetOffset(0, &offst); // read gain
52
SetFcomp
Set the ACV Frequency compensation factor during service.
#include "SMU2060.H"
Description
int SetFcomp(int nDmm, int iFcomp)
This function sets the value of the ACV frequency compensation DAC. It is used for
calibration the ACV bandwidth..
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
iFcomp
int Freqeuncy Compnensation DAC value to be set. Allowed value is
between 0 and 31.
Integer error code.
Return Value
Value
Meaning
DMM_OKAY
Operation successfully completed.
Negative Value
Error code
Example
SetFcomp(0, 12); // set the frequency compensation
SetOffset
Set the the offset correction factor
Description
#include "SMU2060.H"
int SetOffset(int nDmm, double dOffset)
This function sets the value of the offset correction factor for the currently set function
and range..
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
dOffset
double Offset value to be set.
Integer error code.
Return Value
Value
Meaning
DMM_OKAY
Operation successfully completed.
Negative Value
Error code
53
Signametrics
Example
SetOffset(0, 11212.0); // Assert the offset factor
Linearize_AD
Activate/Deactivate A/D linearization correction during service.
Description
#include "SMU2060.H"
#include "UseroDMM.h"
int Lineaize_AD(int nDdmm, int bLinerize )
If bLinerize is set to FALSE disables the A/D Linearization correction. The default value
is TRUE. Diabeling allows for the derivation of the parameters for calibration purposes.
This function is used during calibration only.
Remarks
Parameter
Type/Description
iDmm
Identifies the DMM. DMMs are numbered starting with zero.
bACZero
Forces the AC zero to be active or inactive. Allowed values are TRUE
of FALSE.
The return value is one of the following constants.
Return Value
Value
Meaning
DMM_OKAY
Valid return.
Negative Value
Error code
Example
int err;
Err = Linearize_AD(0, FALSE); // disable AC Zero.
Read_ADcounts
Read A/D offset counts during calibration.
#include "SMU2060.H"
Description
int Read_ADcounts(int nDmm)
This function returnes the A/D raw counts. It is useful for retrieving the offset parameter
for various functions, including VDC, 2-W and 4-W ohms and DC current. It is limited
for service and calibration use.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
Integer error code.
Return Value
Example
Signametrics
Value
Meaning
Any value
int Offset reading.
int i = Read_ADcounts(0); // read offset parameter
54
5.8 Maintanance Commands
GrdXingTest
Perform the specified test
#include "SMU2060.H"
Description
int GrdXingTgest(int nDmm, int iNumber, int iTest)
Perform the specified test as indicated by iTest. Repeat it for iNumber times. This
function is used to perform basic H/W tests.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
iTest
int Test type. 0: Basic Read/Write. 1: Toggle Reset line iNumber
times. 2: High Speed Guard Crossing stimulation. 3: Guarded
controller communication test. 4: Guard Crossing loopback test. 5:
High Speed Guard Crossing test (SM2064).
iNumber
int Number of tests to be repeated.
Integer error code.
Return Value
Value
Meaning
DMM_OKAY
Operation successfully completed.
Negative Value
Error code
int i = GrdXingTest(0, 1, 3); // Test Guarded controller
Example
WrCalFileToStore
Transfer the contents of a cal file to the on-board cal store.
#include "SMU2060.h"
Description
int WrCalFileToStore (int nDmm,LPCSTR lpszCal)
This function copies the specified calibration file, pointed to by lpszCal, to the on-board
none volatile store of the DMM. This is appropriate following calibration operation. The
currently stored on-board record is replaced with the contents of the speified file. Make
sure that the calibration file only contains only one record, for the specified DMM.
Remarks
Return Value
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
lpszCal
LPCSTR Points to the name of the file containing the calibration
constants for the DMM. Calibration information is normally read
from the file named SM60CAL.DAT located in the C:\ root directory.
Integer error code.
55
Signametrics
Value
Meaning
Any value not 0
int Eror or warning code
int i = WrCalFileToStore (0, "C:\\SM60CAL.dat");
Example
WrCalStoreToFile
Transfer the contents of the on-board cal store to a file.
#include "SMU2060.h"
Description
int WrCalStoreToFile (int nDmm,LPCSTR lpszCal, int mode)
This function copies the calibration record stored in the on-board none volatile memory
of the DMM to the specified calibration file, pointed to by lpszCal. If mode is ‘a’ and a
file exists, the record is appended to the end of this file. If mode is ‘w’, a new file is
created, wiping out the old if it exists.
Remarks
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
mode
int Sets the file creation mode.
lpszCal
LPCSTR Points to the name of the file containing the calibration
constants for the DMM. Calibration information is normally read
from the file named SM60CAL.DAT located in the C:\ root directory.
Integer error code.
Return Value
Value
Meaning
Any value not 0
int Eror or warning code
int i = WrCalStoreToFile (0, "C:\\SM60CAL.dat", ‘a‘);
Example
EraseCalStore
Service function that wipes the Calibration record off the internal memory.
#include "SMU2060.h"
Description
int EraseCalStore(int nDmm)
This function reformats the none volatile calibration store on-board the DMM, preparing
it for storing a calibration record. This function will remove the currently stored
calibration record and is not necessary during calibration.
Remarks
Return Value
Signametrics
Parameter
Type/Description
nDmm
int Identifies the DMM. DMMs are numbered starting with zero.
Integer error code.
56
Value
Meaning
Any value
int Eror or warning code.
Example
int i = EraseCalStore(0); // Erase/Format cal store EEProm
5.9 Error Codes
Operation of the DMM may be impaired, should be aborted or is not possible following an Error. Use the
DMMErrString() function, to retrieve the string describing the error.
DMM_OKAY
DMM_E_INIT
DMM_E_CAL_R
ERR_AD_HW
NO_CAL_RECORD
TRIG_ERR
GUARD_COM
TIMEOUT
GUARD_XING
WRONG_TYPE
UNKNOWN_ERROR
CANT_OPEN_USB
GENERAL_ERR
CAL_STORE
CREAT_CAL_FILE
OPEN_CAL_FILE
CREAT_CAL_RCRD
ERROR_EEPROM_DTYPE
ERROR_READBYTES
ERROR_WRITEBYTES
ERROR_DTYPE
ERROR_READ_EEPROM
ERROR_USB_IO
ERROR_USB_PWR
MCU_COM_ERROR
0
-1
-2
-3
-4
-5
-6
-7
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
// no error
// DMM is not initialized. Use DMMInit() prior to using
// cannot find valid calibration record
// A/D does not respond. H/W error
// can't find cal record for DMM
// Trigger circuit error
// Microcontroller communication error
// process timed out Error
-8
// Guard crossing is broken
// Wrong Cal record for DMM type
// Undefined Error
// can’t open USB device. Already open or an SMU403X
// General Error
// Error reading Cal record from local storage
// can’t create named cal file to write to
// can’t open cal file for reading cal record
// can’t create on-board Cal Record
// Invalid dmm type in EEProm
// unexpected number of bytes read
// unexpected number of bytes written
// invalid input, bad DMM Type parameter
// invalid data on the EEPROM
// I/O error from USB bus
// USB 5V supply is too low
// Microcontroller communication error
5.10 Warning Codes
Following a warning, the DMM will continue to run normally with the exception of the fault indicated by
warning code. Use the DMMErrString() function, to retrieve the string describing the warning. This
string may be used to notify the user. Based on it, an action may be taken to correct the source of the
warning. Several of the warning codes are part of a normal operation. Such are DMM_CNT_RNG, which
indicates that the counter requires additional iterations, or the POS_FS and NEG_FS are indication that
the signal level is too high for the selected range, which is normal.
APERTR_TOO_HIGH
DMM_E_FUNC
DMM_E_RNG
DMM_CNT_RNG
DMM_E_IS_INIT
CAP_RATE_ERR
ERR_FUNC
ERR_APERTURE
101
102
103
104
105
106
107
108
// Aperture value is too high for operation
// Invalid function value used
// Invalid range value used
// DMM counter out of range
// Dmm already initialized: in use
// Can't change rate in Cap mode.
// Illegal function selection
// Wrong Aperture selected, see rate definition
57
Signametrics
TRIG_SAMPL_ERR
ERR_PARAMETER
UN_CALIBRATED
TOO_COLD
TOO_HOT
BAD_TC_TYPE
MC_STOP
POS_FS
NEG_FS
BUSY
FUNC_INACTIVE
READ_INTERVL
FAIL_OPEN_CAL
CAL_2usOffset
CAL_2usGain
USB_LOW_POWER
USB_HIGH_POWER
WRONG_GRD_VER
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
// Wrong number of Trigger samples
// wrong parameter value
// Expired Calibration. Needs service
// Temperature too low
// Temperature too high
// Wrong TC type
// Microcontroller was stopped/interruped during an operation
// Positive Over Range
// Negative Over Range
// DMM is busy, wait for ready
// Function can not be selected, or not available for this type DMM.
// Read Interval value incompatible with Aperture,
// Failed to perform Open-Cal operation
// Failed to Cal offset in 2.5uS Aperture
// Failed to Cal gain in 2.5uS Aperture
// USB supply is too low for this opereation
// USB supply is too high
// MCU Firmwhare does not support operation
5.11 Parameter List
The following definitions are from the DMMUser.H file.
5.11.1 Measurement and Source Functions
The following list contains values that set the DMM functions. Use the DMMSetFuncction() function to
set these values. Use DMMGetFunction() to retrieve the value of the currently set function
#define
#define
#define
#define
#define
#define
#define
VDC
VAC
IAC
IDC
OHMS4W
OHMS2W
DIODE
0
5
10
14
22
29
37
DC Volts
AC Volts
AC Current
DC Current
2-Wire resistance
4-Wire resistance
Diode test
5.11.2 Range Values
The following list contains the allowed values for range setting with DMMSetRange() function. Use the
DMMGetRange() function to retrieve the currently set range
// AC and DC Volts
#define _240mV
#define _2400mV
#define _24V
#define _240V
// AC Current
#define _2400uAAC
#define _24mAAC
#define _240mAAC
#define _2400mAAC
// DC Current
#define _2400uA
#define _24mA
#define _240mA
#define _2400mA
// 2 Wire and 4 Wire Ohms
Signametrics
0
1
2
3
// four AC and DC voltage ranges
0
1
2
3
// 2.4mA
// 24mA
4
5
6
7
// 2.4mA
// 24mA
// 240mA
// 2.4A
// 2.4A
58
#define _240
#define _2400
#define _24k
#define _240k
#define _2400k
#define _24MEG
// Diode test
#define _D100n
#define _D1u
#define _D10u
#define _D100u
#define _D1m
1
2
3
4
5
6
// Two Meg range
// 2-Wire
0
1
2
3
4
//Test current = 100nA
// 1uA
// 10uA
// 100uA
// 1mA
5.11.3 Measurement Rate parameters
The following list contains the definitions for the available Rates. Use DMMSetRate() and
DMMGetRate() to set and retrieve the currently set measurement rate..
#define RATE_p5
#define RATE_1
#define RATE_2
#define RATE_3
#define RATE_7
#define RATE_14
#define RATE_27
#define RATE_50
#define RATE_90
#define RATE_170
#define RATE_250
0
1
2
3
7
14
27
50
90
170
250
// 0.5rps with 50/60Hz rejection
// 1rps with 60Hz line rejection
// 2rps with 50Hz line rejection
// 3rps with 60Hz line rejection
// 7rps with 50Hz line rejection
// 14rps with 60Hz line rejection
// 27rps with 50Hz rejection
// 50rps with 60Hz rejection
// 90rps with 50Hz rejection
// 170rps
// 250rps
59
Signametrics
6 Calibration
Each SMU2055 DMM uses its own SM60CAL.DAT calibration record to ensure the accuracy of its
functions and ranges. The SM60CAL.DAT file is a text file that contains the DMM identification
number, calibration date, and calibration constants for all DMM ranges. When the DMM is installed this
file is generated from an internally stored record. Once extracted, the DMM reads it from a file rather than
from its on-board record, since it is faster to read from a file. For most functions, the calibration constants
are scale factor and offset terms that solve an "y = mx + b" equation for each range. An input "x" is
corrected using a scale factor term "m" and an offset term "b"; this gives the desired DMM reading, "y".
Keep in mind that for ranges and functions that are unavailable for a particular product in the SM2060
family. The following calibration record is for the SMU2055 and it contains some placeholders for ranges
that are not available with the product. An example SM60CAL.DAT follows:
card_id 8123
type 2055 calibration_date 06/15/2008
ad
#A/D compensation
2.0
10 0.99995
vdc
#VDC 240mV, 2.4V,24V, 240V, 330V ranges, offset and gain parameters
-386.0 0.99961
-37.0
0.999991
-83.0
0.999795
-8.8
1.00015
0
1.0
;Place holder
vac
#VAC 1st line - DC offset. Than offset, gain and freq each range240mV to 330V
0
;Place holder
0.84
1.015461
23
0.0043 1.0256
23
0.0
1.02205
0
0.0
1.031386
0
0
1.0
0
;Place holder
idc
# IDC 240nA to 2.5A, 8 ranges, offset and gain
0
1
;Place holder
0
1
;Place holder
0
1
;Place holder
0
1
;Place holder
-1450.0 1.00103 ;2.4mA range
-176.0 1.00602
-1450.0 1.00482
-176.0 1.00001
;2.4A range
iac
# IAC 2.4mA to 2.5A ranges, offset and gain
1.6
1.02402
0.0
1.03357
1.69
1.00513
0.0
1.0142
2w-ohm #Ohms 24, 240, 2.4k,24k,240k,2.4M,24M,240Meg ranges, offset and gain
0
1
;Place holder
1256.0 1.002307
;240 Ohms
110.0
1.002665
0.0
1.006304
0.0
1.003066
0.0
1.001848
0.0
0.995664
;24 MOhms
0
1
;Place holder
…
The first column under any function, e.g.,"vdc", is the offset term "b", expressed as a value proportional
to analog-to-digital (a/d) counts. The second column is the scale factor term "m". Within each function,
the "b" and "m" terms are listed with the lowest range at the beginning. For example, under "2w-ohm"
above, "1.27e+4 1.002259" represents the offset term for the 24  range, and "1.002259" is the scale
factor for this range.
For the ACV function, the first line in the calibration record is the DC offset value. The rest of the lines
contain the RMS offset, gain correction factor, and a third column that represents a digital code from 0 to
31 that controls the high frequency performance of each AC function. A large value, e.g., 31, implies
high attenuation.
Signametrics
60
The SM60CAL.DAT file is created by performing external calibration. The general calibration
algorithm consists of applying a zero value to the DMM followed by a value of 2/3rd of the top of each
range. Calibration of your SM/SMU2055/60/64 is best performed using calibration software available
from Signametrics.
When using multiple DMMs in a single chassis, the SM60CAL.DAT file must have a calibration record
for each DMM. You can combine the unique calibration records of each DMM into one
SM60CAL.DAT file using any ASCII text editor such as “notepad.exe”.
61
Signametrics
7.0 Warranty and Service
The SMU2060, SMU2064 and SMU2055 are warranted against defects in manufacturing and materials
for a period of one year from date of purchase. Removal of any of the three external shields or any
attempt to repair the unit by other than unauthorized Signametrics service personnel will invalidate your
warranty. Operating the Signametrics products outside their specified limits will void the warranty. For
in-warranty repairs, you must obtain a return materials authorization (RMA) from Signametrics prior to
returning your unit. Customer ships products at customer’s expense. Within the USA Signametrics will
ship serviced or replaced unit at Signametrics’ expense.
Warranty extensions are available at the time of purchase for terms up to 36 months, in increments of 12
months.
If your unit requires repair or calibration, contact your Signametrics representative. There are no user
serviceable parts within these products.
8.0 Accessories
Several accessories are available for the SM2055 DMM, which can be purchased directly from
Signametrics, or one of its distributors or representatives. These include:

Basic DMM probes

DMM probe kit

Deluxe DMM probe set

Shielded SMT Tweezer Probes

Multi Stacking Double Banana shielded cable 36”

Multi Stacking Double Banana shielded cable 48”

Mini DIN-7 Trigger, 6-Wire Ohms connector

4-Wire Kelvin probes
Signametrics
62