ADE9000 Newbie Questions


We are currently using ADE9000 for the prototype of the meter device that measures voltages, power and energy on all three phases. 

As I'm working under making of firmware for this equipment and I'm newbie in the area of  using ADE9000 for energy monitoring

I faced up with some questions seemed to be silly but they confused me.

Q1:  According to our technical specifications we need to use 10 resampled periods to be read strictly sequentially to apply further analisys .

        We need to know ( as the buffer of ADE9000 contains only 4 periods ) - Is that possible after receiving the signal : "buffer is full" 

        to begin the process of reading of the data from  the buffer and to specify that ADE9000 to begin read and resample next 4 periods

        sequentially without lost of any one in sequence of dataflow. 

Q2:  Page 21 of "Reference Manual" - We see - To read energy register with reset, use the following settings:

                                                               EGY_TIME register = 1

      That's not quite reasonable for me - why not to use value 0, as using this value supposes presence of the new fresh data, Is that correct ?

Q3:  If we configure the EGY_LD_ACCUM bit in the EP_CFG register as 


        to overwrite the user energy register with the internal energy register value

        according to EGYRDY event - information in this register would be lost  according to renovation process

        so what's the reason to use this configuration setting , how could we read information stored here just before

        it would be overwritten ?

Q4: What is the hidden reason to use mode when RD_RST_EN bit is set to 0  in the EP_CFG register ?

       In other words - is there any reason to read user energy register without reset ?

       ( No really that may seem to be silly question but I just don't understand ..)

Q5:  Page 18 - AWATT Accumulation into Energy and Power

        That's unclear from this page - Will be 42-bit internal energy accumulator cleared to 0 after reading value from

        it after EGYRDY event was raised ?

Q6:  Regarding registers :  awatt_acc and awatthr_hi

        That's unclear from documentation ( p.18,  fig.21 ) - What's a difference between energy and power having been calculated ?

        Could you provide some examples with different types used ( power / energy )  just to understand the cardinal difference ?

Q7:  On the page 23 of "Reference manual" we could see constant W/LSB used for some purposes.

        That's impossible to find out this constant somewhere on the pages of this document.

        What's is the meaning of this constant ( I'm just ashamed of my stupidity ...)?

Q8:  If we'd use waveform buffer in the resampled mode would it contain 4 periods read strictly sequentially  ?

I'd highly appreciate any help to clear these questions.

Kind regards for help.


  • 0
    •  Analog Employees 
    on Oct 7, 2021 4:01 PM

    Q1 resampled data is not continuous so you will have breaks in the data. Fixed waveform samples are continuous.

    Q2 EGY_TIME=1 is correct for read with reset I think internally if this is set to 0 the energy is disabled. Set to 1 for read with reset as stated in the datasheet. 

    Q3 EGY_LD_ACCUM=1;  overwrites the register based on linecycle accumulation or sample based accumulation it will keep the current values until the next update. there is an IRQ when this register is updated so you know you have to read it. when EGY_LD_ACCUM=0  teh register constantly increments at teh 4Ksps rate until you read with reset or it overflows. 

    Q4 RD_RST_EN bit is set to 0  read with reset does not happen when doing sample or line cycle based accumulation you shut this off. Or if you want to read energy and calculate the delta energy in the micro. You will need to keep track of roll overs with this method. When RD_RST_EN = 1 the register is cleared when read this is not needed with accumulation. Please follow suggested setting for th eread with reset vs time accumulation. 

    Q5 energy is accumulated internally until  linecycles have been met or number of samples have been met. The egy status is set and the value is moved from the internal accumulation(not use accessible) to the Watt_hr register then the internal accumulation cleared. For the next measurement cycle.

    Q6 awatt_acc and awatthr_hi  

    WATT_HR registers can be read with X line cycles or samples. The x linecycle is better because it is tracking the line freq. Samples do not unless your read the period register and update number of samples to accumulate. There are no separate pos and neg accumulation for these registers

    awatt_acc is accumulated based on number of samples (not over a cycle) this energy can also be bined as positive only or negative only for phase a+b+c not individual phases. 

    WATT_HR tregisters are typically used for utility metering. 

    Q7 calibration with a know accurate input is required to calculate the rms/lsb and watt/lsb values. this speadsheet is used to help calculate the ade9078/ade9078

  • Q2: In ref manual: "the internal energy register accumulates for EGY_TIME + 1 half line cycles" Why "if this is set to 0 the energy is disabled" ???

  • 0
    •  Analog Employees 
    on Oct 7, 2021 7:28 PM in reply to natsu1

    Don't know just a guess, it is possible that since this is read with reset we want the register to accumulate fast as possible (maybe 0 would work), the register will continue to increment until you read. There is something is the IC design that requires EGY_time to be = 1 that is why we specify setting for the different modes of energy accumulation. It is best to follow the recommendations. You can try 0 and see what happens. 

  • The question had already been asked is about this page of manual! Why in manual write about value  "EGY_TIME+1" and then recommended 1 as a minimum? Do you know answer? Or suggest only?

  • 0
    •  Analog Employees 
    on Oct 7, 2021 8:03 PM in reply to natsu1

    I dont know. EGY_TIME+1 was an oversite in the design we found out after. it is possible egy_time = 1 forced accumulation at 4ksps in the accumulation register. Now I guess it would accumulate 2 samples then update the  accumulation register.  I think the read with reset setting = 1 is fine. 

    I am suggesting but I also think it dosen't matters. in the mode read with reset we recommend a setting of  1. all other mode of accumulation it is egy_time+1 is the number of samples to accumulate. 

    in the read with reset mode do you want to set that register to something we don't recommend?