US20120218134A1 - Method for use in a Sigma-Delta Analog to Digital Converter, Sigma-Delta Analog to Digital Converters and Systems Comprising a Sigma-Delta Analog to Digital Converter - Google Patents
Method for use in a Sigma-Delta Analog to Digital Converter, Sigma-Delta Analog to Digital Converters and Systems Comprising a Sigma-Delta Analog to Digital Converter Download PDFInfo
- Publication number
- US20120218134A1 US20120218134A1 US13/036,203 US201113036203A US2012218134A1 US 20120218134 A1 US20120218134 A1 US 20120218134A1 US 201113036203 A US201113036203 A US 201113036203A US 2012218134 A1 US2012218134 A1 US 2012218134A1
- Authority
- US
- United States
- Prior art keywords
- value
- adc
- capture
- trigger signal
- function element
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 230000006870 function Effects 0.000 claims description 73
- 230000010354 integration Effects 0.000 claims description 40
- 230000001960 triggered effect Effects 0.000 claims description 37
- 238000012546 transfer Methods 0.000 claims description 21
- 239000000872 buffer Substances 0.000 claims description 20
- 230000003139 buffering effect Effects 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 9
- 238000013213 extrapolation Methods 0.000 description 7
- 238000005259 measurement Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M3/00—Conversion of analogue values to or from differential modulation
- H03M3/30—Delta-sigma modulation
- H03M3/458—Analogue/digital converters using delta-sigma modulation as an intermediate step
- H03M3/494—Sampling or signal conditioning arrangements specially adapted for delta-sigma type analogue/digital conversion systems
- H03M3/496—Details of sampling arrangements or methods
Definitions
- aspects of this disclosure relate to a method for use in a sigma-delta analog to digital converter, sigma-delta analog to digital converters and systems comprising sigma-delta analog to digital converters.
- Exemplary sigma-delta (or: delta-sigma) analog to digital converters are often employed to continuously capture measuring data.
- SD-ADC sigma-delta
- the sigma-delta (SD) method does not allow direct generation of a measuring value which corresponds to one certain point in time, but to a certain measurement time window.
- the generated data is supplied with a corresponding time stamp indicating the generation time of the respective value and each value is stored together with its corresponding time stamp.
- an additional integrator can be used to integrate over a defined number of decimation results, wherein a decimation result is a result of a respective measurement window.
- the required value may be calculated by linear interpolating or extrapolating two SD-ADC values generated subsequently.
- the time at which a value is required has to be captured and stored so that it can be related to the points of time at which the two “nearest” SD-ADC values have been generated. For example, if measuring values are required periodically and the time periods of these required values are shorter than the time periods of the generated SD-ADC values, calculation of “in-between” or intermediate values is continuously required.
- DMA direct memory access
- a sigma-delta analog to digital converter comprising a modulator, a decimation filter, a decimation counter provided with a first capture function element, and a decimator data output provided with a second capture function element, wherein the first capture element captures a value of the decimation counter when triggered by an external trigger signal and the second capture element captures a value of the decimator data output when triggered by the external trigger signal.
- a method for use in a sigma-delta analog to digital converter comprising a modulator, a decimation filter, a decimation counter, and a decimator data output, wherein the method comprises receiving an external trigger signal and capturing a value of the decimation counter and a value of the decimator data output upon receiving the external trigger signal.
- SD-ADC sigma-delta analog to digital converter
- FIG. 1 shows a simplified diagram of an exemplary sigma-delta analog to digital converter (SD-ADC).
- FIG. 2 shows a schematic diagram illustrating the calculation of the intermediate values.
- FIG. 3 shows a simplified schematic diagram of a possible design of an exemplary system for capturing and storing SD-ADC values and timer values.
- FIG. 4 exemplarily shows a simplified schematic diagram of a system according to an embodiment of the invention.
- FIG. 5 exemplarily shows a simplified schematic diagram of a system according to a further embodiment of the invention.
- FIG. 6 exemplarily shows a simplified schematic diagram of a system according to a further embodiment of the invention.
- FIG. 7 shows a first embodiment of an SD-ADC which may be used in the exemplary system of FIG. 6 .
- FIG. 8 shows a second embodiment of an SD-ADC which may be used in the exemplary system of FIG. 6 .
- FIG. 9 shows a method according to a further embodiment of the invention.
- FIG. 10 shows a method according to a further embodiment of the invention.
- FIG. 1 shows a simplified diagram of an exemplary sigma-delta (or: delta-sigma) analog to digital converter (SD-ADC).
- SD-ADC comprises a modulator 101 , a decimation filter 102 provided with a first capture function element 108 , a decimation counter 103 , an integrator 104 provided with a second capture function element 109 , an integration counter 105 , and an integrator output shadow 106 .
- a “capture function element” refers to a circuit which continuously receives signals (e.g. data signals) at its input. Only when triggered by a suitable trigger signal received at its trigger input, the capture function element holds (“freezes”) and outputs the currently or rather lastly received signal. In a way, a capture function element may be considered as the digital equivalent to an analog sample and hold circuit.
- the modulator 101 has its outputs connected to the input of the decimation filter 102 and the input of the decimation counter 103 .
- the output of the decimation counter 103 is connected to an input of the first capture function element 108 and the input of the integration counter.
- the output of the decimation filter 102 is connected to an input of the integrator 104 via the first capture function element 108 which is triggered by the output of the decimation counter.
- the output of the integration counter 105 is connected to an input of the integrator and an input of the second capture function element 109 .
- the output of the integrator 104 is connected to the integrator output shadow 106 via the second capture function element 109 which is triggered by the output of the integration counter 105 .
- the decimation filter 102 continuously receives samples (i.e. data) from the modulator 101 and generates a decimated sample based on a predetermined number of received samples wherein the number is defined by the oversampling rate of the SD-ADC. For this, the decimation filter 102 is triggered by the output of the decimation counter 103 .
- the decimation counter 103 receives a clock frequency of the modulator 101 , f MOD , and, based on an oversampling rate (OSR), triggers the output of a decimated sample. In other words, the decimation counter 103 “counts” the samples received by the decimation filter 102 from the modulator 101 and triggers the output of a decimated sample when a predetermined number of samples has been received by the decimation filter 102 .
- OSR oversampling rate
- the integrator 104 receives the decimated samples from the decimation filter 102 and integrates over the decimated samples.
- the integration counter 105 also receives the trigger signals output by the decimation counter 103 .
- the integration counter 105 When the integration counter 105 has received a predetermined number of trigger signals from the decimation counter 103 , the integration counter 105 outputs a further trigger signal which causes a transfer of the current integration value to the integrator output shadow and a reset of the integrator, i.e. the current integrator value is reset to 0.
- the integrator 104 integrates over a predetermined number of decimation samples. Then, upon triggering by the integration counter 105 , the integration value obtained by integration over the predetermined number of decimation samples is transferred to the integrator output shadow 106 , the integrator 104 is reset and the integration starts anew.
- FIG. 2 shows a schematic diagram illustrating the calculation of the intermediate values.
- An exemplary development of values generated by the SD-ADC over time may be represented by a step or staircase function as the SD-ADC values are generated at certain point of times (T 0 , T 1 , T 2 , . . . ) separated by constant time intervals ⁇ T during which respective SD-ADC values (A 0 , A 1 , A 2 , . . . ) do not change.
- Measuring values are, however, required at certain time points, e.g. t a , t b , t c , t d . . . , which are separated by time intervals ⁇ t, wherein ⁇ t ⁇ T.
- the step function does not show the correct values of the quantity to be measured at the time points t a , t b , t c and t d .
- the development of the quantity to be measured may be considered as linear function including the points (T 0 /A 0 , T 1 /A 1 and T 2 /A 2 ).
- a c A 1 +( t c ⁇ T 1 )*( A 1 ⁇ A 0 )/( T 2 ⁇ T 1 ) (1a)
- a c A 1 +( t c ⁇ T 1 )*( A 1 ⁇ A 0 )/( T 1 ⁇ T 0 ) (1b)
- FIG. 3 shows a simplified schematic diagram of a possible design of an exemplary system for capturing and storing SD-ADC values and timer values required for the extrapolation (or interpolation) described above, i.e. the SD-ADC values together with their respective times of generation and the times of events at which data is required.
- the exemplary system shown in FIG. 3 comprises an SD-ADC 310 , a first memory area 321 for storing SD-ADC values, a second memory area 322 for storing timer values, a control element 330 indicating each new event at which data is required, a timer 340 provided with a first capture function element 371 and a second capture function element 372 , a first DMA channel 351 , a second DMA channel 352 , a third DMA channel 353 , a first capture register 361 for holding a first current (last captured) timer value and a second capture register 362 for holding a second current (last captured) timer value.
- the timer 340 provides both the times at which respective SD-ADC values are generated (“generation times”) and the times of events at which data is required (“event times”). For this, the timer 340 comprises a first capture function for capturing the generation times of respective SD-ADC values and a second capture function for capturing the event times.
- the first capture function element 371 is triggered by the first trigger signal to capture the current timer value (e.g. T 0 or T 1 ) and transfer it to the first capture register 361 for buffering. Then, the second DMA channel 352 reads out the buffered timer value from the first capture register 361 and transfers it to the second memory area 322 for storing.
- the first trigger signal also triggers the first DMA channel 351 to read out the newly generated SD-ADC value (e.g. A 0 or A 1 ) from the SD-ADC 310 and transfer it to the first memory area 321 for storing. It is pointed out that the SD-ADC values and their respective generation times are stored such that the SD-ADC value is unambiguously related to its corresponding generation time.
- the SD-ADC values and their respective generation times are stored such that the SD-ADC value is unambiguously related to its corresponding generation time.
- the second capture function element 372 is triggered by the second trigger signal to capture the current timer value (e.g. t a , t b or t c ) and transfer it to the second capture register 362 for buffering.
- the third DMA channel 353 which also receives the second trigger signal, reads out the buffered timer value from the second capture register 362 and transfers it to the second memory area 322 for storing.
- FIG. 4 exemplarily shows a simplified schematic diagram of a system according to an embodiment of the invention.
- the system of FIG. 4 is a refinement of the system of FIG. 3 as it requires less chip area and is still capable of capturing and storing SD-ADC values and timer values required for the extrapolation (or interpolation) described above.
- the system of FIG. 4 reduces the number of required DMA channels as only two DMA channels are utilized.
- the exemplary system shown in FIG. 4 comprises an SD-ADC 410 , a first memory area 421 for storing SD-ADC values, a second memory area 422 for storing timer values, a control element 430 indicating each new event at which data is required, a timer 440 provided with a capture function element 471 , a first DMA channel 451 , a second DMA channel 452 , and a capture register 461 for holding a current (last captured) timer value.
- the SD-ADC 410 When the SD-ADC 410 generates a new SD-ADC value/result, it indicates the generation of the new SD-ADC value/result by outputting a first trigger signal (“new result”) to the first DMA channel 451 and the timer 440 .
- the first trigger signal triggers the first DMA channel 451 to read out the newly generated SD-ADC value (e.g. A 0 or A 1 ) from the SD-ADC 410 and transfer it to the first memory area 421 for storing.
- the first trigger signal causes the timer 440 to be cleared, i.e. upon receiving the first trigger signal, the timer is reset to 0.
- the capture function element 471 is triggered by the second trigger signal to capture the current timer value and transfer it to the capture register 461 for buffering. Then, the second DMA channel 452 , which also receives the second trigger signal, reads out the buffered timer value from the capture register 461 and transfers it to the second memory area 422 for storing.
- the timer 440 is reset to 0 each time the SD-ADC 410 outputs a new result.
- the timer values comprise not absolute, but relative time specifications which specify the time elapsed since the ADC-SD 410 has output its lastly computed value/result.
- the timer values ⁇ t stored in the second memory area 422 respectively indicate the “age” of the lastly computed SD-ADC value at the time of a certain event indicated by the control element 430 . All values output by the SD-ADC 410 are stored in chronological order (i.e. in the order/reverse order of their generation) in the first memory area 421 .
- the SD-ADC values are stored serially, wherein a just generated value is added to the series of SD-ADC values already stored in the first memory area 421 .
- the first memory area 421 and second memory area 422 comprise circular buffers which have a suitable number of elements to allow storage of the required values for a time period long enough for computing the intermediate measuring values.
- the calculation of this value should be performed in a preferably short period in order to allow the just stored timer value ⁇ t m to be related to its corresponding SD-ADC value A n (whose “age” at the time of the event is stored as timer value ⁇ t m ).
- the required value can be calculated by means of the following equation which is based on the equation (1a) and (1b), respectively:
- a c A n + ⁇ t m *( A n ⁇ A n ⁇ 1 )/ ⁇ T
- a c A n + ⁇ t m / ⁇ T *( A n ⁇ A n ⁇ 1 ) (2)
- FIG. 5 exemplarily shows a simplified schematic diagram of a system according to an embodiment of the invention.
- the system of FIG. 5 is also a refinement of the system of FIG. 3 as it requires less chip area and is still capable of capturing and storing SD-ADC values and timer values required for the extrapolation (or interpolation) described above.
- the system of FIG. 5 reduces the number of required DMA channels.
- the exemplary system shown in FIG. 5 comprises an SD-ADC 510 , a first memory area 521 for storing SD-ADC values, a second memory area 522 for storing timer values, a control element 530 indicating each new event at which data is required, a timer 540 provided with a capture function element 571 , a first DMA channel 551 , a second DMA channel 552 , and a capture register 561 for holding a current (last captured) timer value.
- the SD-ADC 510 Each time the SD-ADC 510 generates a new SD-ADC value/result, it indicates the generation of the new SD-ADC value/result by outputting a first trigger signal (“new result”) to the timer 540 which causes the timer 440 to be cleared. Thus, upon receiving the first trigger signal from the SD-ADC 510 , the timer is reset to 0.
- control element 530 When the control element 530 indicates a new event, it outputs a second trigger signal (“new event”) which is received by the first DMA channel 551 , the second DMA channel 552 and the capture function element 571 .
- new event a second trigger signal
- the first DMA channel 551 Upon receiving the second trigger signal, the first DMA channel 551 is triggered to read out the current (lastly generated) SD-ADC value/result (e.g. A 0 or A 1 ) from the SD-ADC 510 and transfer it to the first memory area 521 for storing.
- the current (lastly generated) SD-ADC value/result e.g. A 0 or A 1
- the capture function element 571 Upon receiving the second trigger signal, the capture function element 571 is triggered to capture the current timer value and transfer it to the capture register 561 for buffering. Then, the second DMA channel 552 , which also receives the second trigger signal, reads out the buffered timer value from the capture register 561 and transfers it to the second memory area 522 for storing.
- the timer values are not absolute, but relative time specifications which specify the time elapsed since the ADC-SD has output its lastly computed value/result.
- the timer values ⁇ t stored in the second memory area 522 respectively indicate the “age” of the lastly computed SD-ADC value at the time of a certain event indicated by the control element 530 .
- a timer value ⁇ t m can be related to its corresponding SD-ADC value A n (whose “age” at the time of the event is stored as timer value ⁇ t m ) in a simple manner: Those timer and SD-ADC values ⁇ t m and A n are brought together which relate to corresponding positions in the series of SD-ADC and timer values stored chronologically in the first and second memory area, respectively.
- the timer value stored at “position 3 ” in the second memory area 522 is related to the SD-ADC value stored at “position 3 ” in the first memory area 521 .
- the timer value stored at “position p” in the second memory area 522 is related to the SD-ADC value stored at “position p” in the first memory area 521 .
- the first memory area and second memory area comprise circular buffers which have a suitable number of elements to allow storage of the required values for a time period long enough for computing the intermediate measuring values.
- the measuring value required at a certain time/event can also be calculated by means of equation (2) which has already been introduced with reference to the system of FIG. 4 :
- a c A n + ⁇ t m *( A n ⁇ A n ⁇ 1 )/ ⁇ T
- a c A n + ⁇ t m / ⁇ T *( A n ⁇ A n ⁇ 1 ) (2)
- a minor difficulty may arise when trying to specify the value A n ⁇ 1 which represents the SD-ADC value generated previously to A n as the events at which a new measuring value is required may occur with higher frequency than the generation of values by the SD-ADC.
- the SD-ADC value stored previously in the first memory area may not be the value generated previously by the SD-ADC, but the same SD-ADC value.
- a stored timer value will be smaller than its antecessor only if the timer has been reset to 0 between the capture of these two timer values. Further, the timer is reset to 0 if and only if the SD-ADC outputs a new value/result.
- the stored timer values may be examined in order to specify the SD-ADC value generated previously: A preceding timer value which is smaller than the timer value ⁇ t m used in equation (2) refers to the same SD-ADC value as the timer value ⁇ t m does.
- the timer values ⁇ t m may be examined when being received: If the currently received timer value ⁇ t m is smaller than the previously received timer value, the currently received timer value ⁇ t m refers to a new value/result output by the SD-ADC.
- Equation (2) describes the calculation of a required value by extrapolation.
- equation (3) the calculation of a required value may be done by interpolation using equation (3):
- a c A n + ⁇ t m *( A n+1 ⁇ A n )/ ⁇ T
- a c A n + ⁇ t m / ⁇ T *( A n+1 ⁇ A n ) (3)
- the SD-ADC value to which the “first” subsequent timer value which is smaller than the timer value ⁇ t m refers, is the SD-ADC value A n+1 generated consecutively to the SD-ADC value A.
- FIG. 6 exemplarily shows a simplified schematic diagram of a system according to a further embodiment of the invention.
- the system shown in FIG. 6 requires even less chip are than the systems according to FIGS. 4 and 5 and is still capable of capturing and storing SD-ADC values and timer values required for the extrapolation (or interpolation) described above.
- the system of FIG. 6 further reduces the number of required DMA channels as only one DMA channel is utilized.
- the exemplary system shown in FIG. 6 comprises an SD-ADC 610 , a memory area 621 , a control element 630 indicating each new event at which data is required, and a DMA channel 651 .
- the SD-ADC 610 respectively provides both the current (lastly generated) SD-ADC value A n and its corresponding “age” ⁇ t m at the time of the event.
- FIGS. 7 and 8 exemplary embodiments of an SD-ADC which may be used in the exemplary system shown in FIG. 6 are shown and will be described below.
- control element 630 indicates each new event by outputting a trigger signal (“new event”) which is received by the SD-ADC 610 and the DMA channel 651 .
- the SD-ADC 610 Upon receiving the trigger signal, the SD-ADC 610 is triggered to provide the current (lastly generated) SD-ADC value/result A n and its corresponding “age” ⁇ t m at the time of the event.
- the DMA channel 651 Upon receiving the trigger signal, the DMA channel 651 is triggered to read out the current (lastly generated) SD-ADC value/result A n together with its corresponding “age” ⁇ t m from the SD-ADC 610 and transfer it to the memory area 621 for storing.
- the memory area 621 comprises a circular buffer which has a suitable number of elements to allow storage of the required values for a time period long enough for computing the intermediate measuring values.
- a c A n + ⁇ t m *( A n ⁇ A n ⁇ 1 )/ ⁇ T
- a c A n + ⁇ t m / ⁇ T *( A n ⁇ A n ⁇ 1 ) (2)
- a minor difficulty may arise when trying to specify the value A n ⁇ 1 which represents the SD-ADC value generated previously to A n as the events, at which a new measuring value is required, may occur with higher frequency than the generation of values by the SD-ADC.
- the SD-ADC value stored previously in the first memory area may not be the value generated previously by the SD-ADC, but the same SD-ADC value.
- a stored timer value will be smaller than its antecessor only if the “internal timer” of the SD-ADC has been reset to 0 between the generation of these two timer values. Further, the “internal timer” is reset to 0 if and only if the SD-ADC has just generated a new value/result.
- the stored timer values may be examined in order to specify the SD-ADC value generated previously: A preceding timer value which is smaller than the timer value ⁇ t m used in equation (2) refers to the same SD-ADC value as the timer value ⁇ t m does.
- the timer values ⁇ t m may be examined when being received: If the currently received timer value ⁇ t m is smaller than the previously received timer value, the currently received timer value ⁇ t m refers to a new value/result output by the SD-ADC.
- equation (2) describes the calculation of a required value by extrapolation.
- equation (3) describes the calculation of a required value by interpolation.
- a c A n + ⁇ t m *( A n+1 ⁇ A n )/ ⁇ T
- a c A n + ⁇ t m / ⁇ T *( A n ⁇ 1 ⁇ A n ) (3)
- the SD-ADC value, to which the “first” subsequent timer value which is smaller than the timer value ⁇ t m belongs is the SD-ADC value A n+1 generated consecutively to the SD-ADC value A n .
- FIG. 7 shows a first embodiment of an SD-ADC which may be used in the exemplary system of FIG. 6 .
- the illustrated exemplary SD-ADC comprises a modulator 715 , a decimation filter 721 provided with a first capture element 761 , a decimation counter 722 provided with a second capture element 762 , a decimator output shadow 723 provided with a third capture element 763 , a timer value generator (time stamp generator) 741 , a capture register 751 having a first section 751 a for holding a current (lastly captured) timer value and a second section 751 b for holding a current (lastly captured) SD-ADC value.
- a timer value generator time stamp generator
- the modulator 715 has its outputs connected to the input of the decimation filter 721 and the input of the decimation counter 722 .
- the output of the decimation counter 722 is connected to an input of the first capture function element 761 .
- the output of the decimation filter 721 is connected to an input of the decimator output shadow 723 via the first capture function element 761 which is triggered by the output of the decimation counter 722 .
- the output of the decimator output shadow 723 is connected to the second section 751 b of the capture register 751 via the third capture function element 763 which is triggered by an external trigger signal (e.g. “new event”) received at an input of the SD-ADC 710 .
- an external trigger signal e.g. “new event
- An output of the decimation counter 722 is connected to an input of the timer value generator 741 via the second capture function element 762 which is also triggered by the external trigger signal.
- An output of the timer value generator 741 is connected to the first section 751 a of the capture register 751 .
- the decimation filter 721 continuously receives samples (i.e. data) from the modulator 715 and generates a decimated sample based on a predetermined number of received samples wherein the number is defined by the oversampling rate of the SD-ADC 710 . For this, the decimation filter 721 is triggered by the output of the decimation counter 722 .
- the decimation counter 722 receives a clock frequency of the modulator 715 , f MOD , and, based on an oversampling rate OSR, triggers the output of a decimated sample. In other words, the decimation counter 722 “counts” the samples received by the decimation filter 721 from the modulator 715 and triggers the output of a decimated sample when a predetermined number of samples has been received by the decimation filter 721 .
- the decimated sample is transferred to the decimator output shadow which holds the received value until it receives a “new” decimated sample.
- the third capture function element 763 reads out the value from the decimator output shadow 723 , when triggered by the external trigger signal received at an input of the SD-ADC 710 , and writes the read out value into the second section 751 a of the capture register 751 .
- the second capture function element 762 reads out the current counter value from the decimation counter 722 , when triggered by the external trigger signal and transfers the read out decimation counter value to the timer value generator 741 .
- the timer value generator (time stamp generator) 741 may optionally be provided to generate a timer value (time stamp) based on the received decimation counter value and the decimation rate of the decimator. In other words, the timer value generator performs a format conversion to obtain the timer value. Then, the timer value generator transfers the timer value, which is the “age” of the current (lastly generated) SD-ADC value at the time of the event, to the first section 751 a of the capture register 751 .
- timer value ⁇ t m may be calculated using the following equation:
- FIG. 8 shows a second embodiment of an SD-ADC which may be used in the exemplary system of FIG. 6 .
- the illustrated exemplary SD-ADC comprises a modulator 815 , a decimation filter 821 provided with a first capture element 861 , a decimation counter 822 provided with a third capture element 863 , an integrator 831 provided with a second capture element 862 , an integration counter 832 provided with a fourth capture element 864 , an integrator output shadow 833 provided with a fifth capture element 865 , a timer value generator (time stamp generator) 841 , a capture register 851 comprising a first section 851 a for holding a current (lastly captured) timer value and a second section 851 b for holding a current (lastly captured) SD-ADC value.
- a timer value generator time stamp generator
- the modulator 815 has its outputs connected to the input of the decimation filter 821 and the input of the decimation counter 822 .
- the decimation counter 822 has a first output connected to an input of the first capture function element 861 and the input of the integration counter 832 , and a second output connected to an input of the third capture function element 863 .
- the output of the decimation filter 821 is connected to an input of the integrator 862 via the first capture function element 861 which is triggered by the first output of the decimation counter 822 .
- the integration counter 832 has a first output connected to an input of the integrator 831 and an input of the second capture function element 862 , and a second output connected to an input of the fourth capture function element 864 .
- the output of the integrator 831 is connected to the integrator output shadow 833 via the second capture function element 862 which is triggered by the first output of the integration counter 832 .
- the output of the integrator output shadow 833 is connected to the second section 851 b of the capture register 851 via the fifth capture function element 865 which is triggered by an external trigger signal received at an input of the SD-ADC 810 .
- the second output of the decimation counter 822 is connected to a first input of the timer value generator 841 via the third capture function element 863 which is also triggered by the external trigger signal.
- An output of the integration counter 832 is connected to a second input of the timer value generator 841 via the fourth capture function element 864 which is also triggered by the external trigger signal.
- the timer value generator 841 has its output connected to the first section 851 a of the capture register 851 .
- the decimation filter 821 continuously receives samples (i.e. data) from the modulator 815 and generates a decimated sample based on a predetermined number of received samples wherein the number is defined by the oversampling rate of the SD-ADC. For this, the capture function of the decimation filter 821 is triggered by the first output of the decimation counter 822 .
- the decimation counter 822 receives a clock frequency of the modulator 815 , f MOD , and, based on an oversampling rate OSR, triggers the output of a decimated sample. In other words, the decimation counter 822 “counts” the samples received by the decimation filter 821 from the modulator 815 and triggers the output of a decimated sample when a predetermined number of samples has been received by the decimation filter 821 .
- the integrator 831 receives the decimated samples from the decimation filter 821 and integrates over the received decimated samples.
- the integration counter 832 also receives the trigger signal output by the decimation counter 822 .
- the integration counter 832 When the integration counter 832 has received a predetermined number of trigger signals from the decimation counter 822 , the integration counter 832 outputs a further trigger signal which causes a transfer of the current integration value to the integrator output shadow 833 and a reset of the integrator 831 , i.e. the current integrator value is reset to 0.
- the integrator 831 integrates over a predetermined number of decimation samples. Then, upon triggering by the integration counter 832 , the integration value obtained by integration over the predetermined number of decimation samples is transferred to the integrator output shadow 833 which holds the received value until it receives a “new” integration result over a predefined number of decimated samples and the integrator 831 is reset whereupon the integration starts anew.
- the third, fourth and fifth capture function elements 863 , 864 and 865 are triggered to capture the respective signals applied to their inputs.
- the third capture function element 863 reads out the current counter value from the decimation counter 822 , when triggered by the external trigger signal, and transfers the read out decimation counter value to the timer value generator 841 .
- the fourth capture function element 864 reads out the current counter value from the integration counter 832 , when triggered by the external trigger signal, and transfers the read out integration counter value to the timer value generator 841 .
- the fifth capture function element 865 reads out the value from the integrator output shadow 833 , when triggered by the external trigger signal, and writes the read out value into the second section 851 b of the capture register 851 .
- the timer value generator (time stamp generator) 841 generates a timer value (time stamp) based on:
- the timer value generator 841 then transfers the calculated timer value, which is the “age” of the current (lastly generated) SD-ADC value at the time of the event, to the first section 851 a of the capture register 851 .
- timer value ⁇ t m may be calculated using the following equation:
- the SD-ADCs shown in FIGS. 7 and 8 provide the SD-ADC values and the corresponding timer values such that a single DMA channel can be used to respectively read out an SD-ADC value together with its corresponding timer value.
- DMA channels in the exemplary embodiments of the invention described before is not mandatory, but other capturing means may also be used, wherein the capturing means may comprise one of the following elements or a combination thereof: a shadow register, a direct memory access channel, a software interrupt for initiating a software copy operation, and/or a capability of a central processing unit to poll for a certain event in order to start a copy operation.
- FIG. 9 shows a method according to a further embodiment of the invention.
- the method is intended for use in a sigma-delta analog to digital converter comprising a modulator, a decimation filter, a decimation counter, and a decimator data output.
- the method receives an external trigger signal.
- the method captures a value of the decimation counter and a value of the decimator data output.
- the method generates a time stamp for the captured value of the decimator data output based on the captured value of the decimation counter.
- the method buffers the captured value of the decimator data output and the generated time stamp in a register.
- FIG. 10 shows a method according to a further embodiment of the invention.
- the method is intended for use in a sigma-delta analog to digital converter comprising a modulator, a decimation filter, a decimation counter, an integrator, an integration counter, and an integrator data output.
- an external trigger signal is received.
- a value of the decimation counter, a value of the integration counter and a value of the integrator data output are captured.
- the method generates a time stamp for the captured value of the integrator data output based on the captured value of the decimation counter and the captured value of the integration counter.
- the method buffers the captured value of the integrator data output and the generated time stamp in a register.
Abstract
Description
- Aspects of this disclosure relate to a method for use in a sigma-delta analog to digital converter, sigma-delta analog to digital converters and systems comprising sigma-delta analog to digital converters.
- Exemplary sigma-delta (or: delta-sigma) analog to digital converters (SD-ADCs) are often employed to continuously capture measuring data. As the SD-ADC measuring process involves integration of a plurality of samples over a time window of a certain length, the sigma-delta (SD) method does not allow direct generation of a measuring value which corresponds to one certain point in time, but to a certain measurement time window. In order to establish a timing relation between these measurement windows and other tasks in the system, the generated data is supplied with a corresponding time stamp indicating the generation time of the respective value and each value is stored together with its corresponding time stamp. To extend a value generation over larger measurement windows, an additional integrator can be used to integrate over a defined number of decimation results, wherein a decimation result is a result of a respective measurement window.
- If a measuring value is required at a certain point within a time window between two SD-ADC values generated subsequently, the required value may be calculated by linear interpolating or extrapolating two SD-ADC values generated subsequently. For this purpose, the time at which a value is required has to be captured and stored so that it can be related to the points of time at which the two “nearest” SD-ADC values have been generated. For example, if measuring values are required periodically and the time periods of these required values are shorter than the time periods of the generated SD-ADC values, calculation of “in-between” or intermediate values is continuously required.
- This, however, requires specially adapted hardware and respective connections in the system so that, in general, custom-made modules have to be used instead of generic modules. In particular, three direct memory access (DMA) channels are required for moving data from different modules to memory (ADC value and two timer values), wherein each DMA channel takes a large amount of chip area and, thus, is very costly.
- Therefore, among other needs, there exists a need for a system for providing SD-ADC values and timer values required for calculating intermediate SD-ADC values which takes a reduced amount of chip area without involving significant loss of accuracy and/or resolution.
- In accordance with an aspect of the invention, there is provided a sigma-delta analog to digital converter (SD-ADC) comprising a modulator, a decimation filter, a decimation counter provided with a first capture function element, and a decimator data output provided with a second capture function element, wherein the first capture element captures a value of the decimation counter when triggered by an external trigger signal and the second capture element captures a value of the decimator data output when triggered by the external trigger signal.
- In accordance with a further aspect of the invention, there is provided a method for use in a sigma-delta analog to digital converter (SD-ADC) comprising a modulator, a decimation filter, a decimation counter, and a decimator data output, wherein the method comprises receiving an external trigger signal and capturing a value of the decimation counter and a value of the decimator data output upon receiving the external trigger signal.
- Further features, aspects and advantages of the present invention will become apparent from the following detailed description of the invention made with reference to the accompanying drawings.
- The accompanying drawings are included to provide a further understanding of the present invention and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments of the present invention and together with the description serve to explain the principles of the invention. Other embodiments of the present invention and many of the intended advantages of the present invention will be readily appreciated as they become better understood by reference to the following detailed description.
-
FIG. 1 shows a simplified diagram of an exemplary sigma-delta analog to digital converter (SD-ADC). -
FIG. 2 shows a schematic diagram illustrating the calculation of the intermediate values. -
FIG. 3 shows a simplified schematic diagram of a possible design of an exemplary system for capturing and storing SD-ADC values and timer values. -
FIG. 4 exemplarily shows a simplified schematic diagram of a system according to an embodiment of the invention. -
FIG. 5 exemplarily shows a simplified schematic diagram of a system according to a further embodiment of the invention. -
FIG. 6 exemplarily shows a simplified schematic diagram of a system according to a further embodiment of the invention. -
FIG. 7 shows a first embodiment of an SD-ADC which may be used in the exemplary system ofFIG. 6 . -
FIG. 8 shows a second embodiment of an SD-ADC which may be used in the exemplary system ofFIG. 6 . -
FIG. 9 shows a method according to a further embodiment of the invention. -
FIG. 10 shows a method according to a further embodiment of the invention. - In the following detailed description, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural or other changes may be made without departing from the scope of the present invention. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.
-
FIG. 1 shows a simplified diagram of an exemplary sigma-delta (or: delta-sigma) analog to digital converter (SD-ADC). The illustrated exemplary SD-ADC comprises amodulator 101, adecimation filter 102 provided with a firstcapture function element 108, adecimation counter 103, anintegrator 104 provided with a secondcapture function element 109, anintegration counter 105, and anintegrator output shadow 106. - Herein, a “capture function element” refers to a circuit which continuously receives signals (e.g. data signals) at its input. Only when triggered by a suitable trigger signal received at its trigger input, the capture function element holds (“freezes”) and outputs the currently or rather lastly received signal. In a way, a capture function element may be considered as the digital equivalent to an analog sample and hold circuit.
- The
modulator 101 has its outputs connected to the input of thedecimation filter 102 and the input of thedecimation counter 103. The output of thedecimation counter 103 is connected to an input of the firstcapture function element 108 and the input of the integration counter. The output of thedecimation filter 102 is connected to an input of theintegrator 104 via the firstcapture function element 108 which is triggered by the output of the decimation counter. The output of theintegration counter 105 is connected to an input of the integrator and an input of the secondcapture function element 109. The output of theintegrator 104 is connected to theintegrator output shadow 106 via the secondcapture function element 109 which is triggered by the output of theintegration counter 105. - The
decimation filter 102 continuously receives samples (i.e. data) from themodulator 101 and generates a decimated sample based on a predetermined number of received samples wherein the number is defined by the oversampling rate of the SD-ADC. For this, thedecimation filter 102 is triggered by the output of thedecimation counter 103. - The
decimation counter 103 receives a clock frequency of themodulator 101, fMOD, and, based on an oversampling rate (OSR), triggers the output of a decimated sample. In other words, thedecimation counter 103 “counts” the samples received by thedecimation filter 102 from themodulator 101 and triggers the output of a decimated sample when a predetermined number of samples has been received by thedecimation filter 102. - The
integrator 104 receives the decimated samples from thedecimation filter 102 and integrates over the decimated samples. - The
integration counter 105 also receives the trigger signals output by thedecimation counter 103. When theintegration counter 105 has received a predetermined number of trigger signals from thedecimation counter 103, theintegration counter 105 outputs a further trigger signal which causes a transfer of the current integration value to the integrator output shadow and a reset of the integrator, i.e. the current integrator value is reset to 0. - Thus, the
integrator 104 integrates over a predetermined number of decimation samples. Then, upon triggering by theintegration counter 105, the integration value obtained by integration over the predetermined number of decimation samples is transferred to theintegrator output shadow 106, theintegrator 104 is reset and the integration starts anew. - In the following, a typical situation will be illustrated wherein required values have to be calculated. In this example, a new value is respectively required after time intervals which are shorter than the time intervals that lie between two SD-ADC values generated subsequently. Thus, the required values are not obtained directly, but continuous calculation of these “in-between” or intermediate values is performed.
-
FIG. 2 shows a schematic diagram illustrating the calculation of the intermediate values. An exemplary development of values generated by the SD-ADC over time may be represented by a step or staircase function as the SD-ADC values are generated at certain point of times (T0, T1, T2, . . . ) separated by constant time intervals ΔT during which respective SD-ADC values (A0, A1, A2, . . . ) do not change. Measuring values are, however, required at certain time points, e.g. ta, tb, tc, td . . . , which are separated by time intervals Δt, wherein Δt<ΔT. As can be seen from the diagram, the step function does not show the correct values of the quantity to be measured at the time points ta, tb, tc and td. - The development of the quantity to be measured may be considered as linear function including the points (T0/A0, T1/A1 and T2/A2). This linear approximation is appropriate as the time intervals T1−T0=T2−T1=ΔT are sufficiently small. Therefore, the correct values of the quantity to be measured at the time points ta, tb, tc and td can be obtained by the following equation for the extrapolation between the points (T0/A0) and (T1/A1):
-
A c =A 1+(t c −T 1)*(A 1 −A 0)/(T 2 −T 1) (1a) -
or -
A c =A 1+(t c −T 1)*(A 1 −A 0)/(T 1 −T 0) (1b) - wherein:
- A0 represents the SD-ADC value generated at the time T0;
- A1 represents the SD-ADC value generated at the time T1;
- Ac represents the extrapolated value at the time tc;
- (T2−T2)=(T1−T0) represents the constant time interval lying between the generation of two subsequent SD-ADC values; and
- (tc−T1) represents the “age” of the SD-ADC value (generated at the time T1) at the time tc.
-
FIG. 3 shows a simplified schematic diagram of a possible design of an exemplary system for capturing and storing SD-ADC values and timer values required for the extrapolation (or interpolation) described above, i.e. the SD-ADC values together with their respective times of generation and the times of events at which data is required. - The exemplary system shown in
FIG. 3 comprises an SD-ADC 310, afirst memory area 321 for storing SD-ADC values, asecond memory area 322 for storing timer values, acontrol element 330 indicating each new event at which data is required, atimer 340 provided with a firstcapture function element 371 and a secondcapture function element 372, afirst DMA channel 351, asecond DMA channel 352, athird DMA channel 353, afirst capture register 361 for holding a first current (last captured) timer value and asecond capture register 362 for holding a second current (last captured) timer value. - The
timer 340 provides both the times at which respective SD-ADC values are generated (“generation times”) and the times of events at which data is required (“event times”). For this, thetimer 340 comprises a first capture function for capturing the generation times of respective SD-ADC values and a second capture function for capturing the event times. - When the SD-
ADC 310 generates a new SD-ADC value/result and indicates the generation of the new SD-ADC value/result by outputting a first trigger signal (“new result”), the firstcapture function element 371 is triggered by the first trigger signal to capture the current timer value (e.g. T0 or T1) and transfer it to thefirst capture register 361 for buffering. Then, thesecond DMA channel 352 reads out the buffered timer value from thefirst capture register 361 and transfers it to thesecond memory area 322 for storing. - The first trigger signal also triggers the
first DMA channel 351 to read out the newly generated SD-ADC value (e.g. A0 or A1) from the SD-ADC 310 and transfer it to thefirst memory area 321 for storing. It is pointed out that the SD-ADC values and their respective generation times are stored such that the SD-ADC value is unambiguously related to its corresponding generation time. - When the
control element 330 indicates a new event by outputting a second trigger signal (“new event”), the secondcapture function element 372 is triggered by the second trigger signal to capture the current timer value (e.g. ta, tb or tc) and transfer it to thesecond capture register 362 for buffering. Then, thethird DMA channel 353, which also receives the second trigger signal, reads out the buffered timer value from thesecond capture register 362 and transfers it to thesecond memory area 322 for storing. -
FIG. 4 exemplarily shows a simplified schematic diagram of a system according to an embodiment of the invention. The system ofFIG. 4 is a refinement of the system ofFIG. 3 as it requires less chip area and is still capable of capturing and storing SD-ADC values and timer values required for the extrapolation (or interpolation) described above. In particular, the system ofFIG. 4 reduces the number of required DMA channels as only two DMA channels are utilized. - The exemplary system shown in
FIG. 4 comprises an SD-ADC 410, afirst memory area 421 for storing SD-ADC values, asecond memory area 422 for storing timer values, acontrol element 430 indicating each new event at which data is required, atimer 440 provided with acapture function element 471, afirst DMA channel 451, asecond DMA channel 452, and acapture register 461 for holding a current (last captured) timer value. - When the SD-
ADC 410 generates a new SD-ADC value/result, it indicates the generation of the new SD-ADC value/result by outputting a first trigger signal (“new result”) to thefirst DMA channel 451 and thetimer 440. On the one hand, the first trigger signal triggers thefirst DMA channel 451 to read out the newly generated SD-ADC value (e.g. A0 or A1) from the SD-ADC 410 and transfer it to thefirst memory area 421 for storing. On the other hand, the first trigger signal causes thetimer 440 to be cleared, i.e. upon receiving the first trigger signal, the timer is reset to 0. - When the
control element 430 indicates a new event by outputting a second trigger signal (“new event”), thecapture function element 471 is triggered by the second trigger signal to capture the current timer value and transfer it to thecapture register 461 for buffering. Then, thesecond DMA channel 452, which also receives the second trigger signal, reads out the buffered timer value from thecapture register 461 and transfers it to thesecond memory area 422 for storing. - In the system of
FIG. 4 , thetimer 440 is reset to 0 each time the SD-ADC 410 outputs a new result. Thus, the timer values comprise not absolute, but relative time specifications which specify the time elapsed since the ADC-SD 410 has output its lastly computed value/result. Thus, the timer values Δt stored in thesecond memory area 422 respectively indicate the “age” of the lastly computed SD-ADC value at the time of a certain event indicated by thecontrol element 430. All values output by the SD-ADC 410 are stored in chronological order (i.e. in the order/reverse order of their generation) in thefirst memory area 421. In other words, the SD-ADC values are stored serially, wherein a just generated value is added to the series of SD-ADC values already stored in thefirst memory area 421. Advantageously, thefirst memory area 421 andsecond memory area 422 comprise circular buffers which have a suitable number of elements to allow storage of the required values for a time period long enough for computing the intermediate measuring values. - When an event occurs, i.e. a measuring value is required, the calculation of this value should be performed in a preferably short period in order to allow the just stored timer value Δtm to be related to its corresponding SD-ADC value An(whose “age” at the time of the event is stored as timer value Δtm). With that, the required value can be calculated by means of the following equation which is based on the equation (1a) and (1b), respectively:
-
A c =A n +Δt m*(A n −A n−1)/ΔT -
or -
A c =A n +Δt m /ΔT*(A n −A n−1) (2) - wherein:
- An represents the SD-ADC value generated lastly (at the time tc of the event) wherein the index n is a positive integer;
- An−1 represents the SD-ADC value generated previously to An;
- Ac represents the extrapolated value at the time tc;
- ΔT represents the constant time interval lying between the generation of two subsequent SD-ADC values (which is known for the respective SD-ADC converter); and
- Δtm represents the “age” of the current (lastly generated) SD-ADC value An at the time tc, wherein the index m is a positive integer.
-
FIG. 5 exemplarily shows a simplified schematic diagram of a system according to an embodiment of the invention. The system ofFIG. 5 is also a refinement of the system ofFIG. 3 as it requires less chip area and is still capable of capturing and storing SD-ADC values and timer values required for the extrapolation (or interpolation) described above. In particular, as only two DMA channels are utilized, the system ofFIG. 5 reduces the number of required DMA channels. - The exemplary system shown in
FIG. 5 comprises an SD-ADC 510, afirst memory area 521 for storing SD-ADC values, asecond memory area 522 for storing timer values, acontrol element 530 indicating each new event at which data is required, atimer 540 provided with acapture function element 571, afirst DMA channel 551, asecond DMA channel 552, and acapture register 561 for holding a current (last captured) timer value. - Each time the SD-
ADC 510 generates a new SD-ADC value/result, it indicates the generation of the new SD-ADC value/result by outputting a first trigger signal (“new result”) to thetimer 540 which causes thetimer 440 to be cleared. Thus, upon receiving the first trigger signal from the SD-ADC 510, the timer is reset to 0. - When the
control element 530 indicates a new event, it outputs a second trigger signal (“new event”) which is received by thefirst DMA channel 551, thesecond DMA channel 552 and thecapture function element 571. - Upon receiving the second trigger signal, the
first DMA channel 551 is triggered to read out the current (lastly generated) SD-ADC value/result (e.g. A0 or A1) from the SD-ADC 510 and transfer it to thefirst memory area 521 for storing. - Upon receiving the second trigger signal, the
capture function element 571 is triggered to capture the current timer value and transfer it to thecapture register 561 for buffering. Then, thesecond DMA channel 552, which also receives the second trigger signal, reads out the buffered timer value from thecapture register 561 and transfers it to thesecond memory area 522 for storing. - In the system of
FIG. 5 , the time is reset to 0 each time the SD-ADC outputs a new result. Therefore, the timer values are not absolute, but relative time specifications which specify the time elapsed since the ADC-SD has output its lastly computed value/result. Thus, the timer values Δt stored in thesecond memory area 522 respectively indicate the “age” of the lastly computed SD-ADC value at the time of a certain event indicated by thecontrol element 530. - When an event occurs, not only the current timer value is stored in the
second memory area 522, but also the current (i.e. lastly computed) SD-ADC value is stored in thefirst memory area 521. - As both the timer values and the SD-ADC values are serially stored in chronological order, a timer value Δtm can be related to its corresponding SD-ADC value An(whose “age” at the time of the event is stored as timer value Δtm) in a simple manner: Those timer and SD-ADC values Δtm and An are brought together which relate to corresponding positions in the series of SD-ADC and timer values stored chronologically in the first and second memory area, respectively. For example, the timer value stored at “position 3” in the
second memory area 522 is related to the SD-ADC value stored at “position 3” in thefirst memory area 521. Or, expressed in a more general way, the timer value stored at “position p” in thesecond memory area 522 is related to the SD-ADC value stored at “position p” in thefirst memory area 521. Advantageously, the first memory area and second memory area comprise circular buffers which have a suitable number of elements to allow storage of the required values for a time period long enough for computing the intermediate measuring values. - With that, the measuring value required at a certain time/event can also be calculated by means of equation (2) which has already been introduced with reference to the system of
FIG. 4 : -
A c =A n +Δt m*(A n −A n−1)/ΔT -
or -
A c =A n +Δt m /ΔT*(A n −A n−1) (2) - wherein:
- An represents the current (lastly generated) SD-ADC value (at the time tc of the event) wherein the index n is a positive integer;
- An−1 represents the SD-ADC value generated previously to An;
- Ac represents the extrapolated value at the time tc;
- ΔT represents the constant time interval lying between the generation of two subsequent SD-ADC values (which is known for the respective SD-ADC converter); and
- Δtm represents the “age” of the current (lastly generated) SD-ADC value An at the time tc, wherein the index m is a positive integer.
- In this embodiment of the invention, a minor difficulty may arise when trying to specify the value An−1 which represents the SD-ADC value generated previously to An as the events at which a new measuring value is required may occur with higher frequency than the generation of values by the SD-ADC. Thus, the SD-ADC value stored previously in the first memory area may not be the value generated previously by the SD-ADC, but the same SD-ADC value.
- However, this minor problem can be solved by examining the corresponding stored timer values: A stored timer value will be smaller than its antecessor only if the timer has been reset to 0 between the capture of these two timer values. Further, the timer is reset to 0 if and only if the SD-ADC outputs a new value/result. Hence, the stored timer values may be examined in order to specify the SD-ADC value generated previously: A preceding timer value which is smaller than the timer value Δtm used in equation (2) refers to the same SD-ADC value as the timer value Δtm does. Accordingly, the timer values Δtm may be examined when being received: If the currently received timer value Δtm is smaller than the previously received timer value, the currently received timer value Δtm refers to a new value/result output by the SD-ADC.
- Equation (2) describes the calculation of a required value by extrapolation. Naturally, the calculation of a required value may be done by interpolation using equation (3):
-
A c =A n +Δt m*(A n+1 −A n)/ΔT -
or -
A c =A n +Δt m /ΔT*(A n+1 −A n) (3) - wherein:
- An represents the current (lastly generated) SD-ADC value (at the time tc of the event) wherein the index n is a positive integer;
- An+1 represents the SD-ADC value generated consecutively to An;
- Ac represents the interpolated value at the time tc,
- ΔT represents the constant time interval lying between the generation of two subsequent SD-ADC values (which is known for the respective SD-ADC converter); and
- Δtm represents the “age” of the current (lastly generated) SD-ADC value An at the time tc, wherein the index m is a positive integer.
- In this case, the SD-ADC value, to which the “first” subsequent timer value which is smaller than the timer value Δtm refers, is the SD-ADC value An+1 generated consecutively to the SD-ADC value A.
-
FIG. 6 exemplarily shows a simplified schematic diagram of a system according to a further embodiment of the invention. The system shown inFIG. 6 requires even less chip are than the systems according toFIGS. 4 and 5 and is still capable of capturing and storing SD-ADC values and timer values required for the extrapolation (or interpolation) described above. In particular, the system ofFIG. 6 further reduces the number of required DMA channels as only one DMA channel is utilized. - The exemplary system shown in
FIG. 6 comprises an SD-ADC 610, amemory area 621, acontrol element 630 indicating each new event at which data is required, and aDMA channel 651. - In the system of
FIG. 6 , the SD-ADC 610 respectively provides both the current (lastly generated) SD-ADC value An and its corresponding “age” Δtm at the time of the event. InFIGS. 7 and 8 , exemplary embodiments of an SD-ADC which may be used in the exemplary system shown inFIG. 6 are shown and will be described below. - Now referring back to
FIG. 6 , thecontrol element 630 indicates each new event by outputting a trigger signal (“new event”) which is received by the SD-ADC 610 and theDMA channel 651. - Upon receiving the trigger signal, the SD-
ADC 610 is triggered to provide the current (lastly generated) SD-ADC value/result An and its corresponding “age” Δtm at the time of the event. - Upon receiving the trigger signal, the
DMA channel 651 is triggered to read out the current (lastly generated) SD-ADC value/result An together with its corresponding “age” Δtm from the SD-ADC 610 and transfer it to thememory area 621 for storing. Advantageously, thememory area 621 comprises a circular buffer which has a suitable number of elements to allow storage of the required values for a time period long enough for computing the intermediate measuring values. - With that, the measuring value required at a certain time/event can again be calculated by means of equation (2):
-
A c =A n +Δt m*(A n −A n−1)/ΔT -
or -
A c =A n +Δt m /ΔT*(A n −A n−1) (2) - wherein:
- An represents the current (lastly generated) SD-ADC value (at the time tc of the event) wherein the index n is a positive integer;
- An−1 represents the SD-ADC value generated previously to An;
- Ac represents the extrapolated value at the time tc;
- ΔT represents the constant time interval lying between the generation of two subsequent SD-ADC values (which is known for the respective SD-ADC converter); and
- Δtm represents the “age” of the current (lastly generated) SD-ADC value An at the time tc, wherein the index m is a positive integer.
- Also in this embodiment of the invention, a minor difficulty may arise when trying to specify the value An−1 which represents the SD-ADC value generated previously to An as the events, at which a new measuring value is required, may occur with higher frequency than the generation of values by the SD-ADC. Thus, the SD-ADC value stored previously in the first memory area may not be the value generated previously by the SD-ADC, but the same SD-ADC value.
- As shown before with reference to the exemplary system of
FIG. 5 , this minor problem can be easily solved by examining the corresponding stored timer values: A stored timer value will be smaller than its antecessor only if the “internal timer” of the SD-ADC has been reset to 0 between the generation of these two timer values. Further, the “internal timer” is reset to 0 if and only if the SD-ADC has just generated a new value/result. Hence, the stored timer values may be examined in order to specify the SD-ADC value generated previously: A preceding timer value which is smaller than the timer value Δtm used in equation (2) refers to the same SD-ADC value as the timer value Δtm does. Accordingly, the timer values Δtm may be examined when being received: If the currently received timer value Δtm is smaller than the previously received timer value, the currently received timer value Δtm refers to a new value/result output by the SD-ADC. - As already mentioned above, equation (2) describes the calculation of a required value by extrapolation. Naturally, the calculation of a required value may also be done by interpolation using equation (3):
-
A c =A n +Δt m*(A n+1 −A n)/ΔT -
or -
A c =A n +Δt m /ΔT*(A n−1 −A n) (3) - wherein:
- An represents the current (lastly generated) SD-ADC value (at the time tc of the event) wherein the index n is a positive integer;
- An+1 represents the SD-ADC value generated consecutively to An;
- Ac represents the interpolated value at the time tc;
- ΔT represents the constant time interval lying between the generation of two subsequent SD-ADC values (which is known for the respective SD-ADC converter); and
- Δtm represents the “age” of the current (lastly generated) SD-ADC value An at the time tc, wherein the index m is a positive integer.
- In this case, the SD-ADC value, to which the “first” subsequent timer value which is smaller than the timer value Δtm belongs, is the SD-ADC value An+1 generated consecutively to the SD-ADC value An.
-
FIG. 7 shows a first embodiment of an SD-ADC which may be used in the exemplary system ofFIG. 6 . The illustrated exemplary SD-ADC comprises amodulator 715, adecimation filter 721 provided with afirst capture element 761, adecimation counter 722 provided with asecond capture element 762, adecimator output shadow 723 provided with athird capture element 763, a timer value generator (time stamp generator) 741, acapture register 751 having afirst section 751 a for holding a current (lastly captured) timer value and asecond section 751 b for holding a current (lastly captured) SD-ADC value. - The
modulator 715 has its outputs connected to the input of thedecimation filter 721 and the input of thedecimation counter 722. The output of thedecimation counter 722 is connected to an input of the firstcapture function element 761. The output of thedecimation filter 721 is connected to an input of thedecimator output shadow 723 via the firstcapture function element 761 which is triggered by the output of thedecimation counter 722. The output of thedecimator output shadow 723 is connected to thesecond section 751 b of thecapture register 751 via the thirdcapture function element 763 which is triggered by an external trigger signal (e.g. “new event”) received at an input of the SD-ADC 710. An output of thedecimation counter 722 is connected to an input of thetimer value generator 741 via the secondcapture function element 762 which is also triggered by the external trigger signal. An output of thetimer value generator 741 is connected to thefirst section 751 a of thecapture register 751. - The
decimation filter 721 continuously receives samples (i.e. data) from themodulator 715 and generates a decimated sample based on a predetermined number of received samples wherein the number is defined by the oversampling rate of the SD-ADC 710. For this, thedecimation filter 721 is triggered by the output of thedecimation counter 722. - The
decimation counter 722 receives a clock frequency of themodulator 715, fMOD, and, based on an oversampling rate OSR, triggers the output of a decimated sample. In other words, thedecimation counter 722 “counts” the samples received by thedecimation filter 721 from themodulator 715 and triggers the output of a decimated sample when a predetermined number of samples has been received by thedecimation filter 721. - The decimated sample is transferred to the decimator output shadow which holds the received value until it receives a “new” decimated sample. The third
capture function element 763 reads out the value from thedecimator output shadow 723, when triggered by the external trigger signal received at an input of the SD-ADC 710, and writes the read out value into thesecond section 751 a of thecapture register 751. - The second
capture function element 762 reads out the current counter value from thedecimation counter 722, when triggered by the external trigger signal and transfers the read out decimation counter value to thetimer value generator 741. - The timer value generator (time stamp generator) 741 may optionally be provided to generate a timer value (time stamp) based on the received decimation counter value and the decimation rate of the decimator. In other words, the timer value generator performs a format conversion to obtain the timer value. Then, the timer value generator transfers the timer value, which is the “age” of the current (lastly generated) SD-ADC value at the time of the event, to the
first section 751 a of thecapture register 751. - For example, the timer value Δtm may be calculated using the following equation:
-
Δt m =ΔT*dc/dr (4) - wherein:
- ΔT represents the constant time interval lying between the generation of two subsequent SD-ADC values (which is known for the respective SD-ADC converter);
- dc represents the received decimation counter value;
- dr represents the decimation rate, which is the number of samples which are used by the decimator to generate a decimated sample.
When calculating the timer value Δtm with the help of the above equation, the division by the value “dr” is generally carried out by the use of software. -
FIG. 8 shows a second embodiment of an SD-ADC which may be used in the exemplary system ofFIG. 6 . The illustrated exemplary SD-ADC comprises amodulator 815, adecimation filter 821 provided with afirst capture element 861, adecimation counter 822 provided with athird capture element 863, anintegrator 831 provided with asecond capture element 862, anintegration counter 832 provided with afourth capture element 864, anintegrator output shadow 833 provided with afifth capture element 865, a timer value generator (time stamp generator) 841, acapture register 851 comprising afirst section 851 a for holding a current (lastly captured) timer value and asecond section 851 b for holding a current (lastly captured) SD-ADC value. - The
modulator 815 has its outputs connected to the input of thedecimation filter 821 and the input of thedecimation counter 822. Thedecimation counter 822 has a first output connected to an input of the firstcapture function element 861 and the input of theintegration counter 832, and a second output connected to an input of the thirdcapture function element 863. The output of thedecimation filter 821 is connected to an input of theintegrator 862 via the firstcapture function element 861 which is triggered by the first output of thedecimation counter 822. - The
integration counter 832 has a first output connected to an input of theintegrator 831 and an input of the secondcapture function element 862, and a second output connected to an input of the fourthcapture function element 864. The output of theintegrator 831 is connected to theintegrator output shadow 833 via the secondcapture function element 862 which is triggered by the first output of theintegration counter 832. The output of theintegrator output shadow 833 is connected to thesecond section 851 b of thecapture register 851 via the fifthcapture function element 865 which is triggered by an external trigger signal received at an input of the SD-ADC 810. - The second output of the
decimation counter 822 is connected to a first input of thetimer value generator 841 via the thirdcapture function element 863 which is also triggered by the external trigger signal. An output of theintegration counter 832 is connected to a second input of thetimer value generator 841 via the fourthcapture function element 864 which is also triggered by the external trigger signal. Thetimer value generator 841 has its output connected to thefirst section 851 a of thecapture register 851. - The
decimation filter 821 continuously receives samples (i.e. data) from themodulator 815 and generates a decimated sample based on a predetermined number of received samples wherein the number is defined by the oversampling rate of the SD-ADC. For this, the capture function of thedecimation filter 821 is triggered by the first output of thedecimation counter 822. - The
decimation counter 822 receives a clock frequency of themodulator 815, fMOD, and, based on an oversampling rate OSR, triggers the output of a decimated sample. In other words, thedecimation counter 822 “counts” the samples received by thedecimation filter 821 from themodulator 815 and triggers the output of a decimated sample when a predetermined number of samples has been received by thedecimation filter 821. - The
integrator 831 receives the decimated samples from thedecimation filter 821 and integrates over the received decimated samples. - The
integration counter 832 also receives the trigger signal output by thedecimation counter 822. When theintegration counter 832 has received a predetermined number of trigger signals from thedecimation counter 822, theintegration counter 832 outputs a further trigger signal which causes a transfer of the current integration value to theintegrator output shadow 833 and a reset of theintegrator 831, i.e. the current integrator value is reset to 0. - Thus, the
integrator 831 integrates over a predetermined number of decimation samples. Then, upon triggering by theintegration counter 832, the integration value obtained by integration over the predetermined number of decimation samples is transferred to theintegrator output shadow 833 which holds the received value until it receives a “new” integration result over a predefined number of decimated samples and theintegrator 831 is reset whereupon the integration starts anew. - When an external trigger signal (“new event”) is received at the SD-ADC converter 810, for example from the
control element 630 comprised in the system shown inFIG. 6 , the third, fourth and fifthcapture function elements - The third
capture function element 863 reads out the current counter value from thedecimation counter 822, when triggered by the external trigger signal, and transfers the read out decimation counter value to thetimer value generator 841. - The fourth
capture function element 864 reads out the current counter value from theintegration counter 832, when triggered by the external trigger signal, and transfers the read out integration counter value to thetimer value generator 841. - The fifth
capture function element 865 reads out the value from theintegrator output shadow 833, when triggered by the external trigger signal, and writes the read out value into thesecond section 851 b of thecapture register 851. - The timer value generator (time stamp generator) 841 generates a timer value (time stamp) based on:
-
- the received decimation counter value,
- the decimation rate of the decimator,
- the received integration counter value; and
- the number of decimation samples over which the integrator integrates to generate the SD-ADC value.
- The
timer value generator 841 then transfers the calculated timer value, which is the “age” of the current (lastly generated) SD-ADC value at the time of the event, to thefirst section 851 a of thecapture register 851. - For example, the timer value Δtm may be calculated using the following equation:
-
Δt m =ΔT i*(dc/dr+ic)/ir (5) - wherein:
- ΔTi represents the constant time interval lying between the generation of two subsequent output values of the integrator (which is known for the respective SD-ADC converter);
- dc represents the received decimation counter value;
- dr represents the decimation rate, which is the number of samples which are used by the decimator to generate a decimated sample;
- ic represents the received integration counter value; and
- ir represents the number of decimated samples over which the integrator integrates to generate the SD-ADC value.
- The SD-ADCs shown in
FIGS. 7 and 8 provide the SD-ADC values and the corresponding timer values such that a single DMA channel can be used to respectively read out an SD-ADC value together with its corresponding timer value. - It is, however, to be understood that the use of DMA channels in the exemplary embodiments of the invention described before is not mandatory, but other capturing means may also be used, wherein the capturing means may comprise one of the following elements or a combination thereof: a shadow register, a direct memory access channel, a software interrupt for initiating a software copy operation, and/or a capability of a central processing unit to poll for a certain event in order to start a copy operation.
-
FIG. 9 shows a method according to a further embodiment of the invention. The method is intended for use in a sigma-delta analog to digital converter comprising a modulator, a decimation filter, a decimation counter, and a decimator data output. - At 902, the method receives an external trigger signal.
- At 904, the method captures a value of the decimation counter and a value of the decimator data output.
- At 906, the method generates a time stamp for the captured value of the decimator data output based on the captured value of the decimation counter.
- At 908, the method buffers the captured value of the decimator data output and the generated time stamp in a register.
-
FIG. 10 shows a method according to a further embodiment of the invention. The method is intended for use in a sigma-delta analog to digital converter comprising a modulator, a decimation filter, a decimation counter, an integrator, an integration counter, and an integrator data output. - At 1002, an external trigger signal is received.
- At 1004, a value of the decimation counter, a value of the integration counter and a value of the integrator data output are captured.
- At 1006, the method generates a time stamp for the captured value of the integrator data output based on the captured value of the decimation counter and the captured value of the integration counter.
- At 1008, the method buffers the captured value of the integrator data output and the generated time stamp in a register.
- Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that a variety of alternate and/or equivalent implementations may be substituted for the specific embodiments shown and described without departing from the scope of the present invention. This application is intended to cover any adaptations or variations of the specific embodiments discussed herein. Therefore, it is intended that this invention be limited only by the claims and the equivalents thereof.
Claims (26)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/036,203 US8358229B2 (en) | 2011-02-28 | 2011-02-28 | Method for use in a sigma-delta analog to digital converter, sigma-delta analog to digital converters and systems comprising a sigma-delta analog to digital converter |
DE102012003909.3A DE102012003909B4 (en) | 2011-02-28 | 2012-02-27 | A method for use in a sigma-delta analog-to-digital converter, sigma-delta analog-to-digital converters, and sigma-delta analog to digital converter systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/036,203 US8358229B2 (en) | 2011-02-28 | 2011-02-28 | Method for use in a sigma-delta analog to digital converter, sigma-delta analog to digital converters and systems comprising a sigma-delta analog to digital converter |
Publications (2)
Publication Number | Publication Date |
---|---|
US20120218134A1 true US20120218134A1 (en) | 2012-08-30 |
US8358229B2 US8358229B2 (en) | 2013-01-22 |
Family
ID=46635301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/036,203 Active 2031-07-29 US8358229B2 (en) | 2011-02-28 | 2011-02-28 | Method for use in a sigma-delta analog to digital converter, sigma-delta analog to digital converters and systems comprising a sigma-delta analog to digital converter |
Country Status (2)
Country | Link |
---|---|
US (1) | US8358229B2 (en) |
DE (1) | DE102012003909B4 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140347201A1 (en) * | 2012-02-24 | 2014-11-27 | Infineon Technologies Ag | Method and system for compensating a delay mismatch between a first measurement channel and a second measurement channel |
CN109768784A (en) * | 2017-11-09 | 2019-05-17 | 英飞凌科技股份有限公司 | Decimation filter |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102013223394B4 (en) * | 2013-11-15 | 2015-07-16 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Electrical circuit |
US10574258B1 (en) | 2019-04-17 | 2020-02-25 | Infineon Technologies Ag | Open pin detection for analog-to-digital converter |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4020332A (en) * | 1975-09-24 | 1977-04-26 | Bell Telephone Laboratories, Incorporated | Interpolation-decimation circuit for increasing or decreasing digital sampling frequency |
US20040210578A1 (en) * | 2003-04-16 | 2004-10-21 | Howard Taitel | Non-intrusive data logging |
US20100299380A1 (en) * | 2006-10-20 | 2010-11-25 | Calrec Audio Ltd | Digital signal processing |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102007013255A1 (en) * | 2007-03-20 | 2008-09-25 | Robert Bosch Gmbh | Device for evaluating sensor signal, has circuit arrangement, and signature of logical values is generated by circuit arrangement, which indicates value of sensor signal relative to threshold value |
US7948413B2 (en) * | 2007-04-05 | 2011-05-24 | Akademia Gorniczo-Hutnicza Im. Stanislawa Staszica | Method and apparatus for analog-to-digital conversion using asynchronous sigma-delta modulation |
-
2011
- 2011-02-28 US US13/036,203 patent/US8358229B2/en active Active
-
2012
- 2012-02-27 DE DE102012003909.3A patent/DE102012003909B4/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4020332A (en) * | 1975-09-24 | 1977-04-26 | Bell Telephone Laboratories, Incorporated | Interpolation-decimation circuit for increasing or decreasing digital sampling frequency |
US20040210578A1 (en) * | 2003-04-16 | 2004-10-21 | Howard Taitel | Non-intrusive data logging |
US20100299380A1 (en) * | 2006-10-20 | 2010-11-25 | Calrec Audio Ltd | Digital signal processing |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140347201A1 (en) * | 2012-02-24 | 2014-11-27 | Infineon Technologies Ag | Method and system for compensating a delay mismatch between a first measurement channel and a second measurement channel |
US9172391B2 (en) * | 2012-02-24 | 2015-10-27 | Infineon Technologies Ag | Method and system for compensating a delay mismatch between a first measurement channel and a second measurement channel |
CN109768784A (en) * | 2017-11-09 | 2019-05-17 | 英飞凌科技股份有限公司 | Decimation filter |
Also Published As
Publication number | Publication date |
---|---|
US8358229B2 (en) | 2013-01-22 |
DE102012003909A1 (en) | 2012-08-30 |
DE102012003909B4 (en) | 2016-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7796069B2 (en) | Analog to digital converters | |
US8358229B2 (en) | Method for use in a sigma-delta analog to digital converter, sigma-delta analog to digital converters and systems comprising a sigma-delta analog to digital converter | |
TWI488442B (en) | Integration and analog to digital conversion circuit with common capacitors and operating method thereof | |
TW200913501A (en) | Minimizing offset error in analog to digital converter | |
JP2004251708A (en) | Voltage detection device of battery pack | |
US7646766B2 (en) | Signal-processing device with improved triggering | |
EP2965458B1 (en) | Dithering circuit for sampling serial data transmission | |
JP5666813B2 (en) | Time width measuring device | |
US8193959B2 (en) | Analog to digital converters | |
CN110120815B (en) | Low power synchronization of multiple analog-to-digital converters | |
US7545848B2 (en) | High resolution time stamps for periodic samples | |
KR101922018B1 (en) | Multichannel analog to digital converter apparatus and method for using | |
JP6050761B2 (en) | Data processing method, data processing system, and related apparatus | |
US10097200B1 (en) | Resynchronization of sample rate converters | |
JP4876886B2 (en) | Data storage device | |
US8289336B2 (en) | System and method for processing and representing a sampled signal | |
CN106257839B (en) | Sensor device and detection method | |
CN110476155B (en) | Algorithm triggered sensor data acquisition | |
JP2013058894A (en) | Semiconductor device | |
RU2583165C1 (en) | Interpolates converter time interval in the digital code | |
US20230017433A1 (en) | Interleaved cic filter | |
JP2020500317A (en) | CHEMFET array | |
CN104065383A (en) | Analog information conversion method based on sampling control | |
SU1381708A1 (en) | Time interval-to-code converter | |
SU503358A1 (en) | Frequency-code converter for control cvm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INFINEON TECHNOLOGIES AG, GERMANY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BARRENSCHEEN, JENS, DR.;REEL/FRAME:026154/0873 Effective date: 20110304 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |