Abstract:
Calibrating a plurality of digital-to-analog converters using a calibration memory for storing calibration characteristics for respective digital-to-analog converters so as to provide uniform analog responses to digital data, and a calibrator to receive original digital data and to adjust it utilizing the stored calibration characteristics to produce adjusted digital data that, when inputted into a digital-to-analog converter, produce an analog signal that corresponds to the original digital data.

Description:
FIELD OF THE INVENTION 
     The present invention relates to systems employing a plurality of digital-to-analog converters, e.g., automatic circuit test equipment. 
     BACKGROUND OF THE INVENTION 
     Digital-to-analog converters have offset and gain errors, resulting in different analog outputs in response to the same digital input. 
     In some automatic circuit testers, a plurality of digital-to-analog converters are calibrated when they are first installed. 
     SUMMARY OF THE INVENTION 
     In one aspect the invention features calibrating a plurality of digital-to-analog converters (DACs) by storing calibration characteristics for respective DACs in a calibration memory, and using the calibration characteristics stored for a DAC to adjust digital data as the data is sent to that DAC. 
     In preferred embodiments the DACs are part of an automatic circuit test system; there are both offset and gain correction characteristics stored in respective offset and gain memories; the digital data is adjusted by a multiplier/accumulator circuit according to the equation y=mx+b, where y is the adjusted digital data, m is a gain correction characteristic, x is the original digital data, and b is the offset correction characteristic; the multiplier/accumulator circuit is controlled by control signals from the control memory addressed by the same addresses used for the offset and gain memories and control signals from the state machine; an output multiplexer is used to selectively output to the DACs either the adjusted digital data or the original digital data; and an echo memory storing original digital data is used in conjunction with a last value register storing the last adjusted digital data and a read back multiplexer to provide selective read back of the original data, the last set of adjusted data, or data on the bus communicating with the DACs. 
     In another aspect the invention features a method of determining offset and gain correction characteristics for use in calibrating a plurality of DACs by measuring, for each DAC, the analog outputs resulting from inputting minimum and maximum values relating to a range of digital values expected to be used by the DAC. The offset and gain correction characteristics are determined in turn for each DAC and are stored at the same addresses in the offset and gain memories. 
     Such a system and calibration method permit very accurate calibration of precision 16-bit DACs (accurate to 100 μ volts) as digital data is provided to them at data bus speed. Because the DACs can be calibrated on each power-up, long-term changes in DAC characteristics are unimportant. In addition, accuracy is further promoted by determining the calibration characteristics for the range of digital values expected to be provided to a given DAC during a given test procedure. 
     Other advantages and features of the invention will be apparent from the following description of a preferred embodiment thereof. 
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     The preferred embodiment will no be described. 
    
    
     DRAWINGS 
     FIG. 1 is a block diagram of an automatic circuit test system having a digital-to analog calibration circuit according to the invention. 
     FIG. 2 is a block diagram of the digital-to-analog calibration circuit of the FIG. 1 system. 
     FIGS. 3A, and 3B are a flow chart of the calibration procedure employed by the FIG. 2 circuit. 
    
    
     STRUCTURE 
     Referring to FIG. 1, automatic test system 10 for testing an electronic device under test (DUT) 12 employs a plurality of precise, 16-bit digital-to analog converters (DACs) 14. The single DAC calibration circuit 16 (described in detail below and in FIG. 2) is connected to receive original digital data from computer interface and data bus fanout 22 over system data bus 18 and to provide adjusted digital data to DACs 14 via module data bus 20 (also referred to as a D/A data bus). 
     Overall control of test system 10 is provided by computer 36, which is connected to computer interface and fanout 22 via system interface circuit 38. System data bus 18 is also connected to provide digital data to pin slice circuit 24, pattern generator 26, timing generator 28, analog circuits 30, formatter 32, and test head 34. Pin slice circuit 24, pattern generator 26, timing generator 28, and analog circuit 30 are all inputted into formatter 32 to provide inputs used in generation of test signals provided to DUT 12 via test head 34. Analog circuits 30 are also directly inputted to test head 34 to provide analog inputs to DUT 12. 
     Referring now to FIG. 2, DAC calibration circuit 16 includes echo RAM 40 (for storing unmodified digital data , control RAM 42 (for storing calibration and circuit operating control signals), gain RAM 44 (for storing gain correction characteristics), and offset RAM 46 (for storing offset correction characteristics), which are all connected to system address bus 48 as well as to system data bus 18. Gain RAM 44 and offset RAM 46 are connected to provide gain and offset correction characteristics (16-bit words), respectively, to multiplier/accumulator circuit (MAC) 58 to modify respective digital data provided directly to MAC 58 over system data bus 18. State machine 60 is inputted with an output from control RAM 42 and with signals on data bus control lines 64 and provides control of MAC 58, which is also controlled by control signals provided directly from control RAM 42. The output of MAC 58 is one of the inputs to output multiplexer 54, the output of which is provided at module data base 20. Output multiplexer 54 is controlled by an output of state machine 60 and an output of control RAM 42. System data bus 18 is also connected to the input of output multiplexer 54 (to permit bypassing the MAC calibration procedure), as well as the address bus 48 to send address information to DACs 14. 
     Read back multiplexer 52 is connected to selectively connect the output of echo RAM 40, the output of last value read back register 56, or data on module data bus 20 to system data bus 18 under control of control signals from control RAM 42. 
     OPERATION 
     In operation automatic test system 10 provides digital test patterns generated by pattern generator 26 to DUT 12 and compares outputs with expected outputs. Sixteen-bit DACs 14 are used to provide precise outputs (accurate to 100 μ volts to analog circuit 30, which in turn provides analog outputs used by timing generator 28, formatter 32, and test head 34. 
     Depending on the control data stored at the addresses in control RAM 42 after power up initialization sequence, DAC calibration circuit 16 is used in two modes: as a normal data bus or as a data modification system. When DAC calibration circuit 16 is operating as a normal data bus, the data, address, and control signals are simply buffered and then sent to DACs 14. When DAC calibration circuit 16 is operating as a data modification system, data being input via system data bus 18 is manipulated by MAC 58 according to the function y=mx+b, where y is the value of manipulated data that is outputted to DACs 14, x is the value of the original data, m is the gain correction characteristic stored in gain RAM 44 for the DAC 14 being addressed, and b is the offset correction characteristic stored in offset RAM 46 for the DAC 14 being addressed. In either mode the digital data is sent to a respective DAC 14 after that DAC&#39;s address has been sent over the system address bus. 
     The gain and offset correction characteristics are determined and stored during system initialization, using a system analog-to-digital converter (ADC) and analog multiplexer switch matrix (both not shown) to measure responses of DACs 14 when providing voltages related to the range of voltages they are to provide during actual circuit testing. Referring to FIG. 3, when calibrating DACs 14, computer 36 generates a list of DACs 14 to be calibrated, generates structures that include specific conditions and data points used to calibrate individual DACs 14 (including maximum and minimum input values for calibration), and calibrates the system ADC for zero offset. Each DAC 14 to be calibrated is then calibrated in turn. The offset correction value in offset RAM 46 is set to 0.0 volt, and the gain correction value in gain RAM 44 is set to 1.0. DAC 14 is then provided over module data bus 20 with a minimum digital value relating to a range of values that DAC 14 is expected to receive during testing (&#34;MIN&#34;), and its resulting analog output is measured; this value is labeled &#34;y0&#34;. DAC 14 is then set to a maximum expected value relating to the range of expected values (&#34;MAX&#34;), and its output is measured; this value is labeled &#34;yf&#34;. The gain error is equal to (yf-y0)/(MAX-MIN). The reciprocal of the gain error is the gain correction characteristic m, which is stored at the address in gain RAM 44 corresponding to this DAC 14. The offset correction characteristic is set equal to y0 * m and is stored in offset RAM 46 at the same address. The offset and gain values are verified by using them to modify digital data that are in the range of expected values and are inputted on system data bus 18. The resulting analog outputs are measured by the system ADC and compared with the unmodified digital data to see if the differences between the two are within acceptable limits. If the differences are within acceptable limits, the next DAC 14 is calibrated. If the differences are greater than acceptable limits, a fine calibration procedure is performed. Determinations are made as to whether y or m or both need fine calibration; if there are unacceptable differences in the lower part of the range, where m has little effect, then b should be finely calibrated; if there are unacceptable differences in the upper part of the range, where m has greater effect, then m should be finely calibrated; if there are differences in both parts of the range, both are finely calibrated, b first, then m. In doing each fine calibration, the b or m value is individually incremented or decremented, and each new m or b value is tested with a plurality of unmodified data within the range of expected values. The resulting outputs are compared with unmodified data to see if the new b or m value results in differences between input and output that are within acceptable limits. If the differences are still outside limits but are getting smaller, the b or m value is stepped again in the same direction as the last step. If the differences are larger than for the last b or m value, the new b or m value is stepped in the other direction. If the sign of the differences changes, then the direction is reversed, and the step size is decreased. 
     This calibration procedure is employed for each DAC 14 to be calibrated using MAX and MIN values relating to the range of expected digital values to be received by a particular DAC 14. 
     Appropriate control signals for causing state machine 60 and MAC 58 to perform the y=mx+b function are loaded in control RAM 42 during power-up initialization sequence. Control signals to bypass the MAC calibration method are loaded into RAM 42 at addresses relating to DACs 14 that will receive unmodified digital data in the normal data bus mode. 
     During a circuit testing procedure, DACs 14 are set by computer 36 according to digital values provided on system data bus 18 to DAC calibration circuit 16. When calibration circuit 16 receives a digital signal for a DAC 14 having gain and offset correction values stored in the associated address in RAMs 44, 46, control signals at the same address in control RAM 42 cause the value of the original digital signal (x) to be multiplied by the gain correction characteristic (m) in gain RAM 44 and to be added to the offset correction characteristic (b) in offset RAM 46. The multiplication and addition are performed in MAC 58 under the control of control signals from control RAM 42 and state machine 60, which has 16 states. The output is provided through output multiplexer 54 to module data bus 20. As hardwired logic is employed to perform the simple multiplication and addition, the digital data is corrected and quickly provided to the respective DAC 14 at data bus speed. The analog signal provided by DAC 14 corresponds to the original data, as the data modification compensated for gain and offset errors of the DAC. When calibration circuit 16 receives a digital signal to be sent unmodified to its respective DAC, the control signals stored in RAM 42 cause the data to be sent unmodified through output multiplexer 54. 
     All original data provided on system data bus 18 is stored in echo RAM 40, whether it is to be modified or not by calibration circuit 16. If computer 36 needs to read back the digital data sent out by it, the data is read back from echo RAM 40 through read back multiplexer 52 as specified by control RAM 42. If computer 36 needs to read back the digital data actually sent to DACs 14, module data bus 20 is connected through read back multiplexer 52. To read a particular digital number that has just been modified, the number stored in register 56 is sent through read back multiplexer 52. 
     OTHER EMBODIMENTS 
     Other embodiments of the invention are within the scope of the following claims.