AnsweredAssumed Answered

ADE7816 calibration

Question asked by BenjaminHo on Nov 28, 2012
Latest reply on Sep 27, 2016 by ijaz
Branched to a new discussion


I have problem when initialize the ADE7816, base on the step stated on datasheet PG16 Quick start.

in step 3, it should WRITE REQUIRED REGISTER DEFAULTS, but I can't read back the write in register value, kindly advise any problem in following step in my program or any sampler code for initialize ADE7816 can share?

I'm using SPI to communicate with mcu.
Following the steps of my Source code :


1. Hardware reset
2. Clocking SS pin 3 times

3. wait for RSTDONE Interrupt

4. Locking SPI comm to default comm (0xEC01 = 0x00000000)

5. Delay, to ensure SPI Comm is activated.

6. Disable Register Protection (just to ensure) and Read Register Value. 0xE7FE = 0xAD ; 0xE7E3 = 0x00
7. Write Required Register Default
8. Write Register MASK0 =0x00001DCF & MASK1 = 0x00060003

9. Read the Register value has been written
10. Activating Register Protection. 0xE7FE = 0xAD ; 0xE7E3 = 0x80
11. Run DSP. 0xE228 = 0x0001.
12. Read V and I Value.

The following results readback Registers from point 7 :
0xEC01 = 0x00000000 (Successfully)
0xE7FE = 0xE0  (Not support to read)
0xE7E3 = 0x00  (Successfully) >> Disable Register Protection
0x43AB = 0x000000
0x43AC = 0x000000
0x43AD = 0x000000
0x43AE = 0x000000
0x43B1 = 0x000000
0x43B2 = 0x000000
0x43B3 = 0x000000
0x43B4 = 0x000000
0x43B5 = 0x000000
0x43B6 = 0x000000
0x4388 = 0x0FFF8000 (Successfully)
0x438A(VRMS) = 0x000000
MASK0 0x00001DCF (Successfully)
MASK1 0x00060003 (Successfully)
0xE7E3 = 0x80  (Successfully) >> Enable Register Protection

After i read the register, several register can't be written.