Rick C
2020-11-16 03:27:14 UTC
Usually when I ask about delta-sigma ADCs in FPGAs the comments are along the lines of "terrible idea", "can't mix analog and digital", etc. I'm very much not convinced.
I think people have a view of the ADC as being a device with very balanced specs, resolution, SNR, etc. In this application we need significantly more resolution than we do accuracy. The measurement is differential pressure across an orifice in a gas flow rate sensor. The conversion curve for pressure to flow rate has a square root. This makes the measurement much more sensitive to resolution at the low end.
The signal is the human breath with a very low frequency content. The fundamental is 0.5 Hz maximum with various harmonic content. Our sample rate is 200 Hz.
The analog input circuit approximates the delta-sigma model with resistors from the input and the feedback summing currents to an integrating capacitor. The capacitor voltage is compared to a Vref (very accurately 1/2 Vcco) with a differential input on the FPGA. The Vcco for this I/O bank is isolated from other supplies and no other signals are on this power rail.
The processing of the captured signal is a simple counter, accumulate and dump. Many texts on this design show the use of a second stage of filtering which I believe is mostly present to shape the frequency response of the CIC filter. This is not useful in this application.
In a post elsewhere someone commented that a boxcar filter (the accumulate and dump) is not equivalent to a CIC filter, but without explaining. I can't see the distinction other than the CIC offers configurations that the boxcar filter doesn't. But certainly the boxcar filter gives identical results to a configuration of CIC filter.
I think people have a view of the ADC as being a device with very balanced specs, resolution, SNR, etc. In this application we need significantly more resolution than we do accuracy. The measurement is differential pressure across an orifice in a gas flow rate sensor. The conversion curve for pressure to flow rate has a square root. This makes the measurement much more sensitive to resolution at the low end.
The signal is the human breath with a very low frequency content. The fundamental is 0.5 Hz maximum with various harmonic content. Our sample rate is 200 Hz.
The analog input circuit approximates the delta-sigma model with resistors from the input and the feedback summing currents to an integrating capacitor. The capacitor voltage is compared to a Vref (very accurately 1/2 Vcco) with a differential input on the FPGA. The Vcco for this I/O bank is isolated from other supplies and no other signals are on this power rail.
The processing of the captured signal is a simple counter, accumulate and dump. Many texts on this design show the use of a second stage of filtering which I believe is mostly present to shape the frequency response of the CIC filter. This is not useful in this application.
In a post elsewhere someone commented that a boxcar filter (the accumulate and dump) is not equivalent to a CIC filter, but without explaining. I can't see the distinction other than the CIC offers configurations that the boxcar filter doesn't. But certainly the boxcar filter gives identical results to a configuration of CIC filter.
--
Rick C.
- Get 1,000 miles of free Supercharging
- Tesla referral code - https://ts.la/richard11209
Rick C.
- Get 1,000 miles of free Supercharging
- Tesla referral code - https://ts.la/richard11209