Sunday, April 10, 2016

Decreasing noise in the breadboard

Last days I tried to reduce noise levels in the ohmmeter and I can say that I got much better results than expected. Now the noise is between 2 and 3 uV peak to peak for period of 8.5 hours, instead 19 uV before the changes:



The drift which is visible on the chart is probably due the temperature changes last night. However, most of the noise was about 2uV and there were some spikes to up 3uV. Which is very close to the dominant peak to peak noise from datasheet of the LTC2052 op-amp buffer (1.5 uV). If I calculate the worst case peak to peak noise, it will be 2.69 uV : ADC 0.565 uV+ LTC2052 1.5 uV + LTC6655-2.5 0.625 uV.

The changes which I made to get these low noise levels are:
- Using separate supply for the uController. Before I used one shared USB power supply for both ADC and the uController. This change gave the biggest drop in the noise.
- Using a low noise LDO to supply the LTC2052 buffer of the ADC. This change gives additional 1-2 uV noise drop.
- Adding bypass capacitors for each IC on the breadboard.


Wednesday, April 6, 2016

Breadboarding the Ohmmeter

*Update 4 June 2019 : Last few days I was busy with a digital thermometer based on ADS1220 and there I found better way to make resistance measurements. Actually this approach is used in bench-top multimeters. Instead using long-term stable voltage reference and resistor to generate exact current value, it is better to use low noise current source which pass through both a resistor under test and a reference resistor. In this case the reference resistor is connected to the voltage reference inputs of the ADC. In result the ADC will show ratio between the resistor under test and the reference resistor. 
*End of the update

I tried to make an ohmmeter, based on the current source schematics found in the Linear technology LTC6081/LTC6082 datasheet, page 14. The other option was to use the Howland current source, but I will try this later.

The KiCad schematic is uploaded into the git repository, together with the LTSpice simulation:


I played with the simulator and found that measured resistor can have higher value then the reference, but the power supply voltage should be increased and eventually additional voltage divider can be put between the voltage reference and the first op-amp as it is shown in the LT schematics. This will allow measuring of resistance from hundreds mOhms to several MOhms only with 2 reference resistors : 1K and 100K, thus decreasing the final cost. An attention should be paid for the PCB layout for guarding the leakage current.

Using the LTC2052 op-amps, the current source was implemented on the breadboard with 10KOhm reference resistor (Vishay S102 series) and nominal 10Ohm resistor for measurement (9.92 Ohm measured with Keithley 2002), 2.5V reference voltage and 100KOhm LTC5400 quad matched resistor network.

The noise was ~19 uV peak to peak for duration of ~7h:40m.
The data in the Y axis are the ADC measurements in microvolts, data in the X axis are the sample counts. The ADC was set in low noise mode with ~6.9 samples per seconds.



I expect to have much lower noise when the first PCB prototype will be tested. After voltmeter calibration, I have to compare the results with the reference DMM.

Monday, April 4, 2016

GitHub repository and preliminary noise test

GitHub repository was created for the opendcm project: https://github.com/opendcm/opendcm
I uploaded :
- The KiCad project with schematic used by my breadboard
- Arduino sketch with code for reading ADC measurement and sending to PC through RS232.

I made some preliminary noise tests with the breadboard. The data shows that noise level is ~9uV peak to peak under the following conditions:
- The breadboard was put in a box with silica gel package for ~ 2h:20m
- The LTC2052 op-amp was set as buffer in front of ADC input with voltage resistor divider 1.2M : 120K connected to the Vref 2.5V.


The data in the Y axis are the ADC measurements in microvolts, data in the X axis are the sample counts. The ADC was set in low noise mode with ~6.9 samples per seconds.