Post Go back to editing

AD7953 conversion of voltage and current in IC and what factors should we apply to measure it correctly

Category: Hardware
Product Number: AD7953

Input applied to current channel A and voltage channel A of ADE7953 with gain set to 1 are 244.4mV AC respectively. Voltage conversion is from divider 900kR/1kR. Both channels are shorted to provide common input to Voltage and Current channel A. 

We are getting Irms and Vrms register values as 6367580 and 6247006 respectively.

After converting these rms register values to voltage ( for 24-bit ADC resolution of ADE7953 and interval vref of 1.2V ) we are getting 0.227722406V for current channel A and 0.223410344V for voltage channel A. what are the step or measures that can be taken with the development of watt meter in this scenario so that we can get the correct output of both the channels with mentioned input.

I rms count 6367580
V rms count2 6247006
I input 244
V input 244
  • you will need to use Igain and vgain to compensate for gain variation in the signal path. 

    244.4mv single ended. I am assuming rms 

    220vrms * 1/901 = 244.173mv rms at the adc or 244.173mv * 1.414 = 345pk at the input. 

    This is larger than recommended a the adc input at a gain of 1 +/-250mvpk

    but for now lets say things are fine. 

    on the voltage channel +/-500mv is valid. 

    Vrms reg at full scale = 9032007lsb so 353.5mvrms = 9032007lsb of vrms register. 

    at 244.173mvrms you should read   9032007 * 244.173/353.5 = 6,238,676d

    you should use vgain to adj the rms register to = 6,238,676

    Vrms read 6247006d

    vrms expected  6,238,676d

    vgain reg =   exp/read *0x400000 = 67,019,378 = 0x3FE A272 

    write this value to Vgain 0x3FE A272

    The rms output should be 6,238,676

    so vrms /lsb = 220/ 6,238,676 =3.526389253104345e-5 this would be what you write as a conversion constant in code. 

    You should use Igain to adj the rms register to = 6,238,676

    same idea just make sure you inputs are within range. 


    same for the vGain

  • Hi smith, 

    Thanks for this detailed clarification.

    how you derived vgain reg =   exp/read *0x400000 = 67,019,378 ??

    Voltage gain are in order of 1,2,4..16 which are fixed than how to use any derived value for same register. can you explain it.


  • There are 2 gains 

    PGA gain which sets the analog gain in the front end. 

    XIgain and Xvgain digital gains in the data path to correct for analog gain variation. +/- 3%

    pg 19 for pga gain 

    pg 20 and 21 for xIGain and XVGain

    pg 34 this section shows how I derived IGain and Vgain:

    "how you derived vgain reg =   exp/read *0x400000 = 67,019,378 ??"

    I hope this clarifies things


  • Yes Dave,

    I appreciate your effort to make things clear.

    Thanks for your quick response to clarify our doubts. 


  • Hi Dave,

    Once again i need your support for ADE7953.

    How do I can calibrate & convert raw value of Power and Energy register value to decimal to compare same with other reference data.

    Below is the image of some data taken from ADE7953 & Other Ref meter. In last column register count value is shown. 

    One more point, I want to calibrate using internal register only, not by CF output. ADE7953 interface with STM32 over SPI. 

    As per AN1118, page 11, in establishing the Wh/LSB how to consider accumulation time as continuously data need to use for processing? Or we can use any reference value say 1 sec to compute Wh/LSB value.