A new Texas Instruments ADC was added to the design -- ADS1219
The ADS1219 replaces the ADS1015 ADC. This new ADC offers these benefits:
- integrated input buffers -- allows measurement of high impedance inputs such as Vref coming from the Spec Sensor devices
- separate inputs for analog and digital power/ground -- allows more options to mitigate power supply noise
- better noise-free resolution than either of the ADS1015 or ADS1115 ADCs
I wrote and published a MicroPython driver for the ADS1219 device. The control of the device in MicroPython was quite simple.
The V05 schematic includes the new ADC. You will notice that the initial integration of this ADC is lacking most sensible approaches to minimize noise effects:
- 3.3V digital rail supplies analog power for both the ADC and Spec Sensor gas sensors.
- ADC soldered to a TSSOP-16 breakout board and then plugged into a breadboard
This approach allowed me to write the MicroPython driver and get the device integrated into the rest of the MicroPython code.
Given the lack of care to deal with power supply noise, it wasn't surprising to see poor results when reading the analog values from the ozone and NO2 sensors. Results showed considerable variability in back-to-back measurements for gas concentration. An oscilloscope capture shows that the Vgas outputs from the gas sensors oscillate during the time they are being sampled by the ADC.
- yellow = Vgas Ozone
- aqua = Vgas NO2
- purple = 3.3V rail
You can see voltage fluctuations on the 3.3V rail that are associated with the oscillations. These oscillations happen each time the ADC performs a single-shot conversion.
Next steps: Time to put on the analog design hat and investigate decoupling methods to provide low-noise analog power for the ADC and gas sensors.