It looks like all the 24-bit instantaneous waveform data, peak detection values and over-voltage thresholds are all after the VGAIN register. Is this correct?

I'd like to derive an formula for converting raw 24-bit values to real world voltage readings at the input to my meter. The datasheet tells me an approximate way of doing it is:

reading/5,989,256 * 0.5V * D

where D is my meter's voltage divider ratio, but this is subject to the variations in my 1% resistor divider.

I've used precision equipment to calibrate VGAIN so the the 7816's VRMS readings give me real world values. 1 LSB of the VRMS represents 62.5uV (1/16th of a mV) at the input to my meter. Given I've done that, it seems it must be possible to come up with a formula to convert a raw 24-bit voltage reading to a real-world voltage also.

Maybe some real live numbers will help explain what I'm after:

My resistor divider is 880K/1K

I've configured a voltage gain of x 1.2108 (i.e. the VGAIN register is written with 0x1afd11)

Now 234V RMS ideal input to my meter gives me a VRMS(*) reading of 3,744,000

Then I configure VPEAK detector to give me the peak over 255 half cycles.

A typical VPEAK reading I get back is 5,253,231

I'm looking for a way to **calculate** what divider I should use to turn that back into real world volts at the meter input. Empirically I can determine that the answer must be about 15,874, i.e 5,253,231 / (234 * sqrt(2)), but it seems that given I've used VGAIN to turn VRMS into real-world units, I should be able to calculate what I need to do to turn a raw 24-bit value into real-world units as well. Is it as simple as dividing by 16,000?

(*) All VRMS readings are done via the recommended large averaging technique to remove any ripple.

Hi dBC,

With respect to the data sheet, the value of 5,989,256 looks to be a typo. The value should read 5,928,256 for the waveform value when the input is at full scale, this is supposed to match the ADE7878 data sheet which is a similar part just with different functionality. That will be revised in the ADE7816.

I was able to do some testing in the lab myself and the results I found were as follows:

In conclusion I am seeing well under 0.1% error, the 1% you see seems to be very high. Are you sure there is no precision loss from the way the sqrt(2) function is being handled? I know previously you had mentioned that you are finding the RMS by averaging at least 50 VRMS reads over a seconds, is it being compared directly to the same period that VPEAK took the value over? VPEAK is more susceptible to noise so that could affect it as well.

VPEAK works similarly to LENERGY where the VPEAK value is updated every 255 half line cycles. It will always update at that rate whether or not the interrupt is serviced.

Dlath