DIGITAL-TO-ANALOG CONVERTING APPARATUS EQUIPPED WITH CALIBRATING FUNCTION

Abstract: In D/A-converting apparatus which obtains a converted analog signal at its output terminal (11) by selectively yielding a current or currents from one or more current sources (2₁- 2 k+m ) in accordance with an input digital signal, the current sources are selectively actuated to output the currents and an error in the current of each selected current source is obtained from the output derived at the output terminal in response to the outputting of the current. From the current error of each current source is computed a final error corresponding to each input digital signal and corrected data ccrresponding to the final error is stored in a corrected data memory (31), which is read out by the input digital signal. The output thus read out is converted into an analog signal, whereby a correct convert­ ed output is obtained.

Description: DIGITAL-TO-ANALOG CONVERTING APPARATUS EQUIPPED WITH CALIBRATING FUNCTION BACKGROUND OF THE INVENTION The present invention relates to a digitalto-analog (hereinafter referred to as D/A) converting apparatus which permits conversion of a digital signal of many bits into an analog signal with high accuracy. A known D/A converter is of the type in which a plurality of current sources are provided for generating binary weighted currents and, in accordance with an input digital signal, the current sources of the binary-weighted currents are controlled by the corresponding binary bits of the input digital signal to permit or cut off the supply of the binary-weighted currents and then the output currents are added together, thereby to obtain an analog converted output. In such a D/A converting apparatus, when the number of bits of the digital signal to be converted is large, the currents of the current sources corresponding to the least significant bit and the most significant bit of the digital signal markedly differ, introducing difficulty in constructing the current source of the most significant bit which yields a current of an error equal to or smaller than that of the current of the current source corresponding to the least significant bit. To avoid this, it is a general practice in the prior art to convert a plurality of high-order bits of the input digital signal, including the most significant bit, into decimal form, to prepare a plurality of constant current sources for the high-order bits each of which generates a current corresponding to the least significant one of the high-order bits, and to simultaneously output currents from the high-order bit constant-current sources of the same number as the converted decimal number. With this method, it is possible to make an error design advantageous to achieving high-precision D/A conversion and to decrease a spike noise, i.e. what is called glitch, which is generated during switching of the input digital signal. With this method, however, the current value of the high-order bit current source is extremely larger than the current value of the current source corresponding to the least significant bit. Consequently, high precision is needed and it is difficult to hold the current ratio of each current source to the others constant, resulting in degraded linearity of the conversion characteristic. Adjustment for making the current ratio as predetermined is troublesome and time-consuming and, in addition, this adjustment is often required for each ambient temperature change or secular change. SUMMARY OF THE INVENTION It is therefore an object of the present invention to provide a D/A converting apparatus which is capable of converting an input digital signal of many bits into an analog signal with high accuracy and equipped with a conversion characteristic of high linearity without necessitating the use of parts which are excellent in terms of temperature coefficients and secular change. Another object of the present invention is to provide a D/A converting apparatus which is capable of automatically calibrating relative errors of currents of a plurality of current sources and excellent in linearity of the conversion characteristic. Yet another object of the present invention is to provide a D/A converting apparatus which is capable of detecting a current error of a current source by a relatively simple-structured and inexpensive error detecting section. According to the present invention, in a D/A converting mode of a D/A converting apparatus, high-order bits of an input digital signal are converted into analog signals using a plurality of equally weighted current sources for the high-order bits and the remaining bits in the input digital signal are converted into analog signals using a plurality of binary-weighted current sources for low-order bits as is done in the conventional D/A converter, while, in a calibrating mode, at least one reference current source is actuated by selection and cut off by nonselection at least once, and current sources, including at least one current source to be calibrated, are selectively controlled, and then a difference is detected between analog outputs obtained during selection and nonselection of the reference current source, thereby to obtain a current error of the current source to be calibrated. From the current error thus obtained in respect of each high-order bit current source is computed a final error corresponding to each input digital value and the input digital signal is corrected on the basis of the final error so that a correct analog signal may be obtained. One of the high-order bit current sources may be used as the reference current source, on the basis of which the currents of the other high-order bit current sources are calibrated one by one. In this case, during selection of the reference current source the current source to be calibrated is nonselected and vice versa. For the calibration of the low-order bit current sources, one of the high-order bit current sources is used as a reference current source and during selection of the reference current source a current source to be calibrated is selected and during nonselection of the reference current source the current source to be calibrated and the current sources for the low-order bits more significant than it are selected. In this way, the difference between the analog converted outputs obtained during selection and nonselection of the reference current source is reduced, and this difference is converted by an A/D converter into a digital signal.. As the A/D converter can be used a simplestructured one. The input digital signal is corrected in a digital manner on the basis of the final error and the corrected digital signal is converted into analog form. Alternatively, a correction analog signal corresponding to the input digital signal is generated and added to the converted analog signal, thus obtaining a correct analog signal. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram showing a conventional D/A converting apparatus; Fig. 2 is a diagram showing an example of the correspondence of each bit of an input digital signal to each current source; Fig. 3 is a diagram showing the relationship between high-order bits of the input digital signal and high-order bit current sources; Fig. 4A is a diagram showing an example of current error of each of the high-order bit current sources; Fig. 4B shows errors for the respective high-order 4-bit signals calculated based on Figs. 3 and 4A; Fig. 5 is a block diagram illustrating an example of the D/A converting apparatus of the present invention; Figs. 6A and 6B are diagrams showing the relationship between each bit of the input digital signal and the current of each current source; ; Fig. 7 is a flowchart showing an example of the operation of the apparatus of the present invention; Fig. 8 is a flowchart showing an example of the operation of the converting apparatus df the present invention during adjustment of the offset current (a first step); Figs. 9A and 9B are timing charts showing examples of voltages produced at the input and the output side of a high-pass filter 24 during the offset current adjustment; Figs. 10A to 10D are diagrams showing an example of the relationship between current source selection and timing during detection of an error of each high-order bit current source (a second step); Figs. 11A and 11B are timing charts showing examples of voltages yielded at the input and the output side of the high-pass filter 24 during detection of an error of each high-order current source; ; Fig. 12 is a flowchart illustrating an example of the operation during detection of the current error of each high-order bit current source; Figs. 13A to 13C are diagrams showing examples of the relationship between current source selection and timing during detection of the current error of each intermediate bit current sources; Figs. 14A to 14C are timing charts showing examples of voltages yielded at the input and the output side of the high-pass filter 24 during detection of a current error of each intermediate bit current source; Fig. 15 is a flowchart illustrating an example of the operation during the current error detection of the intermediate bit currents (a third step); Fig. 16 is a circuit diagram illustrating another example of an error detecting section 16; Fig. 17 is a circuit diagram illustrating another example of the error detecting section 16; ; Fig. 18 is a circuit diagram illustrating an example in which a subtractor is provided at the input side of the error detecting section 16; Fig. 19 is a diagram showing an example of the contents of a code converter 12; Fig. 20 is a diagram showing the contents of the code converter 12 in error detection processing; Fig. 21 is a flowchart illustrating an example of the procedure for error optimizing processing; Fig. 22 is a diagram showing the contents of the code converter 12 after the error optimizing processing; Fig. 23 is a block diagram illustrating another example in which the input/output relationship of the code converting section 17 is made changeable; and Fig. 24 is a circuit diagram illustrating an example of means for correcting a gain error of an interverting amplifier 22. DESCRIPTION OF THE PREFERRED EMBODIMENTS For a better understanding of the present invention, a description will be given first of a conventional D/A converter. Fig. 1 illustrates an example of the arrangement of a conventional high precision D/A converter. Bit signals B1 to B and Bn+1 to B n+m of a digital signal of parallel n bits are provided to digital signal input terminals 11 to 1n and 1n+1 to 1n+m, respectively. The digital signals B1 to Bn and Bn+1 to Bn+m are binary-weighted in such a manner that each of the analog output voltages, which are each derived at an analog output terminal 11 upon each application of the input bit signal, may be one half the analog voltage that is produced at the analog output terminal 11 corresponding to the adjacent higher order bit signal. The most significant bit (hereinafter referred to as MSB) signal B1 to the signal B are applied to a code n converting section 12 for conversion into decimal-weighted signals. For example, in the case of code-converting four bits of high-order bit signals B1 to B4, the code converting section 12, which has 15 output terminals of the same weight, performs such a code conversion that it produces an output at one or more of the 15 output terminals in accordance with the input signals B1 to B4. By k (k 2 - 1) outputs of the code converter 12, current switches 31 to 3k are controlled and current switches 3k+1 to 3k+m are controlled by the digital signals Bn+1 to Bn+m Constant-current sources 21 to 2k yield constant currents of the same weight and constant-current sources 2k+1 to 2k+m produce binary-weighted constant currents whose values are 1 4 , 2-m 2 times the value of the output current of one of the constant-current sources 21 to 2k Output currents I1 to Ik and 1k+1 to Ik+m of the constant-current sources 21 to 2k and 2k+1 to 2k+m are supplied to an adder 13 in accordance with the control state of the current switches 31 to 3k and 3k+1 to 3k+m' and the output of the adder 13 is provided to the output terminal 11. The constant-current sources 21 to 2k and 2k+1 to 2k+m are supplied with an operating constant voltage from a constant-voltage source 14. Accordingly, in the case where the four high-order bits of the input digital signal B1 to B18 are converted by the code converting section 12 into a decimal number and the current switches corresponding to the binary numbers of the fourteen low-order bits B5 to B18 are controlled, that is, in the case where k = 15, n = 4 and m = 14, the bits B1 to B18 of the input digital signal and the constant-current sources 21 to 229 bear such a relationship as shown in Fig. 2. The high-order bits B1 to B4 are made to correspond to the constant-current sources 21 to 215, which are selected by the outputs of the code converting section 12 corresponding to the numeric value of the decimal number into which the binary number of the high-order bits B1 to B4 is converted. That is to say, as shown in Fig. 3, when a 4-bit binary signal "0001" corresponding to a decimal 1 is applied to the code converter 12, only the current switch 315 is turned ON to output a current from the constant-current source 215 alone; when a 4-bit binary signal "0010" corresponding to a decimal 2 is input, two current switches 3 and 315 are turned ON to output currents from the constant-current sources 214 and and when "0011" is input, since the corresponding decimal number is 3, three current switches 313 to 315 are turned ON to provide currents from the constant-current sources 213 to 215. In this way, currents are provided from the constant-current sources of the number equal to the numeric value of the decimal number into which the input high-order 4-bit signal is converted. In contrast thereto, the low-order bits B5 to B18 have one-to-one correspondence to the constant-current sources 216 to 229 and currents are output from only the constant-current sources corresponding to the bits being input. Those currents selectively designated in accordance with the input digital signal as explained above are summed up by a summing amplifier 13, which produces at the output terminal 11 a voltage corresponding to the sum of those currents. The prior art D/A converter also comprises an offset current source 19 which produces an offset current Iof opposite in polarity to those currents from the constant-current sources 21 to k+m- With such an arrangement as described above, the current values of the constant-current sources 21 to 2k corresponding to the high-order bits of the input digital signal to be converted need not be made so large and, consequently, the accuracy of the current values can be raised relatively high. This facilitates high precision digital-to-analog conversion and reduces the amplitude of what is called a glitch, that is, a spike-shaped noise which occurs when input digital signals are changed over. Incidentally, the linearity of the conversion characteristic of this kind of D/A converter is dependent on the current ratios of current sources relative to one another. For high precision D/A conversion, a complex, highly accurate additional adjusting circuit is needed and, upon each occurrence of an ambient temperature change or secular change, time-consuming readjustment is required, resulting in increased maintenance costs. In this prior art D/A converter, the code converting section 12 is constructed on the wired-logic basis and the relationship between the input high-order bits B1 to B4 of the digital input and the selected output terminals for providing outputs is initially fixed as shown in Fig. 3 and cannot be changed. In connection with the current values I1 to Ik of the constant-current sources 21 to 2k their errors can be reduced more easily than in the case of binary-weighting them, but the current value of each constant-current source may still;contain some errors. This introduces the likelihood of error variations such that the error of the converted output is markedly large for a certain input digital signal but small for another input digital signal. Let it be assumed, for example, that the error for each of the current values of the constant-current sources 21 to 28 is +a and that the error for each of the current values of the constant-current sources 29 to 215 is -a as shown in Fig. 4A. In this case, the error of the converted output for the digital input of the high-order bits B1 to B4 is 0 when the input high-order bits B1, B2, B3 and B4 are "1110", and when the bits B1, B2, B3 and B4 are "0111", the error is -7a as shown in Fig. 4B. In this way, the conversion errors undergo substantial changes in accordance with the values of the input high-order bits. In this example, the error is large for input digital values close to the value "1000", and the error decreases as the input digital value approaches "0001" or "1111" from "1000". Fig. 5 illustrates an embodiment of the present invention, in which the parts corresponding to those in Fig. 1 are identified by the same reference numerals. The arrangement of this embodiment is divided into four main blocks, i.e. a D/A converting section 15 for converting an error-corrected signal into a corresponding analog voltage, an error detecting section 16 for detecting an error component of each current source from a voltage derived at the output terminal 11 during an automatic calibrating operation, a code converting section 17 and a digital controller 18 for computing error-corrected data, for controlling the respective parts in the apparatus and so forth. A detailed description will be given of each part of the illustrated arrangement. The D/A converting section 15 includes current sources similar to those 21 to 2k and 2k+1 to 2k+m used in Fig. 1 and correcting current sources 2a and 2b and an offset current source 19 for setting up a range of converted outputs in either polarity. The D/A converting section 15 is basically the same as that shown in Fig. 1. The correcting current sources 2a and 2b are to make a positive correction for correcting an error that cannot be fully covered by a digital correcting operation, and these current sources output currents Ia and Ib, respectively. The currents Ia and Ib of the current sources 2a and 2b are selectively controlled by current switches 3a and 3b for input to a summing amplifier 13. During automatic calibration a switching circuit 21 is turned ON, through which the analog output at the output terminal 11 is applied to the error detecting section 16. The switching circuit 21 is held in the OFF state during normal D/A converting operation. According to the type of an instrument connected to the output terminal 11, the switching circuit 21 may be dispensed with and the output terminal 11 is connected directly to the error detecting section 16. The output of the switching circuit 21 is provided to an inverting amplifier of a gain 1 and a switching circuit 23. The switching circuit 23 selects one of its two inputs and supplies the selected input to a high-pass filter 24 or shorts its input side to a zero potential. The output of the high-pass filter 24 is converted by an A/D converter 25 into a digital signal, which is provided to a microcomputer 26 of the digital controller 18. The code converting section 17 comprises a binary-decimal code converter 12 and a switching circuit 27 which selectively supplies the code converter 12 with a specification code sent from the microcomputer 26 during automatic calibration and a specification code sent during normal operation of a D/A converter, e.g. the high-order bits B1 to B4. In the digital controller 18, for example, the microcomputer 26 performs control of the procedure of automatic calibration, an operation for computing error correction values, control of bus lines, control of each switching circuit and so forth. The control procedures are stored in a program memory in the microcomputer 26 though not shown. The detected error values are once stored in a storage area of a read-write memory 28 and, on the basis of the stored error values, corrected values respectively corresponding to all the possible bit patterns of the high-order bits B1 to Bn of the digital inputs are obtained by computation. The corrected values thus obtained have the same bit length as that of input digital signals, i.e. (n+m) bits and are stored in a corrected data memory 31. The lower-order data Bn+1 to Bn+m in a corrected value read out from the corrected data memory 31 and the lower- order bits Bn+1 to Bn+m of the digital input are added by an adder 32. The digital input signals at the input terminals 11 to 1 are input via a digital input circuit 33. Incidentally, all the current sources 21 to 2k+m are to output currents of the same one polarity so that the summing amplifier 13 yields an output of one polarity, for instance, a positive voltage; in order to obtain converted outputs of both polarities, the offset current source 19 is provided which yields a negative voltage at the output of the summing amplifier 13. Also, in the present invention, the offset current source 19 is used when performing automatic calibration. An output offset current value Iof of the offset current source 19 is determined by the output of a correcting D/A converter 34, and hence can be altered as required. Let it be assumed that a binary input digital signal to be D/A converted is, for example, of 18-bit length, i.e.,B1 to B18 as shown in Fig. 6A and n = 4, m = 14 and k = 15. The four high-order bits B1 to B4 are converted by the code converter 12 into a decimal number and, as shown in Fig. 6B, one or more of the currents I1 to I15 of equal weight are output in the same manner as described previously in respect of Fig. 2, and the intermediate bits B5 to B18 each output a corresponding one of binary-weighted currents 116 to I 29 The bits B1 to B corresponding to the currents I to I21 are objects 10 1 21 to be corrected and the currents 122 to I29 corresponding to the low-order bits B11 to B18 are sufficiently linear and need not be corrected. Hereinafter, the bits B1 to B10 may also be called correction bits. In the case where the converter shown in Fig. 5 is in the state of performing D/A conversion and the respective bits (binary) B1 to B18 of a digital input signal are applied to the digital signal input terminals 11 to 118, they are separated by the input circuit 33 into higher-order bits to be corrected i.e. correction bits B1 to B10 and low-order bits B11 to B18 not to be corrected, which are provided to the corrected data memory 31 and the adder 32, respectively. The corrected data memory 31 is addressed by the correction bits B1 to B10 to read out therefrom 18-bit data (corrected value). Of the 18 bits of the data thus read out, 10 higher-order bits B1 to B10 are used as substitutes for the 10 correction bits B1 to B10 provided to the digital signal input terminals 11 to 1 and the four high-order bits B1 to B4 are applied via the switching circuit 27 to the code converter 12 and the six remaining bits B5 to B10 are provided via a data bus 10D to the intermediate current switches 3 to 321 The switching circuit 27 is controlled by the microcomputer 26 via a control line 9a so that during ordinary D/A converting operation it supplies the four-bit input signal i.e. B1 to B4 from the corrected data memory 31 to the code converter 12 and, during calibrating operation, supplies the code converter 12 with a four-bit signal from the microcomputer 26 via an address bus 10A. The output of the code converter 12 is provided to the high-order current switches 31 to 315 (k = 15) as in the case of Fig. 1. The eight low-order bits B11 to B18 in the data read out from the corrected data memory 31 are applied as correction data to the adder 32. The adder 32 adds the low-order eight-bit correction data and the low-order eight-bit data B11 to B18 from the digital input circuit 33 and outputs final low-order data eventually corrected. The final low-order data B11 to B18 are provided via the data bus 10D to the low-order current switches 322 to 329. In the event that the operation result by the adder 32 exceeds eight-bit data length to cause a carry over the range of digital correction, the adder 32 yields an overflow signal, which is applied via the signal line 8a to the positive correction bit switch 3b, allowing the current Ib to be supplied to the summing amplifier 13 from the current source 2b. The current Ib is identical with the current 121 corresponding to the least significant one B10 of the intermediate bits B5 to B10. By the operation described above, there is derived at the analog output terminal 11 an analog signal having its lineaity error corrected, corresponding to the digital input signals at the digital input terminals 11 to 118. The summing amplifier 13 at the final stage is a currentvoltage converter which receives the high-order and low-order currents and correction bit currents and adds them together and then outputs the added result as a voltage. Next, a description will be given of the automatic linearity calibrating operation. The automatic calibrating operation mentioned herein is confined to such a range in which relative errors of the respective current sources of the D/A converter are obtained and corrected values corresponding to high-order bits B1 to B4 of various input digital signals are obtained from the relative errors and stored in the corrected data memory 31. The automatic calibrating operation starts with the application of an automatic calibration command signal to an input terminal 35. Upon starting the automatic calibrating operation, the switching circuit 27 is changed over by the microcomputer 26 via the control line 9a to cut off the signal from the corrected data memory 31 and to supply the code converter 12 with the codes applied from the microcomputer 26 via the address bus 10A. The switching circuit 21 is also controlled by the microcomputer 26 via a control line 9b to be turned ON to input the output voltage at the analog output terminal 11 to the error detecting section 16. By the way, let it be assumed that during the automatic calibrating operation no input digital signals are applied to the digital signal input terminals 11 to 118. The linearity error of the D/A converter is caused by the sum of relative current errors of its built-in current sources selected by the current switches. Therefore, in order to determine an error of each of the currents I1 to I21, it is necessary to selectively actuate the current switches 31 to 321' individually and/or in combination. This can be easily realized by arranging such that, for example, the code converter 12 is provided with another code conversion table which is different from that of Fig. 3 and which is accessed by the microcomputer 26 via the address bus 10A and the switching circuit 27 to read out codes for actuating desired ones of the current switches 31 to 315 The other current switches 316 to 321 can also be arbitrarily designated by the microcomputer 26 via the data bus 10D. The automatic calibration takes place through the following first to fifth steps as shown in Fig. 7. First step S1 The current Iof of the offset current source 19 and eight currents, e.g. 11 to 18 selected from the high-order bit current sources 21 to 215 are output, and the current Iof of the offset current source 19 is adjusted so that the output at the output terminal 11 may be zero. Second step S2 A relative error of each current of the high-order bit current sources 21 to 215 corresponding to the four high-order bits B1 to B4 is detected on the basis of one of their current values. Third step S3 A relative error of each current of the intermediate bit current sources 216 to 221 corresponding to the intermediate bits B5 to B10 is detected on the basis of one of the current values of the high-order bit current sources 21 to 215. In this case, the eight low-order bit currents 122 to 129 are assumed to have sufficient linearity and are not subjected to error detection. Fourth step S4 The relative errors thus obtained are subjected to necessary operations to compute final error values of the respective bit currents, which are stored in the error storage area 29 in Fig. 5. Fifth step S5 Corrected data is prepared on the basis of the data stored in the error storage area 29 and stored in the corrected data memory 31. Sixth step S6 The automatic calibrating operation ends with setting the respective parts in condition for the ordinary operation, i.e. the D/A converting operation. The first step Si starts with calibration of the offset current source 19. The first step S1 is detailed as shown in Fig. 8, wherein, in step S1-1 a suitable data is supplied to the D/A converter 34 to produce an offset current I of of a suitable value from the offset current source 19, at the same time, eight current switches, for example, 31 to 38 corre iiponding to the currents 11 to I8, are turned ON; a O is set in a J register 3 in the central processor (CPU) 20 of the microcomputer 26 in step S1-2; in step S1-3, the switching circuit 21 is turned ON by a control signal on the control line 9b and the switching circuit 23 is set to the side "a", that is, to the side of the switching circuit 21 by a control signal on a control line 9c, whereby proucing a voltage V1 corresponding to 1 2 12 + . + 18 + Zof tin the period T1 shown in Fig. 9A and the output signal V1 of the switching "circuit 21 is provided to the high-pass filter 24; in step S1-4, the lapse of time T1 is checked; after the elapsed time T1, the operation proceeds to step S1-5 in which the switching circuit 23 is set to the side "c" to short the input side of the high-pass filter 24 to a zero potential, starting the period T2; in step S1-6, the content of the J register 30j is incremented by one; in step S1-7, it is checked whether the incremented content of the J register 30j has become m (where m is an integer equal to or larger than zero); if J 78 m, the operation proceeds to step S1-8, in which the lapse of time T2 is checked; and after the elapsed time T2, the operation is returned to step S1-3. When the content of the J register 30j is equal to m in step 51-7, the operation proceeds to step S1-9, in which it is checked whether the time T2 has elapsed; after the elapsed time T2, the switching circuit 23 is set to the side "a", that is, to the output side of the switching circuit 21 in step S1-10 and the period T1 is initiated, supplying the voltage V1 corresponding to the sum of the currents I1 to 18 and Iof to the high-pass filter 24; in step S1-11, a conversion command is applied to the A/D converter 25 from the microcomputer 26 via a control line 9d and the digital value of the voltage V1/2 provided at the output of the converter 25 at that time is fetched into the microcomputer 26; in step S1-12, it is checked whether the period T1 has passed; after the elapsed time T1, in step S1-13, the switching circuit 23 is set to the side "c" to ground the input side of the high-pass filter 24, initiating the period T2; in step S1-14, a conversion command is applied to the A/D converter 25 and the digital value of its output voltage -V1/2 is fetched into the microcomputer 26; in step S1-15, the microcomputer 26 computes a difference V1 between the digital values V1/2 and -V1/2 fetched thereinto in steps Si-li and S1-14; in step S1-16 the microcomputer 26 computes from the difference V1 such an offset current Iof which may satisfy that the sum of the offset current Iof and the currents I1 to 18 becomes zero, and computes corrected data corresponding to this offset current Iof; and, in step S1-17, sets the corrected data in the correcting D/A converter 34 via the data bus 10D. In the foregoing, the current Iof and the currents Ii to 18 have different polarities and if the current Iof and the sum of the currents I1 to 18 have the same absolute value, then the output at the output terminal 11 based on the sum of their values will become zero volt. In the case where these absolute values differ, a voltage V1 is output for the period T1 and V2, which is zero volt, for the period T2 as shown in Fig. 9A and, at the output of the high-pass filter 24, the DC component is cut off, providing a voltage V1/2 for the period T1 and -V1/2 for the period T2 as shown in Fig. 9B. In this case, T1 = T2. The value of m in step S1-7 is necessary for the output of the high-pass filter 24 to become steady-state and, as described later, when no filter is used, the value of m may also be zero. By the output of the correcting D/A converter 34, the output offset current Iof of the offset current source 19 is corrected and the sum of the current Iof and the currents I1 to 18 becomes zero, completing the processing of the first step S1. Incidentally, since the input side of the high-pass filter 24 is grounded in the period T2, the selection of each current source need not be limited specifically to the abovementioned example but may also be effected arbitrarily. In the first step S1 the output of the switching circuit 23 can also be provided directly to the A/D converter 25. In this case, the period T2 is unnecessary and the same correction as described above is carried out by reading out the output in the period T1. Let it be assumed that the A/D converter 25 has no offset voltage in this case. Also it is possible to perform the calibration of the offset current 1of in the time interval between the second and third steps S2 and S3. In the second step S2, as described previously, an error of each of the currents I1 to 115 of the high-order current sources 21 to 215 shown in Fig. 6B is detected relative to one of the currents. As depicted in Figs. 6A and 6B, the four high-order bits B1 to B4 on the side of the most significant bit in the input digital signal are converted by the converter 12 to decimal form. Accordingly, in this example, the currents I1 to I15 of the constant-current sources 21 to 215 have the same weight; namely, they are generated by current sources of the same current value. In this case, the relative errors of the equally weighted currents I1 to I15 are detected on the basis of one of them. The switching circuit 23 in Fig. 5 is connected to the side "a" so that it passes therethrough the output of the switching circuit 21 to the high-pass filter 24. In this example, the relative error of each of the currents I1 to 114 is detected on the basis of the current 115 of the current source 215. However, any one of the other currents I to I14 can also be used as the reference current. 1 14 Fig. 10A shows selection and nonselection of the current sources in the periods T1 and T2 in the case of obtaining an error of the current Ii on the basis of the current 115. The current sources 210 to 229 are nonselected for the both periods T1 and T2. Fig. 11A shows an example of potential variations at the analog output terminal 11 in the periods T1 and T2, and Fig. liB the output status of the high-pass filter 24 in this case. Eight currents, in addition to the current Iof' are output in each of the periods T1 and T2. That is, the sum total of the values of eight of the currents Ii to I15 is approximately equal to the offset current Iof in reverse polarities, so that the voltage level during the error detection can be obtained in the vicinity of zero potential. This allows the A/D converter 25 to have a narrow input range, which is advantageous to designing the response speed of the error detecting circuitry equipped with dynamic response. In this system using the error detection method in accordance with Figs. 10A to 10D, the high-pass filter 24 may also be dispensed with. Since the offset current Iof has been adjusted in step S1, in the case of detecting relative errors of the respective currents I1 (see Fig. 10A) through 13 (see Fig. lOB) the outputs V2 at the terminal 11 are substantially zero volt in the respective periods T2; however, when detecting an error in each of the currents 19 (see Fig. 10C) through I14 (see Fig. 10D), the output V2 is not necessarily be zero volt. The output of such a waveform as shown in Fig. 11A is supplied via the switching circuits 21 and 23 to the high-pass filter 24. The output of the high-pass filter 25 is applied to the A/D converter 25 while being retained at a potential AV12 = V1 - V2 as shown in Fig. 11B. The A/D converter 25 converts the potentials of filter outputs V1' and V2' in the periods T1 and T2 into digital values for input to the microcomputer 26. The microcomputer 26 obtains, by computation, the value AV 1-2 corresponding to the deviation of the current I1 detected on the basis of the current 115 and this value is stored as the error value of the current I1 in the error storage area 29 of the memory 28 of the microcomputer 26. A description will be given, with reference to Fig. 12, of an example of the procedure of processing of the second step S2. In step S2-1, the contents J and K of the J register 30j and a K register 30k in the CPU 20 are set to 0 and 1, respectively. In step S2-2, the current switches 31 to 38 are turned ON to output the currents to I In step S2-3, the switching circuit 21 is turned 8' ON and the switching circuit 23 is set to the side "a". In step S2-4, it is checked whether the content k of the K register 30k is smaller than or equal to 8 and, if so, the operation proceeds to step S2-5, in which the current 115 is output and a current Ik (i.e. Ii since k = 1 in this case) is cut off and the period T1 is started. When it is decided in step S2-6 that the period T1 has passed, the current 115 is cut off and the current Ik (I1 in this case) is output in step S2-7, starting the period T2. In step S2-8, the content J of the J register 30j is incremented by one and, in step S2-9, it is checked whether the content J has become equal to m and, if the content J is smaller than m, the end of the period T2 is decided in step S2-10 and the operation returns to step S2-4. In the case where it is decided in step S2-9 that the content J is equal to m, the operation proceeds to step S2-1l, in which it is decided whether the period T2 has elapsed. If so, it is checked in step S2-12 whether k ¯ 8 and, if so, the operation proceeds to step S2-13, in which the current I15 is output and the current Ik (k is still one) is cut off, starting the period T1. . Ata suitable moment in the period T1 the output V1, of the high-pass filter 24 is converted by the A/D converter 25 into a digital value for input into the microcomputer 26 in step S2-14. When the end of the period T1 is decided in step S2-15, the operation proceeds to step S2-16, in which the current 115 is cut off and the current Ik is output, starting the period T2. At a proper moment in the period T2 in step S2-17, the output V2' of the high-pass filter 24 is converted by the A/D converter 25 into digital form for input into the microcomputer 26. In step S2-18, the difference, At1 2 between the digital values V1, and V2, which have been fetched into the microcomputer 26 in steps S2-14 and S2-17 is computed and, in step S2-19, the difference AV1 2 is stored in the error storage area 29. In step S2-20, the content K of the K register 30k is incremented by one and it is checked in step S2-21 whether the content K has reached 15 and, if it is smaller than 15, the operation proceeds to step S2-4, whereby to start the error detection for the current Ik = 2 At this time, as shown in Fig. lOB, the currents 1of' I1 and I3 to 18 are output in the period T1 and, in the period T2, the currents Iof and I1 to 18 are output. In the case where the content K of the K register 30k is 9 or more, for instance, where K = 9, the operation proceeds to step S2-22, in which the current I15 is output and the current 18 is cut off, starting the period T1, and the operation proceeds to step S2-6 and steps S2-7 through S2-11 are carried out in the same manner as in the case of K < 8. Following step S2-11, it is decided in step S2-12 that the content K of the K register 30k is not equal to or smaller than 8, and the operation proceeds to step S2-23, in which the current 115 is output and the current 18 is cut off, which is followed by step S2-14. The subsequent steps are similarly carried out. When errors of the currents I1 to 114 have thus been detected, it is decided in step S2-21 that the content K of the K register 30k is equal to 15, and the processing of the second step S2 is completed. In Figs. 11A and 11B, the periods T1 and T2 are shown to repeat, but it is also possible to put an end to them after one cycle, that is, when m = 1, and to shift to the error detection for the next current source. This also applies to the first step S1. In the third step S3 of Fig. 7 the error detection are carried out for the currents 116 to 121 of the current sources 216 to 221 corresponding to the binary intermediate bits B5 to B10 in Fig. 6A. The switching circuit 23 in Fig. 5 is changed over to supply the output of the switching circuit 21 to the high-pass filter 24 in the period T1 and the output of the inverting amplifier 22 in the period T2. At first, the error detection for the current 116 takes place. The current I16 has a value approximately one half a value of any one of the currents I1 to I15 corresponding to the respective outputs of the code converter 12, and the error of the current 116 is detected relative to one of the high-order bit current sources 21 to 215. In this case, the relative error of the current 116 is detected first in reference to the current 18 and then the relative error of the current I17 is detected in reference to the current I8, and so on; thus, the relative errors of the currents I16 to I21 are detected in descending order. The error of the current 18 is already detected by the error detection of the high-order bit current sources. A description will be given first of the procedure for detecting the error of the current 116 relative to the current 18. Fig. 13A shows the timings and the selection of the current sources. The currents Ig to 115 and 122 to 129 are cut off at all times. In the period T1 the currents Iof and Ii to 18 and, further, I16 the error of which is to be detected are output. Since the current 1of has been calibrated in the first step S1, the sum of the currents 1of and Ii to 18 is zero. Consequently, the output in the period T1 is the current 116 alone (V11 in Fig. 14A). In the period T2 the current 18 is cut off (see Fig. 13A) and the currents Iof, Ii to I7 and I16 are added together, producing at the analog output terminal 11 a voltage Vb1 in Fig. 14A. In Fig. 14A, Va1 is the output potential level at the output terminal 11 when the current (Iof+I1+I2+ . +I8)-I8 is supplied to the summing amplifier 13. The potential level Vb1 is polarity inverted by the inverting amplifier 22 into V21. The voltage V11 corresponds to the current 116, Vai corresponds to -I8, Vbi corresponds to -I8+116 and AV = V11 - V21 corresponds to I16-(I8-I16), i.e. 2116-18; ; the latter indicates a value twice as large as the error value of the current I16 obtained on the basis of the current 18 and the output AV/2 (in Fig. 14B) of the high-pass filter 24 becomes the relative error i.e. I16-I8/2. The A/D converter 25 detects the filter outputs V11' and V21, yielded in the periods T1 and T2, respectively, and provides them to the microcomputer 26, in which an error of the current 116 is obtained by computation and the computation result is stored in the error storage area 29. Fig. 14C shows the potential at the analog output terminal in the case where the currents 18 and 116 are exactly in the ratio of 2:1. In this case, the output of the high-pass filter 24 becomes zero potential, resulting in no error in the current 116 relative to the current 18 Next, the error detection for the current 117 is carried out. Fig. 13B shows the timing of this operation and the selection of the current sources. In the period T1 the currents 1of' I1 to I8 and 117 are output and in the period T2 the currents Iof' I1 to 17, I16 and 117 are output. The potential detected at this time contains the value of the current I16 but since the current 116 has already been subjected to the error detection, its error is known, so that the error of the current 117 alone can be separated. The error thus obtained is similarly stored in the error storage area 29. Fig. 13C shows the timing for detecting an error of the current I21 and the selection of the current sources therefor. In the period T1 the currents Iof, I1 to 18 and I21 are output and in the period 1of' Ii 21 T2 the currents 1of' I1 to I7 and I16 to 121 are output. Furthermore, the currents Ia and Ib of the current sources 2a and 2b for the positive correction bits are also obtained following the above-described error detection procedure for the intermediate bits. The error detection processing procedure of step S3 in Fig. 7 for the currents 116 to I of the intermediate 21 bits is substantially the same as the first and second steps S1 and S2, and hence it will be described in brief with reference to Fig. 15. In step S3-1 the contents of the J register 30j and the K register 30k are set to 0 and 16, respectively, and in step S3-2 the currents Iof and Ii to I7 are output and the switching circuit 21 is turned ON. In step S3-3 the switching circuit 23 is connected to the side "a" and in step S3-4 the currents 18 and Ik (= I16) output. The are output. The currents 116 to 121 except for I are held OFF. This is followed by the period T1. In step S3-6 the current 18 is cut off and the currents 116 to Ik are output (in this case since k is still 16, 116 is output), after which the period T2 starts. In step S3-7 the switching circuit 23 is connected to the side "b" and the content J of the J register 30j is incremented by one in step 53-8 and, if the content J is not equal to m, the operation goes back to step S3-3 at the end of the period T2. If J = the currents 18 and Ik are output upon completion of the period T2 and the output of the high-pass filter 24 is input into the microcomputer 26 and, upon completion of the period T1, the switching circuit 23 is set to the side "b" (step S3-15). In step S3-16 the current 18 is cut off and the currents 116 to Ik are output and in step S3-17 the output of the high-pass filter 24 is input into the microcomputer 26, in which a difference between it and the value fetched in step S3-13 is obtained in step S3-18 and stored in the error storage area 29 in step S3-19. In step S3-20 the content K of the K register 30k is incremented by one and, if not K = 21, then the operation returns to step S3-3. If K = 21, the third step S3 is completed. Incidentally, processing of the first, second and third steps S1, S2 and S3 shown in Figs. 8, 12 and 15, respectively, may be modified in part as follows: The operation proceeds from steps S1-6, S2-8 and S3-8 directly to steps S1-9, S2-11 and S3-11 without deciding in steps S1-7, 52-9 and S3-9 whether J = m; the subtraction in steps S1-15, S2-18 and S3-18 is carried out; it is decided whether J = m; if not J = m, the subtraction result is stored and the operation returns to steps S1-3, S2-4 and S3-3; and if J = m, the mean of the subtraction results obtained so far is obtained and stored as an error in the error storage area 29. Also it is possible in the first, second and third steps S1, S2 and S3 that the outputs of the high-pass filter 24 obtained in respect of all the currents Ii to 121 before the subtracting operation are stored in the storage area 29, which is followed by the subtracting operation. In the manner described above, relative errors of the currents Ii to I15 of the high-order bits current sources and the currents 116 to 121 of the intermediate bit current sources are detected and all stored in the error storage area 29. Next, a description will be given of an example of the procedure for preparing corrected data from the data stored in the error storage area 29 and storing them in the corrected data storage circuit 31. The data to be stored in the corrected data storage circuit 31 are 18-bit corrected data which can produce a correct converted analog output corresponding to the 10 high-order (MSB side) bits B1 to B10, and positive correction bit (Ia) data. In this example, the currents I22 to I29 for the eight low-order bits B11 to B18 in the D/A converting section 15 have sufficient linearity and need not be subjected to error correction; therefore, the corrected data is required for only the 10 high-order bits B1 to B 10. At first, the 10 high-order bits of the digital input are converted on the basis of their error data obtained by the error detecting operation so that their errors may all become negative. In this code conversion, if there is such a digital input that specifies a current source having a positive error, it is converted into a digital value lower-order than the digital input and a combination which causes a negative error for the input is obtained and stored in the correction data storage circuit 31. For instance, in the case where a positive error occurs, 10 bits in which 1 is subtracted from the least significant bit of the 10 high-order bits of the input are stored in the correction data storage circuit 31. If the negative error thus obtained exceeds a low-order eight-bit data area, data which outputs the positive correction bit current source 2a for correcting it on an analog basis is prepared at the same time and stored in the correction data storage circuit 31. In this way, the data for correcting the 10 high-order bits are all within the eight-bit data area, and they are also obtained by computation and stored in the corrected data storage circuit 31 and, during ordinary operation, referred to as integrated correction data. Accordingly, during ordinary operation the correction of one input digital signal can be achieved only by one readout operation of the correction data storage circuit 31 and the adding operation of the adder 32. This permits simplification of the control circuit (the microcomputer 26) and reduction of the corrected data transfer time. Since all the errors are made to become negative, the correction bit current sources for analog correction are all positive in polarity, so that their circuit arrangement and operation are both simple. Moreover, the adder 32 is required to perform an adding operation alone; namely, no subtracting operation is needed. While in the above the correction is described to be performed using the positive correction bit current sources alone, it is also possible to carry out the correction using positive and negative correction bits without involving the code conversion of high-order bits; furthermore, when the error range is narrow, the entire correction can also be effected without using the correction bits, i.e. on the analog basis. Fig. 16 illustrates another example of the error detecting section 16. In this example, a subtractor 37 is employed in place of the high-pass filter 24 in Fig. 5. That is, for the error detection for the currents 116 to I21 of the binary intermediate bits in the third step S3, the difference AV between the analog output voltages corresponding to the periods T1 and T2 is detected instead of measuring the absolute values of these analog output voltages. For such an arrangement, in the subtractor 37, a low resolution D/A converter 38 is provided, by the output of which a predetermined DC component corresponding to, for example, -I8/2 is removed (subtracted) in an adder 39 from the outputs of the switching circuit 23 in the periods T1 and T2. As a result, the outputs of the subtractor 37 can be set within a narrow dynamic range in the vicinity of 0 [V], thereby retaining the voltage difference AV within the allowable input range of the A/D converter 25. The digital value corresponding to the current -I8/2 is set in the D/A converter 38 from the microcomputer 26 via the data bus lOD. The input digital value of the D/A converter 38 is made variable by the microcomputer 26 as required. For instance, instead of controlling the current 115 to output or cut it off in the second step S2, a value corresponding to the current -I15 or zero is set in the D/A converter 38, by which errors of the currents I1 to I15 can be detected on the basis of the analog output corresponding to the current 115. The error detecting section 16 may also be constructed as shown in Fig. 17, which employs a flying capacitor circuit 41 in place of the inverting amplifier 41 in Fig. 5 and dispenses with the high-pass filter 24. The circuit arrangement of Fig. 17 performs to directly detect the difference between V11 and V21 in the periods T1 and T2 in Fig. 14A in the error detection of the binary intermediate bit currents I16 to 121 in the third step S3. The output side of the flying capacitor circuit 41 is connected to the A/D converter 25. The current switching code patterns in the periods T1 and T2 are generated in the same manner as in the third step S3 In this case, switches SW1 to 5W4 are controlled as follows: In synchronism with the timing of the periods T1 and T2 the switches SW1 and SW2 are turned ON and the switches 5W3 and SW4 OFF at the start of the period T1 and, at the start of the period T2, the switches SW1 and SW2 are turned OFF and the switches SW3 and SW4 OFF. In the period T1 the voltage V11 is applied to a capacitor 42 to charge it up to V11 with respect to the ground potential and, in the period T2, the grounding side of the capacitor 42 is floated by the turning OFF of the switch 5W2 and, at the same time, biased with the voltage Vbl via the switch 5W3. Since Vbi = -V21 as shown in Fig. 14A, a potential (V11 -V21) is produced and provided via an output buffer 43 to the switching circuit 23. When implementing error detections in accordance with the procedures described, for example, with reference to Figs. 10A to lOD and Fig. 11A, liB, there may happen in some cases that a sum total of current errors in a selected combination of current sources becomes unexpectedly large, resulting in that the input to the A/D converter 25 during the periods T1 and/or T2 falls outside the conversion range of the A/D converter 25. In order to avoid this it is possible to connect a subtractor 44 to the input side of the error detecting section 16 as shown in Fig. 18. The arrangement of Fig. 18 is applied to the case where the input voltage to the A/D converter 25 falls outside its range of conversion in the first, second and third steps S1, S2 and S3. The output of a D/A converter 45, which has been calibrated with reference to one of the currents I1 to I21, is subtracted by an adder 46 from the output of the switching circuit 21 and the subtracted output is provided to the inverting amplifier 22 and the switching circuit 23. In the event that the A/D converter 25 is supplied with a voltage exceeding its range of conversion owing to a large error during error detection of each of the output currents I1 to I21, a suitable value is set in a D/A converter 45 via the data bus lOD from the microcomputer 26 during the period T1 or T2 so that the input voltage to the A/D converter 25 may fall inside its range of conversion. The converted output value of the A/D converter 25 and the set value of the D/A converter 45 are added together in the microcomputer 26 and the added value is handled as converted data of the A/D converter 25. In this way, the range of conversion of the A/D converter 25 can be enlarged apparently. In Fig. 18 the high-pass filter 24 may be substituted with the subtractor 37 shown in Fig. 16. It is preferable to arrange the code converting section 17 so that its input and output can freely be changed. For instance, as illustrated in Fig. 19, a read/write memory is provided as the code converter 12, in which an address code (B1 ... B ) input thereto is n decoded and any one of addresses A1 to Ak is selected. The addresses A1 to A are each composed of k bits b1 to 1 k 1 bk as shown in Fig. 19; namely, the read/write memory is a one-word k-bit memory. When the selected address is read out, the contents of its k bits are provided as outputs b1 to bk, which are applied as control signals to the current switches 31 to 3kt respectively. Such an arrangement is made that a desired one of the current sources 21 to 2k is selected by the microcomputer 26 to supply its current to the output terminal 11. To this end, in the embodiment of Fig. 5, a multiplexer is provided as the switching circuit 27 at the input side of the code converter 12 and the multiplexer 27 is controlled by the microcomputer 26 via the control line 9a so that the high-order bits B1 to B in the output n of the corrected data storage circuit 31 are selectively applied as the address code "B1 ... Bnll to the code converter 12. Alternatively, data "C1 ... Cn" is input into the multiplexer 27 via the address bus 10A from the microcomputer 26 and provided as the address code "B1 Bn" via the multiplexer 27 to the code converter 12. Further, in this embodiment, a read/write control signal and write data "D1 ... Dk" provided to the code converter 12 from the microcomputer 26 via a control line 9g and the data bus lOD, respectively, by which the data "D1 D Dk is written in respective bits (memory cells) b1 to bk at a location specified by the address "B1 ... Bnll. The write operation may also be carried out so that the high-order bit current sources 21 to 2k can be selected one by one. That is to say, in the case where the high-order bits converted by the code converter 12 are four bits B1 to B4 as in the aforementioned example, the data "D1 ... D Dk" is stored in one of the addresses A1 to A15 of the data converter 12 specified by the address code "B1 * B4" in such a manner that only one bit, which differs with the addresses A1 to A15, represents a 1; for example, only the bit b15 goes to a 1 in the address A1 and only the bit b14 in the address A2. The microcomputer 26 specifies these addresses via the address bus 10A and, at the same time, provides the corresponding data " Dk" via the data bus lOD to the code converter 12 for writing therein the data. After this, the multiplexer 27 is held in the state in which to select the input thereto from the side "A" and the address data "C1 ... C " is provided from the n microcomputer 26 via the address bus 10A to the code converter 12 to read out its one address. By the read-out output one of the high-order bit current sources 21 to 215 is selected and its current is output. In the error detecting section 16, the switching circuit 21 is turned ON to connect the switching circuit 23 to the side "a" and the output analog signal derived at the output terminal 11 is converted by the A/D converter 25 to a digital signal, the converted value of which is input via the data bus 10D into the microcomputer 26. In this way, the high-order bit current sources 21 to 2k are selected one by one to detect their current values and their errors are detected and then the input/output relation of the code converter 12 is selected on the basis of the detected errors so that the error may be optimized. The processing therefor is called error optimizing processing. This error optimizing processing is carried out, for example, as shown in Fig. 22. In step the content of the code converter (RAM) 12 is rewritten by the microcomputer 26 as shown in Fig. 21. In step G the content K of the K register 30k is made a 1 and in step its content K is read out and the data "C ... Cn" is applied as an address to the code converter 12 via the multiplexer 27. For instance, in Fig. 21, an address 0001 is provided to turn ON the switch 3k (k = 15) alone, outputting the current 1k (step (!)). In step (9 the current 1k is input as a digital value into the microcomputer 26 via the A/D converter 25. In this case, it is preferable that a value corresponding to the correct current value of the high-order bit current source be set in the subtractor 37 using the embodiment of Fig. 16 and subtracted from the input thereto. An error of the digital value input into the microcomputer 26 is computed relative to a predetermined value and in step the error is stored in an error storage area 47 in the memory 28. In the next step Si, the content K of the K register 30k is decremented by one and it is checked in step (i) whether the new content K agrees with zero. If not, the operation goes back to step (!), in which the new content K of the K register 30k is output as the data "C1 ... Cn" which is provided to the code converter 12. Thereafter the same operation is repeated. In the case where the new content K of the K register 30k coincides with zero in step ), this current error detecting processing (i) is completed, which is followed by the error optimizing processing In the error optimizing processing (f), , for example, in step (g), such a current source is selected that minimizes the error for the digital input when only the most significant one (MSB) of its four high-order bits B1 to B4 is a 1. Namely, in the case of the abovesaid data 1000 with only the most significant one (B1) of the four high-order bits B1 to B4 made a 1, the errors of the high order bit current sources 21 to 215 stored in the error storage area 47 are referred to and eight current sources of smaller errors are selected in a sequential order, starting with the current source of the smallest error. In this case, a combination of current sources is selected so that the sum total of the errors of the currents of the eight selected current sources may be minimum, with their polarity also taken into account. Let it be assumed, for example, that the current sources 21r 23, 25, 27, 29, 211, 213 and 215 have been selected corresponding to the data 1000 in step 10 . Next, the content A of an A register 30a is set to 7 in step í) In step G2 , the current source of the largest error is removed from the eight selected current sources and then such an operation is performed that the error by the sum total of the errors of the currents of the seven remaining current sources, may be minimum. In step 13, the content A of the A register 30a is decremented by one. It is checked in step whether the new content A of the A register 30a is O. If it is not 0, the operation returns to step 0), in which a current source of the largest error is removed from the seven remaining current sources and such an operation is carried out that minimizes the error of the sum of the six remaining current sources. Thereafter the same operation is repeated. In the case where it is decided in step 1S) that the content A of the A register 30a is o, the operation proceeds to step °ss), in which the content A of the A register 30a is set to 8. This is followed by step , in which the current source of the smallest error among the seven remaining current sources is added to the eight current sources selected in step Go and such an operation is carried out that minimizes the error at that time. After this, the content A of the A register 30a is incremented by one in step G7 . In step G8 it is checked whether the content A of the A register 30a has become 16. If it is not 16, the operation returns to step ), , in which a current source of the smallest error among the six remaining current sources is similarly added to the aforesaid nine current sources and an operation is performed so that the overall error may be minimum. Thereafter, similar operations are carried out and when the content A of the A register 30a becomes 16, the error optimizing processing is completed, which is followed by step G9 In step G9 the content of the code converter 12 is rewritten so that the eight current sources selected in step Go corresponding to the bit pattern "1000" of the four high-order bits B1 to B4 are selected, so that the seven, six, ... current sources having remained in step Q are sequentially selected respectively corresponding to the bit patterns of the four high-order bits B1 to B4 resulting from successive subtraction of "1" from the data "1000", and so that the nine, ten, ... current sources added one by one in step Go are sequentially selected respectively corresponding to the bit patterns of the four high-order bits B1 to B4 resulting from successive addition of "1" to the data "1000". As a result of this, the stored contents of the code converter 12 are such, for instance, as shown in Fig. 23. After rewriting the contents of the code converter 12 as described above, the multiplexer 27 is controlled by the microcomputer 26 to select its input side "B", i.e. the output side of the corrected data storage circuit 31. In this way, the code converter 12 is controlled so that the conversion for the high-order bits may yield an optimum error, ensuring to provide high conversion accuracy. As depicted in Fig. 23 in which the parts corresponding to those in Fig. 5 are identified by the same reference numerals, it is also possible to provide a multiplexer 48 at the output side of the code converter 12 and to selectively apply the output of the code converter 12 and the data on the data bus 10D of the microcomputer 26 to the current switches 31 to 3k In such a case, the operation for rewriting the contents of the code converter 12 as shown in Fig. 21 is unnecessary. Consequently, the time for changing the input/output relation of the code converter 12 is reduced by that. Incidentally, in the case of carrying out the error optimizing processing through using the code converter 12 shown in Fig. 19 or 20, the error optimizing processing is performed prior to the first step S1 in Fig. 7. If the inverting amplifier 22 employed in the error detecting section 16 has a gain error, the errors of the current sources cannot be detected correctly. It is therefore preferred to arrange the error detecting section 16 so that the error of the inverting amplifier 22 can automatically calibrated. This automatic calibration can be achieved, for example, by such a circuit arrangement as illustrated in Fig. 24. That is, in the inverting amplifier 22, a negative feedback resistor 52 is connected between the output side and the inverting input side of an operational amplifier 51 and the inverting input side is connected via an input resistor 53 to the output side of the switching circuit 21, the non-inverting input side of the operational amplifier 51 being grounded. During the operation of calibrating the gain of the inverting amplifier 22 the switching circuit 21 is turned ON by the microcomputer 26 to connect the switching circuit 23 to the side "b". For instance, the current 115 of the high-order bit current source 215 is output and the resulting output at the output terminal 11 is provided to the inverting amplifier 22 and then the converted output of the A/D converter 25 is input into the microcomputer 26. Next, the switching circuit 23 is connected to the side of the contact "a" and the converted output of the A/D converter 25 obtained at that time is input into the microcomputer 26. In the case where the gain of the inverting amplifier 22 is a predetermined value, for example, 1 and contains no error, the converted output values of the A/D converter 25 obtained before and after the switching of the switching circuit 23 are equal to each other. If the gain of the inverting amplifier 22 contains an error, the error can be obtained from the converted values of the A/D converter 25 before and after the switching of the switching circuit 23. The gain error thus obtained is computed by the microcomputer 26 and a correction value corresponding to this error is set in a register 54. The register 54 supplies the correction value to a D/A converter 55, wherein it is converted into an analog signal. The D/A converter 55 is shown to be what is called a multiplying type. The D/A converter 55 is supplied at its reference voltage terminal with the output of the operational amplifier 51 and current switches are controlled corresponding to respective bits of the input correction digital value to output binary-weighted currents from the corresponding current switches. The currents are added together and the added current is converted by a current-voltage converter 56 into a voltage, which is applied via an adding resistor 57 to the inverting input side of the inverting amplifier 22, i.e. the operational amplifier 51. The output of the D/A converter 55 is proportional to the product of the output of the inverting amplifier 22 and the correction digital value from the register 54. When the gain of the inverting amplifier 22 is, for example, too small, the output of the D/A converter 55 is provided to the inverting amplifier 22 to compensate for the shortage of the gain. Conversely, when the gain of the inverting amplifier 22 is too large, the excess of the gain is removed. To perform this, it is preferable to make such an arrangement that the output voltage at the output terminal 11 is subtracted by the subtractor 37 from the input. By such a calibrating operation the gain of the inverting amplifier 22 can be calibrated. This operation may be carried out after the second step S2 in Fig. 7. While in the foregoing the present invention has been described as being applied to the D/A converting apparatus which converts an input digital signal, including its polarity, into an analog signal, the invention is also applicable to such a D/A converting apparatus in which the input digital signal is of only one polarity and the analog converted output is only positive or negative. In this case, the offset current source 19 in Fig. 5 is replaced with a correction current source which corresponds to the current value of one of the high-order bit current sources 21 to 2k and yields a current reverse in polarity from that current. And when the current errors of the high-order current sources 21 to 2k are detected on the basis of the current of the correction current source. This correction current source is used for detecting the errors of the low-order bit current sources, too. It is also possible that the value corresponding to the current of the correction current source is set in a register 38 of the subtractor 37 in the error detecting section 16. Although in the foregoing the input digital signal is corrected by the corrected data storage circuit 31 and the adder 32 in accordance with the current error of the current source, it is also possible to correct the output analog signal. For example, as indicated by the broken line in Fig. 5, correction data (the error component alone) corresponding to each input digital value is prestored in a correction data memory 61 from the microcomputer 26 and, by the input digital signal, the correction data memory 61 is read out, the output of which is converted by a D/A converter 62 into an analog signal for input into the adder 13. As has been described in the foregoing, according to the D/A converting apparatus of the present invention, errors in the current values of the current sources corresponding to high-order bits of an input digital signal are detected and a correct analog output can be obtained which has corrected the errors. In general, it is difficult to prepare a current source which accurately yields a current of a large value at all times; therefore, it has been difficult in the past to obtain a highly accurate converted output. According to the present invention, however, errors can be automatically corrected as described in the foregoing, permitting highly accurate conversion. In order to hold the linearity error of a D/A converter below + 1/2 LSB, it is necessary to reduce the relative error of the current of each current source sufficiently smaller than + 1/2 LSB. This requires the relative error detector to have a wide detecting dynamic range in the case of measuring the absolute value of each current. Since the present invention is adapted so that even if the A/D converter 25 of a narrow dynamic range is used in the error detection, errors can be detected equivalently over a wide voltage range, however, the current error of each current source can be detected with high resolution. As has been described in the foregoing, according to the present invention, errors are detected with high resolution through using a low-precision, simple-structured error detecting section and, by the calibration based on the detected errors, a converted output of excellent linearity can be obtained without involving the use of parts which are particularly excellent in terms of temperature coefficient and secular change. Incidentally, while in the foregoing the currents corresponding to the intermediate bits of the digital input are also calibrated, it is also possible to calibrate only the high-order bits. It will be apparent that many modifications and variations may be effected without departing from the scope of the novel concepts of the present invention.

