Post Go back to editing

ADE9000 Energy Reading + Conversion Constants

I'm using the ADE9000 Evaluation board with a ADuCM4050 connected over SPI. I also have the SDP & the ADE9000 Evaluation Software.

1. I'd like to confirm the correct method of reading energy:

I'm using the 'read energy with reset' method on page 21 of UG-1098 (ADE9000 Technical Reference Manual).

The microcontroller reads the xHR_HI register, multiplies the register value with the conversion constant and adds it to a 'sum' variable which keeps track of energy over time.

Something like: energy_sum = energy_sum +( SPI_read(xHR_HI) * xHR_HI_conversion_constant );

energy_sum will be the total energy accumulated over the measurement period, with unit Wh.

Do I need to keep track of time (between measurements & total time) in the microcontroller program, or is that handled by the ADE9000 internally?

2. Energy Conversion Constant formula:

The screenshot is from page 52 of UG-1098. The calculation seems to be missing fDSP in the denominator, because if a value is calculated using the given formula, it comes out to 8213.98 (instead of 1.0268 as shown). Dividing 8213.98 by 8000 gives 1.0268.

The formula for conversion constants in the excel sheet (ADE9000_Calibration_Tool_Rev0.xlsm) is:

=(B9*B10*B12)/(B25*B26*'Constants and config'!B11*'Constants and config'!B15*B12*2^-13*3600)*10^6

This formula is similar to the conversion constant in UG-1098, but it includes fDSP in the denominator (*'Constants and config'!B15).

However, the value of accumulation time (B12) is present in the numerator and denominator, which results in them cancelling out and having no effect on the equation.

Could someone please clarify which conversion constant formula needs to be used?

  • Hi avnrdf,


       You don't need to track the time, the chip will calculated the energy through the time, which is defined by EGY_TIME register in different mode. You should use the equation in the calibration tool. Thank you very much.

    Best regards,


  • Hi avnrdf,

    regarding your first question:

    1. I'd like to confirm the correct method of reading energy:

    The key point stays in the conversion constant you are using. This constant is calculated function of the method you choose to read the energy register. For example, if you choose to read the energy register with reset, then you need a timer in your microcontroller to give you the timings of the readings. The conversion constant (transforming the energy register values into submultiples of kWh) depends on this timing.

    We usually recommend to use the "accumulate the energy over a defined number of line cycles" or "accumulate energy over a defined number of samples" because in these cases, it is the ADE9000 that keeps track of time, gives you an interrupt when you need to read the registers, and you just need to have the right conversion constant. See the calibration tool on the website about how to calculate these constants.

    2. Energy Conversion Constant formula:

    You are right. The Energy Conversion Constant expression at page 52 is missing a 8000 factor at the denominator. I made a note to add it when we will revise the document. But the result is correct, although it is a little different than one would obtain with the spreadsheet because it uses rounded numbers.

    Thank you


  • How to calculate Energy by using the values of the XWATTHR_HI and XWATTHR_LO registers,

    kindly provide formulas with the example

  • So far, is there any answer to this?
    I guess the conversion constant for using both HI and LO register is the same that's in the guide but not using 2^(-13) in the divider. Can anyone confirm this please?