The disclosed subject matter relates to circuits, methods, and media for providing delta-sigma modulators.
The use of delta-sigma modulator circuits for analog-to-digital conversion is increasing in popularity due to various properties of the circuits like inherent anti-aliasing and resistive input drive.
An example 100 of a prior-art, multi-bit continuous-time delta sigma modulator (CTDSM) is illustrated in
During operation of circuit 100, a feedback signal Vfb is subtracted from an input signal Vin by subtracter 102 to produce a difference signal. This difference signal is then provided to filter 104, which filters the difference signal to produce a filtered signal. ADC 106 then converts the analog filtered signal to a digital N-bit, thermometer-coded output, D<N-1:0>. The thermometer-coded output is then converted back to the analog feedback signal Vfb and provided to subtracter 102 by DAC 108.
When a DAC (such as DAC 108) in a delta sigma modulator (such as CTDSM 100) is not matched to its ADC (such as ADC 106) (i.e., a mismatch between the unit elements of the DAC and the unit elements of the ADC), non-linearities and errors can be produced in the modulator's output.
Accordingly, new mechanisms for providing delta-sigma modulators are desirable.
Circuits, methods, and media for providing delta-sigma modulators are provided. In some embodiments, circuits for a delta-sigma modulator are provided, the circuits comprising: an analog-to-digital converter that produces an output having multiple bits; a digital-to-analog converter having an input having multiple bits; a switch coupled between the output the input that can be used to configure connections between the bits of the output and the bits of the input; a hardware processor that: for multiple iterations, sets a configuration of the switch, samples the bits of the output to produce sample values for each bit of the bits of the output, and calculates an average of the sample values for each of the bits of the output values; computes weights for each of the bits of the output values; and calculates weighted output values for every value of the outputs.
In some embodiments, methods for providing a delta-sigma modulator are provided, the methods comprising: performing an analog-to-digital conversion to produce an output having multiple bits; performing a digital-to-analog conversion to produce an input having multiple bits; using a hardware processor to: for multiple iterations, set a configuration of between the bits of the output and the bits of the input, sample the bits of the output to produce sample values for each bit of the bits of the output, and calculate an average of the sample values for each of the bits of the output values; compute weights for each of the bits of the output values; and calculate weighted output values for every value of the outputs.
In some embodiments, non-transitory computer readable media containing computer executable instructions that, when executed by a processor, cause the processor to perform a method for providing a delta-sigma modulator are provided, the method comprising: for multiple iterations, setting a configuration of between bits of an output of an analog-to-digital conversion and bits of input of a digital-to-analog conversion, sampling the bits of the output to produce sample values for each bit of the bits of the output, and calculating an average of the sample values for each of the bits of the output values; computing weights for each of the bits of the output values; and calculating weighted output values for every value of the outputs.
Circuits, methods, and media for providing delta-sigma modulators are provided. In accordance with some embodiments, the delta-sigma modulators can be continuous-time delta sigma modulators (CTDSMs), though the delta-sigma modulators can be discrete time delta sigma modulators in some embodiments. For the purposes of clarity, calibration of delta-sigma modulators is described herein in connection with CTDSMs. However, it should be apparent to one of skill in the art that the mechanisms described herein can be used with non-continuous-time delta sigma modulators in some embodiments.
As described further below, in accordance with some embodiments, a calibration mechanism is provided that, under the control of a control circuit, populates a look-up table (LUT) at the output of the delta-sigma modulator with calibrated output values for every possible output value of the modulator's ADC. This LUT is constructed by performing a number of calibration iterations, during each of which: the input to the modulator is held at a constant DC value (which can be a fixed value or a constant DC value with a varying AC component); the connections between the output of the modulator's ADC and the modulator's DAC are switched (e.g., using a circular shifter) from the other iterations; and an average of a number of samples of each bit of the ADC output is calculated. The averages are then used to solve for weights for each bit of the ADC output. Finally, the LUT is populated by applying the weights to each possible input to the LUT and storing the resulting values in the LUT.
Turning to
Like what is described above for
A calibration process can be used in connection with switch 210, LUT 212, and control circuitry 214 of
For example, calibration process 300 of
The calibration process can perform a number of calibration iterations. Any suitable number of iterations can be performed in some embodiments. For example, with an N-level ADC (such as five-level ADC 206 of
As shown in
Next, process 300 can collect and average samples of each of the input bits to DAC 208 as output by the output bits of ADC 206, and store these averages, at 304. As described above, these samples can be collected while the input signal Vin has a constant DC value—i.e., either has a fixed value or has a constant DC value with a varying AC value. Any suitable number of samples can be collected in some embodiments. For example, in some embodiments, for an n-bit delta-sigma modulator, at least 2n+1 samples (or 215+1 samples for a n=15-bit delta-sigma modulator) can be collected. For each of the iterations j, the average values of the DAC input bits Bi over n samples can be represented by:
These samples can be collected from the outputs of the ADC or from the inputs to the DAC in some embodiments. These averages can be stored in any suitable manner in any suitable location, such as memory part of or coupled to control circuitry 214.
Then, at 306, process 300 can determine whether a certain number of iterations have been performed. As described above, in some embodiments, N−1 iterations can be performed for a delta-sigma modulator having an N-level ADC. Thus, for five-level ADC 206 of
At 308, process 300 can compute weights Ii for each bit i of the outputs of ADC 206 to be used to populate LUT 212. These weights can be computed in any suitable manner. For example, in some embodiments, these weights can be computed one way when the input signal Vin can be determined and when Vin is not equal to zero, and these weights can be computed in another way when it can be determined that the DC component of Vin is fixed (whether the exact value of Vin is known or not), but that the AC component of Vin is varying or may be varying, or when Vin is equal to zero.
When input signal Vin can be determined and Vin is not equal to zero, the weights Ii can be determined, in some embodiments, by solving a set of linear equations like what follows (which is shown, for purposes of illustration only, for a four bit output and four iterations):
When it can be determined that the DC component of Vin is fixed, but that the AC component of Vin is varying or may be varying, or when Vin is equal to zero, the weights Ii can be determined first by setting any one of the weights (e.g., I0) to any suitable scalar value (e.g., such as 1) and then solving for the remaining weights Ii using the following set of linear equations (which, again, is shown, for purposes of illustration only, for a four bit output and four iterations):
The above set of linear equations can be obtained by setting I0=1 and re-arranging the following general formula:
The above sets of linear equations are provided herein only for purposes of illustration and these equations can be modified to cover embodiments with ADCs with different numbers of output bits and/or calibration processes with different numbers of iterations.
Finally, at 310, process 300 can use the weights Ii to populate LUT 212. This can be accomplished, for example, by, for each possible output value of ADC 206, multiplying the value of each bit (D3, D2, D1, or D0) of that output value by the corresponding weight (I3, I2, I1, or I0), summing the resulting products to a resulting sum, and storing the resulting sum (made up of D3*I3+D2*I2+D1*I1+D0*I0 in the example) in the LUT indexed by the output value. Because the weights may be non-integer values, the resulting sums stored may be real values. For example, with values of +1, −1, +1, and +1 for D3, D2, D1, and D0, respectively, and values of 1.1, 1.1, 1.2, and 1 for I3, I2, I1, and I0, respectively, resulting products of +1.1, −1.1, +1.2, and +1 may be calculated, and a resulting sum of +2.2 stored in the LUT for ADC outputs +1, −1, +1, and +1 for D3, D2, D1, and D0, respectively. In this way, when a particular ADC output value is presented at the input to the LUT, the output of the LUT will provide that value as modified, at the bit level, by weights Ii.
Referring back to
Filter 204 can be any suitable component(s) for filtering the difference signal output by subtracter 202. For example, in some embodiments, filter 204 can be a loop filter.
ADC 206 can be any suitable analog-to-digital converter that has the same number of bits as DAC 208. For example, in some embodiments, ADC 206 can be a five-level ADC that has a four-bit thermometer coded output. Any suitable type of ADC, any suitable number of levels can be used in ADC 206, and any suitable coding can be used.
DAC 208 can be any suitable digital-to-analog converter that has the same number of bits as ADC 206. For example, in some embodiments, DAC 208 can be a five-level DAC that has a four-bit thermometer coded input. Any suitable type of DAC can be used, any suitable number of levels can be used in DAC 208. As another example, although a current DAC is illustrated in
Switch 210 can be any switch for configuring the connections between the outputs of ADC 206 and the inputs of DAC 208. For example, in some embodiments, switch 210 can be implemented as a (N−1)×(N−1) switch matrix which implements a circular shifter. In some embodiments, the order of changing the connections between the bits of the ADC and the bits of the DAC can occur in any order that connects each ADC bit to each DAC bit, and need not be done in the order of a circular shifter as described herein.
LUT 212 can be any device suitable for use as a look-up table. For example, in some embodiments, LUT 212 can be implemented using a flash memory device (or any other suitable alterable memory device (such as an EEPROM, RAM, etc.) having the same number of data input bits as ADC 206 has output bits.
Control circuitry 214 can be any suitable circuitry or combination of circuitry for controlling switch, sampling the ADC output values, calculating the averages and weights, populating the LUT, and/or performing any other suitable functions as described herein. For example control circuitry 214 can include a hardware processor and memory, dedicated logic circuitry, a computer, and/or any other suitable components.
In some embodiments, any suitable computer readable media can be used for storing instructions for performing the processes described herein. Such computer readable media can be part of or coupled to control circuitry 214. For example, in some embodiments, computer readable media can be transitory or non-transitory. For example, non-transitory computer readable media can include media such as magnetic media (such as hard disks, floppy disks, and/or any other suitable media), optical media (such as compact discs, digital video discs, Blu-ray discs, and/or any other suitable optical media), semiconductor media (such as flash memory, electrically programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), and/or any other suitable semiconductor media), any suitable media that is not fleeting or devoid of any semblance of permanence during transmission, and/or any suitable tangible media. As another example, transitory computer readable media can include signals on networks, in wires, conductors, optical fibers, circuits, any suitable media that is fleeting and devoid of any semblance of permanence during transmission, and/or any suitable intangible media.
It should be noted that the above steps of the flow diagram of
The provision of the examples described herein (as well as clauses phrased as “such as,” “e.g.,” “including,” and the like) should not be interpreted as limiting the claimed subject matter to the specific examples; rather, the examples are intended to illustrate only some of many possible aspects.
Although the invention has been described and illustrated in the foregoing illustrative embodiments, it is understood that the present disclosure has been made only by way of example, and the numerous changes in the details of implementation of the invention can be made without departing from the spirit and scope of the invention, which is only limited by the claims which follow. Features of the disclosed embodiments can be combined and rearranged in various ways.
This application claims the benefit of U.S. Provisional Patent Application No. 61/884,015, filed Sep. 28, 2013, and U.S. Provisional Patent Application No. 62/008,792, filed Jun. 6, 2014, each of which is hereby incorporated by reference herein in its entirety.
This invention was made with government support under contract CCF-0964497 awarded by the National Science Foundation, contract PHY-1067934 awarded by the National Science Foundation, and award 1309721 granted by the National Science Foundation. The government has certain rights in the invention.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US14/58122 | 9/29/2014 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
61884015 | Sep 2013 | US | |
62008792 | Jun 2014 | US |