U.S. patent application number 14/835110 was filed with the patent office on 2016-05-26 for method of calibrating a sar a/d converter and sar-a/d converter implementing said method.
The applicant listed for this patent is STMICROELECTRONICS S.R.L.. Invention is credited to Carmelo BURGIO, Mauro GIACOMINI.
Application Number | 20160149583 14/835110 |
Document ID | / |
Family ID | 52232332 |
Filed Date | 2016-05-26 |
United States Patent
Application |
20160149583 |
Kind Code |
A1 |
BURGIO; Carmelo ; et
al. |
May 26, 2016 |
METHOD OF CALIBRATING A SAR A/D CONVERTER AND SAR-A/D CONVERTER
IMPLEMENTING SAID METHOD
Abstract
The present disclosure relates to a method of self-calibration
of a successive approximation register-analog-to-digital converter.
The method includes measuring an error value for each thermometer
element of a plurality of thermometer elements and determining a
mean value of measured error values. The method also includes
generating a thermometer scale where each level of the thermometer
scale will be an incremental sum of each value of a first subset,
and each further level of the thermometer scale will be a sum of
all values of a second subset plus the incremental sum of the
elements of the first subset in any order. In addition, the method
includes generating the output code according to the thermometer
scale.
Inventors: |
BURGIO; Carmelo; (Bergamo,
IT) ; GIACOMINI; Mauro; (Bergamo (BG), IT) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
STMICROELECTRONICS S.R.L. |
Agrate Brianza |
|
IT |
|
|
Family ID: |
52232332 |
Appl. No.: |
14/835110 |
Filed: |
August 25, 2015 |
Current U.S.
Class: |
341/120 ;
341/144 |
Current CPC
Class: |
H03M 1/00 20130101; H03M
1/687 20130101; H03M 1/806 20130101; H03M 1/1245 20130101; H03M
1/466 20130101; H03M 1/462 20130101; H03M 1/0695 20130101; H03M
1/808 20130101; H03M 1/1033 20130101; H03M 1/1047 20130101; H03M
1/802 20130101; H03M 1/12 20130101; H03M 1/804 20130101 |
International
Class: |
H03M 1/10 20060101
H03M001/10; H03M 1/12 20060101 H03M001/12; H03M 1/80 20060101
H03M001/80; H03M 1/46 20060101 H03M001/46 |
Foreign Application Data
Date |
Code |
Application Number |
Nov 26, 2014 |
IT |
MI2014A002031 |
Claims
1-15. (canceled)
16. A method of self-calibration of a successive approximation
register-analog to digital (SAR-A/D) converter comprising an N-bit
digital-to-analog converter for outputting an N-bit output code,
the digital-to-analog converter comprising a first subconverter
having a plurality (N.sub.Th) of thermometer elements and a second
subconverter having a plurality of binary-weighted elements
N.sub.Bin, the output code defined by a thermometer scale having a
number of levels equal to N.sub.Th, the method comprising:
measuring, for each thermometer element of the plurality of
thermometer elements, an error value; determining a mean value of
the error values; dividing the plurality of thermometer elements
into a first subset (X) and a second subset (Y), each containing an
identical number of elements (x, y) equal to N.sub.Th/2, wherein
the first subset (X) comprises the thermometer elements whose error
values are closer to the mean value when a sum of the error values
of thermometer elements of the first subset (X) is not more than
the error value of the thermometer element farthest from the mean
value of the first subset (X), and the second subset (Y) comprises
the thermometer elements of the plurality of thermometer elements
that are not contained in the first subset (X); generating the
thermometer scale, wherein each level m.sub.i of the thermometer
scale, with i ranging from 0 to N.sub.Th/2, is an incremental sum
of each error value of the first subset (X), each further level
m.sub.i of the thermometer scale, with i ranging from
(N.sub.Th/2)+1 to N.sub.Th, is the sum of the values of the second
subset (Y) plus the incremental sum of the values of the first
subset (X); and generating the output code according to the
thermometer scale.
17. The method according to claim 16, wherein the first subset (X)
is ordered to reduce a maximum error value of an integral
non-linearity error of an R.sup.th thermometer level.
18. The method according to claim 16, wherein each further level
m.sub.i of the thermometer scale, with i ranging from
(N.sub.Th/2)+1 to N.sub.Th, is equal to a sum of the error values
of the second subset (Y) plus the incremental sum of the error
values of the first subset (X) in reverse order.
19. The method according to claim 16, wherein the incremental sum
of each error value of the first subset (X) is equal to 0 J - 1 x k
##EQU00016## with J ranging from 0 to N.sub.th/2 where x.sub.k
represents each error value in the first subset (X).
20. The method according to claim 16, wherein if the sum of the
error values of the first subset (X) is greater than a highest
error of each error value of the first subset (X), then at least
one value of the second subset (Y) is exchanged with at least one
value of the first subset (X) if the sum of the resulting values is
smaller than the highest of the error values of a new subset (X)
resulting from the exchange.
21. The method according to claim 17, further comprising:
determining an integral non-linearity error value (INL.sub.R) of an
R.sup.th thermometer level of the thermometer elements T.sub.j
according to the formula: INL R = j = 0 R - 1 E j - R N Th j = 0 N
Th - 1 E j ##EQU00017## where E.sub.j represents relative mismatch
differences between the plurality of thermometer elements T.sub.j
and a reference thermometer element T.sub.ref selected from the
plurality of thermometer elements T.sub.j of the first
subconverter.
22. The method according to claim 21, wherein the relative mismatch
differences E.sub.j of the first subconverter measured according to
the formula: E j = T j - T ref T tot , T tot = k = 0 N Th - 1 T k ,
T ref .di-elect cons. { T 0 T N Th - 1 } ##EQU00018## where: j
ranges from 0 to N.sub.Th-1 and represents a number of available
thermometer elements; and T.sub.tot is a total value of the
plurality of thermometer elements T.sub.j, which total value
T.sub.tot is calculated using the following formula: T tot = k = 0
N Th - 1 T k = N Th T ref 1 - j = 0 j = N Th - 1 E j
##EQU00019##
23. The method according to claim 21, wherein the SAR-A/D converter
comprises a comparator having an input terminal, and the measuring
the relative mismatch differences E.sub.j comprises checking an
input voltage on the input terminal of the comparator according the
formula: .DELTA. V = C th X - C th ref C * ( VrefP - VrefN )
##EQU00020## where .SIGMA.C represents a sum of the thermometer
elements, C.sub.thref is a reference thermometer element, C.sub.thX
is a thermometer element being measured, V.sub.refP is a first
reference voltage that is found on the reference thermometer
element during sampling and on the thermometer element being
measured during the checking, V.sub.refN is a second reference
voltage that is found on the thermometer element being measured
during sampling and on the reference element during the checking,
and on the other thermometer elements throughout the conversion and
.DELTA.V is a measurement of the errors E.sub.j.
24. The method according to claim 17, wherein the reducing the
maximum of the integral non-linearity error value (INL.sub.R) of
the R.sup.th thermometer level comprises: identifying a maximum of
the error value INL.sub.R for each level R; recalculating the error
value INL.sub.R for a number of permutations defined beforehand;
and selecting a permutation that reduces the error value INL.sub.R
from the number of permutations.
25. The method according to claim 24, wherein the determining the
error value INL.sub.R for each thermometer level R of the
thermometer elements T.sub.j comprises: calculating, for each of
the plurality of thermometer elements T.sub.j, the differential
non-linearity error value; selecting the thermometer element having
a highest differential non-linearity error value from the plurality
of thermometer elements T.sub.j; providing an ideal conversion
characteristic of a converter; using thermometer elements with a
smallest differential non-linearity error values of the plurality
of thermometer elements until half the error value of the
thermometer element is approximated; and placing the thermometer
element having an error value with respect to the ideal conversion
characteristic of the converter.
26. The method according to claim 25, further comprising: repeating
the selection of the thermometer element having the highest
differential non-linearity error value from the remaining
thermometer elements of the plurality of thermometer elements
T.sub.j.
27. The method according to claim 26, wherein the repeating the
selection of the thermometer element having the highest
differential non-linearity error value from the remaining
thermometer elements of the plurality of thermometer elements
T.sub.j is repeated as many times as there are thermometer
elements.
28. A method of self-calibration of a successive approximation
register-analog to digital converter comprising a digital-to-analog
(D/A) converter, the D/A converter comprising a first subconverter
having a plurality of thermometer elements, a second subconverter
having a plurality of binary-weighted elements, a first selector
having a plurality of switches, and a second selector having at
least one switch, the method comprising: measuring, for each
thermometer element of the plurality of thermometer elements, an
error value; determining a mean value of the error values;
operating the first selector to select a first group of the
plurality of thermometer elements whose error values are closer to
the mean value when a sum of the error values of the thermometer
elements of the first group is not more than the error value of the
thermometer element farthest from the mean value of the first
group; and operating the second selector to select a second group
of the plurality of thermometer elements that are not contained in
the first group.
29. The method according to claim 28, wherein the first group
comprises a number of thermometer elements that is greater than the
number of thermometer elements contained in the second group.
30. The method according to claim 28, wherein a number of the
thermometer elements of the first subconverter is 2 (number of
thermometer bits), and a number of the binary-weighted elements of
the second subconverter is equal to a number of binary bits.
31. A digital-to-analog (D/A) converter comprising: a first
subconverter having a plurality of thermometer elements and
configured to determine a mean value of error values of the
plurality of thermometer elements; a second subconverter having a
plurality of binary-weighted elements; a first selector configured
to select a first group of said plurality of thermometer elements
whose error values are closer to the mean value when a sum of the
error values of the thermometer elements of the first group is not
more than the error value of the thermometer element farthest from
the mean value of the first group; a second selector configured to
select a second group of said plurality of thermometer elements;
said first selector comprising a plurality of selector switches
each coupled with a respective thermometer element of said first
group; and said second selector comprising at least one selector
switch coupled with the thermometer elements of said second
group.
32. The D/A converter according to claim 31, wherein said first
group comprises a number of thermometer elements that is greater
than the number of thermometer elements contained in said second
group.
33. The D/A converter according to claim 31, wherein a number of
said thermometer elements of said first subconverter is 2 (number
of thermometer bits), and a number of the binary-weighted elements
of the second subconverter is equal to a number of binary bits.
Description
FIELD
[0001] The present disclosure relates to a method of
self-calibration of a successive approximation
register-analog-to-digital (SAR-A/D) converter and a SAR-A/D
converter implementing the method. Particularly, the present
disclosure relates to a method of self-calibration of a mixed
thermometer code-binary code SAR-A/D converter and to such mixed
thermometer code-binary code SAR-A/D converter. More particularly,
the present disclosure relates to a method of self-calibration of
the digital-to-analog converter DAC that is part of the
thermometer-code SAR-A/D converter to optimize the integral
non-linearity of the analog-to-digital converter.
BACKGROUND
[0002] SAR A/D converters are known in the art to be used for
analog-to-digital conversion. In this type of converter, conversion
is based on a dichotomic search through all possible quantization
levels to the determination of the final conversion value.
[0003] Referring to FIG. 1, which shows a block diagram of a
classical SAR-A/D converter, such converter comprises a
digital-to-analog converter (DAC), a successive approximation
register (SAR), a sample-and-hold circuit (S/H), an input voltage
Vin and a reference voltage Vref. Particularly, the sample-and-hold
circuit, which may also be integrated in the DAC converter, is
configured to capture the input voltage Vin, whereas the voltage
comparator (Comp) which compares the voltage Vin with the output of
the DAC, is configured to transmit the result to the successive
approximation register (SAR), which emits an approximate digital
code of the Vin to the internal DAC whose output is fed back to the
comparator with an analog signal equivalent to the output digital
code of the SAR to be compared with the input voltage Vin.
[0004] Particularly, binary-weighted physical elements are usually
employed in the internal DAC to carry out the conversion process.
For example, these binary-weighted physical elements consist of
resistors, capacitors, current generators and the like.
[0005] In order to convert a voltage corresponding to the binary
code `101001` (i.e. the code representing the number 41) using a
binary converter having a number N.sub.bit=N.sub.BitBin of bits
equal to six, six physical elements are available. In the binary
code `101001` the physical elements corresponding to the indices 0,
3 and 5 (i.e. the ones of the binary code `101001`) are intended to
be somehow selected and the corresponding converted voltage is
41/64 Vref, where Vref represents the reference voltage to be used
for the conversion process.
[0006] However, if a thermometer-code SAR A/D converter is used,
all the physical elements are nominally equal to one another.
Therefore, during the conversion process, if the voltage
corresponding to the binary code `101001` (41) has to be converted
using a thermometer-code converter having a number
N.sub.bit=N.sub.BitTh of bits equal to six, all the physical
elements, equal to 64 (because 2 6=64), corresponding to the
indices from 0 to 40 are selected (whereas the physical elements
corresponding to the indices from 41 to 63 are not selected) and
the corresponding converted voltage is always equal to 41/64
Vref.
[0007] Conversely, in a converter having a mixed thermometer-code
and binary design, the plurality of physical elements that form the
converter are divided into two subsets, i.e. one subset formed by
thermometer elements and the other subset formed by binary-weighted
elements.
[0008] Namely, the binary-weighted elements define the LSB bits of
the output code generated by the converter, whereas the thermometer
elements define the MSB bits of such output code.
[0009] It shall be noted that the accuracy of the converter with
the thermometer-code and binary design is set by the smallest
physical element implemented in the binary elements and corresponds
to 1 LSB, i.e. the bit corresponding to the zero index of LSB
bits.
[0010] The example of FIG. 2 is a converter with a thermometer-code
and binary design having twelve bits, with an output code organized
as follows:
[0011] binary physical elements are used for indices from 0 to 5,
which represent the LSB bits of the output code, which means that
the 0 index is given by a binary element, the 1 index is given by a
binary element having twice the value (of the binary element for
the 0 index), the 2 index is given by a binary element having four
times the value (of the binary element for the 0 index) and so on;
and
[0012] thermometer elements are used for indexes from 6 to 11,
which represent the MSB bits of the output code, such that each
index involves the addition of as many thermometer elements as
required by the binary coding of the index weight minus 6
(2.sup.(bit index-6)).
[0013] The problematic aspect of such thermometer-code ADC is that,
as the latter generates the values of the various voltages
V.sub.thermo (Thermo=0 . . . 2.sup.N.sub.Th) of the thermometer
levels as used in the A/D conversion process, these voltage values
V.sub.Thermo are affected by the problem that the thermometer
elements are not identical, as they should ideally be but actually
exhibit non-idealities, which introduce an error in such voltage
values V.sub.Thermo.
[0014] Thus, assuming that 64 thermometer elements T.sub.j are
provided, the ideal voltages V.sub.Thermo required during SAR
conversion are:
V Thermo = V ref T tot j = 0 Thermo - 1 T j ##EQU00001##
[0015] where T.sub.tot is the total value of the thermometer
elements, Thermo belongs to the set from 0 to 64 and T.sub.j
belongs to the set T.sub.0, . . . , T.sub.Thermo-1, because voltage
levels are one more than the elements. Nevertheless, since all
thermometer elements T.sub.j are imperfect, each having its own
error .tau..sub.j, then each thermometer element may be rewritten
according to the formula:
T.sub.j=T.sub.ideal+.tau..sub.j
[0016] In view of the above, the real voltage values Vthermo
required during SAR conversion are expressed by the following
formula:
V Thermo = V ref T tot j = 0 Thermo - 1 ( T ideal + .tau. j )
##EQU00002##
[0017] Thus, the INL error between the ideal and real voltage
sequences may be expressed by the following formula:
INL Thermo = V ref T tot j = 0 Thermo - 1 .tau. j ##EQU00003##
[0018] where INL.sub.Thermo represents the error for the
Thermo.sup.th level of the DAC converter.
[0019] Such INL.sub.Thermo depends on the order of thermometer-code
errors and is inherently equal to zero for minimum and maximum
voltage limits V.sub.min=0 and V.sub.max=V.sub.ref=V.sub.64
(because in this case the number of bits is supposed to be 6).
[0020] The INL.sub.Thermo value is affected by the measurements of
the imperfection of the thermometer elements. Particularly, the
calibration process as disclosed in Patent Application
MI2014A000720 (which is intended to be integrated in the present
disclosure), was found to be able to approximate the ideal
characteristic INL with an accuracy of half the DNL error of the
worst measured thermometer element.
[0021] Of course, the INL.sub.Thermo value is invalidated if
measurements on thermometer elements are not made with the utmost
accuracy.
[0022] A further problem is the area occupied by the switches that
are used to switch the thermometer elements on.
SUMMARY
[0023] The object of the present invention is to provide a method
and a converter for self-calibration of a hybrid thermometer-binary
code SAR A/D converter.
[0024] One embodiment provides a more efficient method of
self-calibration of a thermometer-code SAR A/D converter that does
not require the introduction of dedicated hardware.
BRIEF DESCRIPTION OF THE DRAWINGS
[0025] The characteristics and advantages of the present disclosure
will appear from the following detailed description of a possible
practical embodiment, illustrated as a non-limiting example in the
set of drawings, in which:
[0026] FIG. 1 shows a block diagram of a SAR A/D converter of the
prior art;
[0027] FIG. 2 shows a graphical representation of the composition
of the elements of a SAR A/D converter of the prior art;
[0028] FIG. 2A shows the mathematical calculations required to
check the correctness of the calibration method;
[0029] FIG. 3 is a flow chart of the method of calibrating a SAR
A/D converter of the present invention;
[0030] FIG. 4 shows an example of the method of FIG. 3 in graphical
and numerical form;
[0031] FIGS. 5, 6 and 7 show the result of simulations when a
deterministic method is used to solve the method as shown in FIG.
3; and
[0032] FIG. 8 shows a block diagram of the wiring circuits of
thermometer elements and binary-weighted elements as capacitors of
the SAR A/D converter of the present invention.
DETAILED DESCRIPTION
[0033] Even when this is not expressly stated, the individual
features as described with reference to the particular embodiments
shall be intended as auxiliary to and/or interchangeable with other
features described with reference to other exemplary
embodiments.
[0034] Parts that have been described with reference to the prior
art will be designated hereinbelow, for simplicity, by the same
numerals.
[0035] In view of minimizing the INL.sub.Thermo value without using
dedicated or additional hardware, the redundancy in the actuation
sequence of the thermometer elements T.sub.j is a key factor for
efficient self-calibration of the SAR A/D converter.
[0036] Particularly, all the actuation sequences are equivalent
(because all the elements must be identical, i.e. 64 LSB when
N.sub.BitBin bit is equal to 6), but they are slightly different in
practice, whereby any change in the actuation sequence of the
elements involves a change in the output code of the ADC.
[0037] As mentioned above, the error between the ideal and real
voltage sequences may be expressed by the following formula:
INL Thermo = V ref T tot j = 0 Thermo - 1 .tau. j ##EQU00004##
[0038] In order to minimize such INL.sub.Thermo value a method for
calibration of the SAR-A/D converter is provided.
[0039] Particularly, also referring to FIG. 3, the SAR-A/D
converter comprises an N.sub.bit-bit digital-to-analog converter
DAC to generate an N.sub.bit-bit output code OUTPUT 9.
[0040] In one aspect, the digital-to-analog converter DAC comprises
a plurality of thermometer elements T.sub.j, block 1, and a
plurality of binary-weighted elements, block 2.
[0041] It shall be noted that, in the definition of the present
calibration method, the binary part of the physical elements is
assumed to be perfect, i.e. error-free and designed in optimized
fashion with the available hardware technologies.
[0042] Such binary part is used for high-precision measurement of
the errors E.sub.j of the thermometer elements T.sub.j, possibly by
means of averaging methods.
[0043] Particularly, relative differences E.sub.j may be measured
using a first subconverter C.sub.LSB having a few bits, as the
measured difference is between numbers that should have been
ideally identical, but are actually similar and not coincident.
[0044] For this purpose, a first subset of thermometer elements
T.sub.j is designed to be obtained, block 3, from the plurality of
physical elements of the converter, such first subset defining the
MSB bits of the output code OUTPUT and a second subset of binary
weighted elements N.sub.bin is also designed to be obtained, block
4, such second subset N.sub.bin defining the LSB bits of the output
code OUTPUT.
[0045] In one aspect, the output code OUTPUT is defined by a
thermometer scale S.sub.Th whose number of levels m.sub.i, is equal
to 2.sup.NBitTh, 2.sup.NBitTh being equal to N.sub.Th.
[0046] Advantageously, the method includes a step 5 of measuring
the error value of each thermometer element T.sub.j, which is
carried out with methods known to the skilled person and not
described herein.
[0047] Once the error value of each thermometer element is
measured, in one aspect of the method, a step is provided, block 6,
for determining a mean value .mu. of these measured values.
[0048] When the mean value .mu. is known, in one aspect of the
method, at block 7 the plurality N.sub.Th of thermometer elements
T.sub.j are divided into a first subset X and a second subset Y,
each containing an identical number of values x, y.
[0049] Particularly, the number of elements x, y in the subsets X
and Y is half the number of the thermometer elements T.sub.j. This
division is made, for instance, using a software algorithm.
[0050] This is possible because the following equation is by
definition always true, regardless of the measured thermometer
element values:
all DNL j = 0 ##EQU00005##
[0051] As a result of this equality, when the thermometer elements
T.sub.j are divided into the above two subsets X and Y, then:
X DNL j + Y DNL j = 0 ##EQU00006##
i.e.:
X DNL j = - Y DNL j ##EQU00007##
[0052] This means that the sum of the thermometer elements x of the
subset X (i.e. the INL of the subset X) is equal to the opposite of
the sum of the thermometer elements y of the subset Y (i.e. the INL
of the subset Y), regardless of the type of partition.
[0053] Assuming the above, then the first subset X comprises the
thermometer elements T.sub.j whose values are closer to said mean
value .mu. as long as the error of the sum of thermometer elements
T.sub.j of the first subset X is not more than the error value of
the element farthest from the mean value .mu.. The second subset Y
comprises all the remaining thermometer elements T.sub.j.
[0054] The allocation of the respective s values to the subset X or
the subset Y is performed, for instance, by a software
algorithm.
[0055] The method of the present invention includes, at step 8,
generating a thermometer scale S.sub.Th, using for:
[0056] each level m.sub.i of said thermometer scale S.sub.Th, with
i ranging from 0 to N.sub.Th/2, the incremental sum of each value x
of said first ordered subset X; and
[0057] each further level m.sub.i of said thermometer scale
S.sub.Th, with i ranging from N.sub.Th/2+1 to N.sub.Th, the sum of
all the values y of said second subset Y plus the incremental sum
of the elements x of the subset X in any order.
[0058] The method also includes generating, at block 9, the output
code OUTPUT according to such thermometer scale S.sub.Th.
[0059] In a preferred aspect of the method, the first subset X is
ordered such that the maximum error value .epsilon..sub.R of the
integral non-linearity error INL of a R.sup.th thermometer level
may be reduced and minimized.
[0060] Preferably, in the present method, each further level
m.sub.i of the thermometer scale S.sub.Th, with i ranging from
N.sub.Th/2+1 to N.sub.Th, will be the sum of all the values y of
the second subset Y plus the incremental sum of the elements x of
the subset X in reverse order.
[0061] In other words, also referring to FIG. 4, which shows a
numerical example of the method of the present disclosure, it shall
be noted that levels m.sub.5 to m.sub.e of the scale S.sub.Th are
constructed as the sum of all the values y of said second subset Y
plus the incremental sum of the elements x of the subset X in
reverse order.
[0062] Namely, assuming that:
[0063] the number of thermometer bits N.sub.BitTh is equal to
three, then the number N.sub.th of thermometer elements T.sub.j is
equal to eight (2.sup.3 being equal to 8) such that the number of
levels m.sub.i of the thermometer scale S.sub.Th is also equal to
eight,
[0064] the number of binary bits N.sub.BitBin is equal to three,
then the number N.sub.Bin of binary elements is equal to three such
that the number of levels of the binary scale S.sub.Bin is also
equal to eight,
[0065] then, the output code OUTPUT is defined by the thermometer
scale S.sub.Th having a number of levels m.sub.i equal to eight,
and by the binary scale S.sub.BIN having a number of levels equal
to eight.
[0066] If this is the case, assuming that the measured values of
the N.sub.th=8 thermometer elements T.sub.j of the thermometer
scale S.sub.Th are, for instance, equal to T.sub.1=0.7,
T.sub.2=0.9, T.sub.3=1.2, T4=1.1, T.sub.5=1.3, T.sub.6=0.8,
T.sub.7=0.9 and T.sub.8=1.4, then the step of calculating the mean
value .mu. provides a value of 1.0375, although the ideal value
should have been 1.0.
[0067] Once the mean value .mu. is known, the subset X, after the
above mentioned division step, comprises a number s of values equal
to four, i.e. half the N.sub.th=8 thermometer elements T.sub.j,
such values being the ones closer to the mean value .mu., whereas
the subset Y, which also comprises a number s of values equal to
four, i.e. half the N.sub.th=8 thermometer elements T.sub.j, is
filled with the values that are farther from the mean value
.mu..
[0068] In other words, the subset X comprises four elements x1, x2,
x3, x4, and the subset Y also comprises four elements y1, y2, y3,
y4, each identifying its own value Tj.
[0069] It shall be noted that the values x.sub.1, . . . , 4 of the
subset X are used individually, whereas the values y.sub.1, . . . ,
4 of the subset Y are used as a group, i.e. as a single value equal
to the sum of the four values y.sub.1, . . . , 4.
[0070] Once the two subsets X and Y have been defined, then a new
thermometer scale S.sub.Th may be generated, such that each level
from m.sub.1 to m.sub.4 of the thermometer scale S.sub.Th is
associated with the incremental sum of the available values
x.sub.1, . . . , 4 of the first subset X.
[0071] Particularly, the incremental sum of each value x of the
first subset X is equal to
m k = 1 k x j , ##EQU00008##
where k ranges from 0 to N.sub.th/2 and x.sub.j represents each
value stored in such first subset X.
[0072] Therefore, the term incremental sum of the values x.sub.1, .
. . , 4 is intended to mean the following:
[0073] position m.sub.0 of S.sub.TH=0;
[0074] position m.sub.1 of S.sub.TH=value x1;
[0075] position m.sub.2 of S.sub.TH=value x1+value x2;
[0076] position m.sub.3 of S.sub.TH=value x1+value x2+value x3;
[0077] position m.sub.4 of S.sub.TH=value x1+value x2+value
x3+value x4.
[0078] In other words:
[0079] for the first level m.sub.1 of the thermometer scale
S.sub.Th there is a single value of the subset X, particularly the
one stored in the first position x.sub.1, [0080] for the second
level m.sub.2 of the thermometer scale S.sub.Th there is the sum of
the values stored in the first position x.sub.1 and the second
position x.sub.2 of the subset X, and [0081] for the third level
m.sub.3 of the thermometer scale S.sub.Th there is the sum of the
values stored in the first position x.sub.1, the second position
x.sub.2 and the third position x.sub.3 of the subset X.
[0082] Each further level from m.sub.5 to m.sub.8 of the
thermometer scale S.sub.Th is associated with the sum of all the
values y.sub.1, . . . , 4 of the second subset Y plus the
incremental sum of the elements x of the subset X in reverse
order.
[0083] Namely:
[0084] the level m.sub.5 of the thermometer scale S.sub.Th is equal
to the sum of all the values y.sub.1, . . . , 4 of the second
subset Y plus the value of the level x.sub.4 of the first subset X,
[0085] the level m.sub.6 of the thermometer scale S.sub.Th is equal
to the sum of all the values y.sub.1, . . . , 4 of the second
subset Y plus the value of the levels x.sub.4 and x.sub.3 of the
first subset X, [0086] the level m.sub.7 of the thermometer scale
S.sub.Th is equal to the sum of all the values y.sub.1, . . . , 4
of the second subset Y plus the value of the levels x.sub.4,
x.sub.3 and x.sub.2 of the first subset X, and [0087] the level
m.sub.8 of the thermometer scale S.sub.Th is equal to the sum of
all the values y.sub.1, . . . , 4 of the second subset Y plus the
value of the levels x.sub.4, x.sub.3, x.sub.2 and x.sub.1 of the
first subset X.
[0088] According to a preferred embodiment of the present method,
if the sum of the errors of the elements x of the first subset X is
greater than the highest error of the individual elements x, then a
step is provided of exchanging at least one value y of said second
subset Y with an appropriate element x of said first subset X if
the sum of the resulting elements is smaller than the worst of the
elements of the new subset X resulting from the exchange.
[0089] For example, assuming that the measurement of the error
value of each thermometer element T.sub.j has provided the
following values 0.97 0.93 0.85 0.98 1.1 1.2 1.02 1.05 and that the
mean value, i.e. the ideal element, is 1.0125, then the DNL of each
element is -0.0420, -0.0815, -0.1605, -0.0321, 0.0864, 0.1852,
0.0074 and 0.0370.
[0090] Ordered DNLs are obtained by ordering, i.e. -0.1605,
-0.0815, -0.0420, -0.0321, 0.0074, 0.0370, 0.0864 and 0.1852.
[0091] The selection of GOOD elements, i.e. those whose values are
closer to the mean value .mu. gives elements with values -0.0420,
-0.0321, 0.0074 and 0.0370 whereas the selection of BAD elements,
i.e. those whose values are farther from the mean value i, gives
elements with values -0.1605, -0.0815, 0.0864 and 0.1852.
[0092] The sum of GOOD elements is -0.0296, whereas the sum of BAD
elements is 0.0296.
[0093] Therefore, here the DNL at half-scale is -0.0593, which is
worse than all the DNLs of the GOOD elements.
[0094] Thus, an alternative selection of GOOD elements is required,
with one GOOD element being exchanged with a BAD element, e.g. the
third BAD element being selected instead of the fourth GOOD
element, i.e.: [0095] -0.0420 -0.0321 0.0074 0.0864
[0096] The same applies for the selection of BAD elements, [0097]
-0.1605 -0.0815 0.1852 0.0370
[0098] The INL at half-scale, which is equal to 0.0395, is found to
be better than any DNL of the new GOOD elements.
[0099] This exchange provides advantages, such as making the sum of
the so-called GOOD elements as close as possible to that of the
so-called BAD elements, without causing the GOOD (or BAD) elements
to include an element that is too far from the mean value. In fact,
since the two sums are opposite to each other, it would be ideally
desirable (although not achievable in practice) that both sums
should be zero (i.e. that the INL characteristic at half-scale
should be perfect).
[0100] In one aspect of the present disclosure, the first subset X
is ordered such that the maximum error value .epsilon..sub.R of the
integral non-linearity error (INL) of a R.sup.th thermometer level
may be minimized.
[0101] In order to minimize the integral non-linearity error value
(.epsilon..sub.R INL), in one aspect as disclosed in MI2014A000720,
which is intended to be incorporated in the present disclosure, the
method includes:
[0102] determining the error value .epsilon..sub.R, (block 5),
using the following formula:
INL R = j = 0 R - 1 E j - R N Th j = 0 N Th - 1 E j
##EQU00009##
[0103] where E.sub.j represents the relative mismatch differences
between the plurality of thermometer elements T.sub.j and a
reference thermometer element T.sub.ref selected from said
plurality of thermometer elements T.sub.j and R ranges from 0 to
N.sub.Th and represents the number of available thermometer
levels.
[0104] In one aspect, the relative mismatch differences E.sub.j may
be measured using the following formula:
E j = T j - T ref T tot , T tot = k = 0 N Th - 1 T k , T ref
.di-elect cons. { T 0 T N Th - 1 } ##EQU00010##
[0105] where:
[0106] N.sub.Th represents the number of thermometer elements
2.sup.N.sub.BitTh; and
[0107] T.sub.tot is the total value of said plurality of
thermometer elements T.sub.j, which total value T.sub.tot may be
calculated using the following formula:
T tot = k = 0 N Th - 1 T k = N Th T ref 1 - j = 0 j = N Th - 1 E j
##EQU00011##
[0108] The mathematical proof of the above formulas may be found in
FIG. 2A, which shows the most important steps to the definition of
the error value INL.sub.R.
[0109] Particularly, the FIG. 2A shows that the formula for the
error value INL.sub.R, i.e. the integral non linear error (INL) of
a R.sup.th thermometer level may depend on E.sub.j, i.e. on the
relative differences between the plurality of thermometer elements
T.sub.j and a reference thermometer element T.sub.ref selected from
the plurality of thermometer elements T.sub.j of the
digital-to-analog converter (DAC) as measured by the formula:
E j = T j - T ref T tot ##EQU00012##
[0110] The differential non linearity value (DNL) may be determined
(block 5) using the following formula:
DNL k = E k - 1 N Th j = 0 N Th - 1 E j ##EQU00013##
[0111] In one aspect, the errors E.sub.j of the thermometer
elements T.sub.j may be possibly measured by also using averaging
methods.
[0112] In one aspect, in order to measure the mismatch E.sub.j of
the thermometer elements T.sub.j, if these thermometer elements
T.sub.j are implemented as capacitors C (see FIG. 8), then there
will be a step of checking an input voltage (VINC) on said input
terminal of said comparator (Comp) using the following formula:
.DELTA. V = C th X - C th ref C * ( VrefP - VrefN )
##EQU00014##
[0113] where .SIGMA.C represents the sum of the thermometer
elements, C.sub.thref is a reference thermometer element, C.sub.thX
is the thermometer element being measured, V.sub.refP is a first
reference voltage that is found on the reference thermometer
element during sampling and on the element being measured during
the step of checking, V.sub.refN is a second reference voltage that
is found on the thermometer element being measured during sampling
and on the reference element during the step of checking, and on
all the other thermometer elements throughout the conversion and
.DELTA.V is the measurement of the errors E.sub.j.
[0114] The above identified error INL.sub.R may be minimized by
determining the appropriate actuation permutation P of the
thermometer elements T.sub.j for more accurate calibration.
[0115] For this purpose, the above mentioned method step of
minimizing or reducing the maximum of said integral non-linearity
INL error value INL.sub.R of the Rth thermometer level,
includes:
[0116] identifying the maximum of said error value INL.sub.R for
each level R;
[0117] recalculating the integral non-linearity error value
INL.sub.R for a number of permutations P defined beforehand;
and
[0118] selecting the permutation that reduces or minimizes said
error value INL.sub.R from said number P of permutations.
[0119] Nevertheless, although this minimization step is effective,
there still exist an excessively high number of permutations to be
processed by the method, i.e., theoretically corresponding to the
factorial of the number of thermometer elements, e.g. 64 in the
case of a 6-bit thermometer-code converter.
[0120] Therefore the maximum absolute error INL.sub.R must be
minimized without processing the 64 permutations to actuate the
thermometer elements.
[0121] This may be done, for example, using a metaheuristic
algorithm, such as a simulated annealing algorithm, a tabu search
algorithm or genetic algorithm but also, preferably, using a
deterministic approach.
[0122] In view of using a deterministic approach it should be noted
that, for a "perfect" DAC converter, each thermometer element
T.sub.j must have a "perfect" value, i.e. T.sub.ideal.
[0123] If this is not the case (i.e. if the converter is not
perfect), each time that the thermometer element T.sub.Thermo is
added, the INL error should change by .tau..sub.Thermo.
[0124] In fact, each thermometer element is affected by an error
defined as DNL.sub.Thermo which represents, as is also shown from
FIG. 2A, the differential non-linearity, i.e. the difference
between the ideal analog-to-digital conversion step and the actual
analog-to-digital conversion step.
[0125] In the light of the above, assuming a Gaussian arrangement
of the thermometer elements T.sub.j centered about their mean value
(with the mean value being, by definition, T.sub.ideal) which means
that many thermometer elements T.sub.j should be close to the mean
value, to have a small DNL error, and with the start and end points
of the INL characteristic error being zero, a thermometer-code
sequence very close to the optimal sequence may be
"constructed".
[0126] For this purpose, the element with the greatest DNL error
must be identified and centered on the ideal INL characteristic or,
in an equivalent manner, its DNL.sub.worst must be centered at
zero.
[0127] Particularly, in a preferred aspect, the method provides an
adequately accurate approximation (from 0 or the end-of-scale
value) of 1/2 of the DNL error (with opposite sign) of the worst
thermometer element, using the elements of the thermometer set
having the smallest DNL error.
[0128] It shall be noted that an INL error of .+-.1/2 DNL.sub.worst
should never be exceeded when constructing the INL
characteristic.
[0129] Once the worst thermometer element is determined and
centered with respect to the Integral Non-Linearity INL
characteristic, the second worst element is determined by repeating
the procedure, but not starting from 0 (or the end-of-scale value),
but from the position defined by the last determined element (the
worst element). This will provide the best possible INL
performances for this particular DAC.
[0130] Particularly, the differential non-linearity DNL error value
DNL.sub.j should be calculated for each thermometer element
T.sub.j, and the thermometer element T.sub.j' with the highest
differential non-linearity DNL error value DNL.sub.j' should be
selected.
[0131] Once the thermometer element T.sub.j' with the highest error
value DNL.sub.j' has been determined, such error value DNL.sub.j'
is centered with respect to the ideal conversion characteristic of
the converter.
[0132] Once such value DNL.sub.j' has been positioned, and in order
to reach the value represented by the ideal characteristic, the
smallest Differential Non-Linearity DNL error values DNL.sub.j of
said plurality of thermometer elements are summed until half the
value of said thermometer element T.sub.j' is approximated.
[0133] Then, selecting the thermometer element having the highest
differential non-linearity DNL error value from the remaining
thermometer elements of said plurality of thermometer elements
T.sub.j is repeated.
[0134] These steps are iterated as many times as there are
thermometer elements left, by repeating the selection of the
element with the highest differential non-linearity DNL error value
DNL.sub.j from the remaining thermometer elements T.sub.j and
centering its error value DNL.sub.j with respect to said ideal
characteristic, starting from the position defined by the last
determined element.
[0135] With the above described method, a value of a k.sup.th level
of the DAC is given by:
L K = j = 0 j = K - 1 T j T Tot ##EQU00015##
[0136] This is advantageous because the output code OUTPUT is
generated using the thermometer elements that are closer to the
mean value .mu., i.e. those of the subset X, as numerators, whereas
the thermometer elements that are farther from the mean value are
used as denominators.
[0137] The above method advantageously provides a process for
self-calibration of the SAR-A/D converter which does not require
the use of external hardware or other circuit implementations (i.e.
on elements that are part of the converter itself), but using the
plurality of thermometer elements themselves, and particularly
utilizing the binary part for high-accuracy measurement of the
errors E.sub.j of the thermometer elements T.sub.j.
[0138] It should be particularly noted that the binary part of the
converter has a small dynamic range but is inherently accurate due
to the hardware implementation of binary elements.
[0139] Referring now to FIGS. 5, 6 and 7, there is shown the result
of simulations using the above described method.
[0140] Particularly, FIG. 5 shows the effect of calibration on 1024
devices, whereas FIG. 6 shows the distribution of the maximum INL
error before (natural) and after (calibrated) the calibration
method and finally FIG. 7 shows the effect of calibration on a
single converter device.
[0141] Referring now to FIG. 8, which shows a block diagram of the
circuit of thermometer elements and binary-weighted elements as
capacitors, it shall be noted that the conversion matrix required
to carry out the above described method comprises a first
subconverter C.sub.MSB comprising a plurality of thermometer
elements and a second subconverter C.sub.LSB comprising a plurality
of binary-weighted elements.
[0142] Advantageously, according to the present disclosure, the
number of the thermometer elements of the first subconverter
C.sub.MSB is 2.sup.N.sub.BitTh and the number of the
binary-weighted elements of the second subconverter C.sub.LSB is
N.sub.BitBin.
[0143] In other words, in order to implement the above method, the
first subconverter C.sub.MSB will comprise a number of thermometer
elements equal to 2 N.sub.bitTh, whereas in the prior art it would
have been (2 N.sub.bitTh)-1.
[0144] Therefore, if there are six thermometer-code bits, the
number of thermometer elements that would be used in the prior art
would equal to 63 physical elements, whereas in this invention it
equals 64 physical elements.
[0145] The two subconverters C.sub.MSB and C.sub.LSB, are coupled
by an appropriate coupling circuit Cblock.
[0146] The coupling circuit Cblock consists, for instance, in a
simple wire or a bridge associated with an attenuator capacitor,
although a more complex implementation may be also envisaged, and
is required to provide the proper scale relationship between the
voltages generated by the two subconverters made of capacitors
C.sub.MSB and C.sub.LSB.
[0147] Particularly, the subconverter C.sub.MSB includes as many
capacitors as there are thermometer elements, in this case 64,
whereas the subconverter C.sub.LSB includes as many capacitors as
there are binary elements, in this case 6.
[0148] In order to minimize the switch area, the converter is
designed to comprise first selector S1 which is configured to
select a first group G1 of said plurality of thermometer elements
T.sub.j and second selector S2 which is configured to select a
second group G2 of the plurality N.sub.Th of thermometer elements
T.sub.j.
[0149] The first selector S1 comprises a plurality of selector
switches IG1.sub.j, each in signal communication with a respective
thermometer element T.sub.j of the first group G1, which means that
each thermometer element may be controlled by a respective switch
to a voltage VrefN and VrefP, where VrefP is the positive reference
(typically VDD) and VrefN is the negative reference (typically the
ground or GND).
[0150] The second selector S2 comprises a single selector switch
IG2 in signal communication with the thermometer elements T.sub.j
of the second group G2 to control all of them at the same time or
as a single block. Therefore, this second group G2 of thermometer
element can be controlled by the switch IG2 to a voltage VrefN and
VrefP, where VrefP is the positive reference (typically VDD) and
VrefN is the negative reference (typically the ground or GND).
[0151] Preferably, the group G1 comprises a number of thermometer
elements that is greater than half the total thermometer elements,
whereas the second group G2 comprises the remaining thermometer
elements.
[0152] For example, assuming a number of 64 thermometer elements
(and hence a 6-bit DAC for the thermometer code part), the group G1
comprises 40 thermometer elements (40 being greater than 64/2) and
the group G2 comprises 24 elements (because 64 minus 40 is 24).
[0153] Particularly, the 40 thermometer elements of the group G1
are controlled individually, whereas the 24 thermometer elements of
the group G2 are controlled together or as a single block, whereby
23 switches will be eliminated and the switch area will be
reduced.
[0154] Assuming the above, a new set of thermometer elements G3
shall be identified, which is composed by the combination of the
group G2 and a subset G1' of the group G1, which is identified by a
program stored in a memory.
[0155] For example, the subset G1' shall comprise eight thermometer
elements (G1'=8), in this example 32.
[0156] Generally, the subset G1' is equal to the number Nth/2 minus
the number of elements of the group G2.
[0157] The remaining unit elements G1'' of the group G1, i.e. the
thermometer elements of G1 minus those of the subset G1' will
represent the subset X.
[0158] With the above numbers, the remaining thermometer elements
G1'' which represent the subset X are thirty-two (i.e. Nth/2). The
unit thermometer elements of the subset G1', that are included in
the subset G3 (G2+G1') have been selected according to the
following rules:
[0159] removing the worst thermometer elements of the set G1, i.e.
the thermometer elements whose values are farthest from the mean
value; and
[0160] minimizing the difference between the set G1'' and the set
G3.
[0161] The value of the set G2 is measured by:
[0162] measuring all the unit elements; and
[0163] measuring the value of the set G2 with respect to any set of
unit elements, said set of unit elements having the same nominal
total size as G2 and a known error. This measurement may be used to
readily assess the value of the large element G2 by comparison with
a known set of elements.
[0164] Those skilled in the art will obviously appreciate that a
number of changes and variants may be made to the method of
self-calibration of a SAR-A/D converter as described above to
fulfill particular requirements, without departure from the scope
of the invention, as defined in the following claims.
* * * * *