Claims: WHAT IS CLAIMED IS: 1. D/A converting apparatus equipped with calibrating function, comprising: a code converting section for converting highorder bits of an input digital signal into decimal numbers; a high-order bit converting section for selecting, by the output from the code converting section, a plurality of high-order bit current sources to derive therefrom equally-weighted currents, thereby to convert the high-order bits into analog signals; a low-order bit converting section for selecting, by low-order bits less significant than the high-order bits in the input digital signal, a plurality of corresponding low-order bit current sources to derive therefrom binaryweighted currents, thereby to convert the low-order bits into analog signals; an adder for adding the outputs of the high-order and low-order bit converting sections for output to an output terminal; ; selecting means for desired one cr more of the high-order and/or low-order bit current sources; current source switching means for selecting one or more current sources, including at least a reference current source to be used as the basis for an error detection and, at the same time, selecting one or more current sources, including at least a current source to be detected; difference detecting means for detecting a difference between an analog signal derive at the output terminal during selection of the reference current source and an analog signal derived at the output terminal during nonselection of the reference current source, thereby to obtain an error in the current of the current source to be calibrated; ; error computing means for computing a final error corresponding to the digital value of each input digital signal from the current error obtained for each of the high-order bit current sources; and correcting means for correcting the input digital signal on the basis of the final error to derive a correct analog converted output at the output terminal. 2. D/A converting apparatus according to claim 1 wherein the reference current source is one of the high-order bit current sources; the current source to be calibrated is one of the low-order bit current sources; and the current source switching means is means for selecting the current source to be calibrated during selection of the reference current source and, during nonselection of the reference current source, selecting the current source to be calibrated and the low-order bit current sources for all low-order bits more significant than the low-order bit corresponding to the current source to be calibrated the means including subtracting means for subtracting a current of the same value as the current value of the reference current source from the analog converted outputs derived at the output terminal during selection and nonselection of the reference current source. 3. D/A converting apparatus according to claim 2 wherein an offset current source is provided for yielding a current of a magnitude equal to the sum of the currents of about one-half of the high-order bit current sources; and the subtracting means is means for selecting the offset current source and, at the same time, selecting two or more of the high-order bit current sources so that the sum of the current of the reference current source and the two or more of the high-order bit current sources may become equal to the current of the offset current source. 4. D/A converting apparatus according to claim 1 wherein a current source is provided, as the reference current source, which yields a current of the same magnitude of the current of one of the high-order bit current sources and reverse in polarity therefrom; the current source to be calibrated is one of the low-order bit current sources; and the current source switching means is means for selecting the current source to be calibrated and the low-order bit current sources for all low-order bits more significant than the low-order bit corresponding to the current source to be calibrated during selection of the reference current source and, during nonselection of the reference current source, selecting the current to be calibrated. 5. D/A converting apparatus according to claim 1 wherein the reference current source is one of the high-order bit current sources; the current source to be calibrated is one of the high-order bit current sources except the reference current source; and the current source switching means is means for making the current source to be calibrated during selection of the reference current source and, during nonselection of the reference current source, selecting the current source to be calibrated. 6. D/A converting apparatus according to claim 5 wherein an offset current source is provided for yielding a current equal in magnitude to the sum of the currents of about one-half of the high-order bit current sources and reverse in polarity therefrom; and the current source switching means selects, during selection of the reference current source, the offset current source and one or more of the high-order bit current sources except the current source to be calibrated, the sum of the currents of the selected high-order bit current source or sources and the reference current source being equal in magnitude to the current of the offset current source, and, during nonselection of the reference current source, selects the same current source or sources selected during selection of the offset current source and the reference current source. 7. D/A converting apparatus according to claim 1 wherein the correcting means is digital correcting means for precorrecting the input digital signal so as to obtain a correct analog converted output at the output terminal for each input digital value and supplying high-order and low-order bits of the corrected digital signal to the high-order bit converting section and the low-order bit converting section, respectively. 8. D/A converting apparatus according to claim 7 wherein the digital correcting means comprises a corrected data memory read out by bits to be corrected corresponding to that current source of the input digital signal which may become the object of calibration and supplying highorder bits read out from the corrected data memory to the code converting section, and an adder for adding the remaining low-order bits read out from the corrected data memory and the bits of the input digital signal except the bit to be calibrated and supplying the added output to the low-order bit converting section. 9. D/A converting apparatus according to claim 3 wherein the current source switching means includes means which uses, as the current source to be calibrated, each high-order bit current source except the reference current source, does not select the current source to be calibrated during selection of the reference current source and selects the current source to be calibrated during nonselection of the reference current source. 10. D/A converting apparatus according to any one of claims 2 to 6 or 9 wherein the correcting means is digital correcting means for precorrecting the input digital signal so as to obtain a correct analog converted output at the output terminal for each input digital value and supplying high-order and low-order bits of the corrected digital signal to the high-order bit converting section and the low-order bit converting section, respectively. 11. D/A converting apparatus according to claim 1 wherein the correcting means is means for reading out a corrected data memory by the input digital signal and converting the read out data by a D/A converter into a corrected analog signal for input into the adder. 12. D/A converting apparatus according to claim 1 wherein the difference converting means comprises DC cutting off means, an inverting amplifier, switching means for selectively supplying the inverted and non-inverted outputs of the inverting amplifier to the DC cutting off means, A/D converting means for converting the output of the DC cutting off means into a digital signal, and means for obtaining, as a current error, a difference between the value of the converted digital signal during selection of the reference current source and the value of the converted digital signal during nonselection of the reference current source. 13. D/A converting apparatus according to any one of claims 2 to 9 or 11 wherein the difference detecting means comprises DC cutting off means, an inverting amplifier for polarity inverting the analog signal at the output terminal, switching means for selectively supplying the inverted output of the inverting amplifier and a non-invert input thereto to the DC cutting off means, A/D converting means for converting the output of the DC cutting off means into a digital signal, and means for obtaining a difference between the value of the converted digital signal during selection of the reference current source and the value of the converted digital signal during nonselection of the reference current source. 14. D/A converting apparatus according to claim 13 wherein the switching means includes means for supplying the analog signal at the output terminal to the DC cutting off means during selection of the reference current source and grounding the input side of the DC cutting off means during nonselection of the reference current source. 15. D/A converting apparatus according to claim 13 wherein the DC cutting off means comprises means for generating an ideal signal corresponding to an ideal current value of the current source to be calibrated, and subtracting means for yielding a difference between the ideal signal and the output of the switching means. 16. D/A converting apparatus according to claim 13 wherein DC cutting off means is a high-pass filter connected between the output side of the switching means and the A/D converting means. 17. D/A converting apparatus according to any one of claims 1 to 9, 11 and 12 which includes analog signal generating means for generating an analog signal in accordance with the set value, a subtractor for obtaining a difference between the analog signal and the analog signal at the output terminal and supplying the difference to the difference detecting means, and means for adding the set value of the analog signal generating means to the current error. 18. D/A converting apparatus according to any one of claims 1 to 9, 11 and 12 wherein the correcting means is means which is provided with a correction current source of the same polarity as the high-order bit current sources and the low-order bit current sources and, when a final error relative to each input digital value is positive, subtracts 1 from the bit to be calibrated to provide a negative final error and when no correction can be made by the final error, selects the correction current source. 19. D/A converting apparatus according to claim 12 which includes means for selecting one of the current sources and obtaining a difference between the output value of the A/D converting means when the analog signal at the output terminal at that time is applied to the inverting amplifier and the output value of the A/D converting means when the analog signal at the output terminal is not applied to the inverting amplifier, means for obtaining a gain error of the inverting amplifier from the difference between the output values of the A/D converting means, and means for generating an analog signal corresponding to the gain error and supplying the analog signal to the input side of the inverting amplifier to correct its gain error. 20. D/A converting apparatus according to claim 13 which includes means for selecting one of the current sources and obtaining a difference between the output value of the A/D converting means when the analog signal at the output terminal at that time is applied to the inverting amplifier and the output value of the A/D converting means when the analog signal at the output terminal is not applied to the inverting amplifier, means for obtaining a gain error of the inverting amplifier from the difference between the output values of the A/D converting means, and means for generating an analog signal corresponding to the gain error and supplying the analog signal to the input side of the inverting amplifier to correct its gain error. 21. D/A converting apparatus according to claim 1 or 9 which includes error optimizing means for selecting the relationship between the high-order bits of the input digital signal and the output terminal of the code converting section on the basis of current errors of the high-order bit current sources so that the error of the analog output available at the output terminal with respect to the high-order bits of the input digital signal may become optimal, and means for changing the input/output relationship of the code converting section for agreement with the result of optimization obtained by the error optimizing means. 22. D/A converting apparatus according to any one of claims 2 to 9, 11 and 12 which includes error optimizing means for selecting the relationship between the high-order bits of the input digital signal and the output terminal of the code converting section on the basis of current errors of the high-order bit current sources so that the error of the analog output available at the output terminal with respect to the high-order bits of the input digital signal may become optimal, and means for changing the input/output relationship of the code converting section for agreement with the result of optimization obtained by the error optimizing means.

Inventors: NIIJIMA, HIRONOBU, SHIBAYAMA, AKINORI
Applicants: ADVANTEST CORPORATION, NIPPON TELEGRAPH AND TELEPHONE CORPORATION
Application year: 1983
Main classification: H03M1
IPC codes: H03M1, G05B19