Isolated DC Meter

Galvanic Isolated 16-bit precision DC Meter

This PCB is made for my large power supply project which I am currently working on. It is for measuring voltage and current at two separated DC outputs. These two outputs are galvanically separated and therefore this PCB must also be so, otherwise they will short-circuit to each other. I have made it so that the communication part and the power supply to the digital circuits are separated by optocouplers and a DC/DC converter.

I have used an Atmel XMEGA32E5 processor with built-in 12-bit ADC, but this one is really bad and unprecise, so instead I have used an external high quality ADC with 16-bit precision (ADS1118) which is much better! It has two channels which measures current and voltage. The current is measured over a 0.001 ohm shunt for minimum loss and heat dissipation. The measured data (U, I, R, P and the device temperature close to the shunt resistor) can be read out via the dual TTL com port and shown on an external display of any kind.

You can connect up to 255 modules at the same data bus and then measure DC voltage, current, power, resistance and board temperature on them individually. In this way it is possible to create an advanced system that can collect a lot of data. Because the PCB's are galvanic isolated, you don't have to think about short cuts in a larger and complicated system.

Here I am testing the PCB for the first time. It all works as it should. The filtering of the small noisy DC/DC converter works super well. The filter is made as a CLCLC filter and after that the power goes directly to a 3.3 volt low noise LDO regulator.

The data from the ADC looks pretty good. Even before averaging, the noise at voltage measurement is below 5 LSB. The current measurement is a little noisier, approx. 10 LSB, but it can very easily be removed in the software. Now that the software is finished, the PCB accurately measures from 0-200.00 volts within 0.027% linearity. Due to a very high average, the numbers are completely stable.

Here is my power load. The current is set to 2.2 amps after 60 minutes at 10 amp. I test precision, but also heat disipation from the shunt resistor. The temperature rises approx. 10°C at full load (10A), but the measurement remains completely stable and does not move at all, so it indicates that the shunt and opamp do not drive significantly with the temperature rise. The OpAmp is a "zero drift" type.

Here you see the resistor load: 1600 Watt Power Resistor

10 amps from the test power supply.

The test setup.

Here is a screen shot of the schematic and the test software. I will build a more advanced software when I get time for it. This one is only for a quick test. You can connect up to 255 modules in series over the data bus, so there are many options for making graphs and much more features to it.

And here is the Ultra simple and quickly made test software. I will go on with this when I get time for it. The reason why the voltage is higher here than on the display at the load is because of the voltage drop in the test leads. You can see in the three pictures that the current is the same all the way in the "chain", 2.22A.

The test terminal with commando read out and more - this is only for development and debuging. The yellow colored string is the request commando from the PC. It could also come from other PCB's or dispalys etc. The green one is the reply from the PCB. If you compare the received values with the menu picture above, you will see that they are all matching except for the temperature.