ADE7953 on SPI. Problem with reading registers.

Hello ADI team

Started project with ADE7953 and have problem with reading value of it's registers.When write to register (3rd byte in transmission is 0x80), on MISO line receive back it's default value (documentation doesn't say about it), but when want to read the register (3rd byte is 0x00), the MISO line is floating high. The same behaviour is with all 8-bit registers I tested and 16-bit.On 24-bit register I don't see output of default value during writing value, of course during reading register or reading last data or last command receive only 0xFF, 0xFFFF or 0xFFFFFF depending register.

Another form of observed activity is IRQ line. It is released several microseconds after RESET (voltage is stable all the time because test works in loop). After writing 0xAD to register 0xFE and 0x30 to register 0x120 the IRQ line goes Low (active). After write 0 to register IRQ_ENA line go High (inactive). It show chip react at least on some commands. I am fighting with it from few days without success.

My hardware is development board (Nucleo-F767ZI)  connected by wires directly to ADE7953 chip soldered on separate board. It should be connected through ADUM3154 isolator, but actually is wired directly. Powered with 3,3V (3,308V), voltage on VINTA is 2,611V (bit too high?), on VINTD is 2,485V, on REF is 1,206V. Quartz works on correct frequency. The SPI clock is 2,5MHz, but tried much lower with the same results. Initially was short circuit below capacitor on VINTA line, so the higher value of voltage can be result of it.

The board containing ADE7953, 2x double transoptors and AM1L-0505 DC/DC converter with 80% efficiency, consume 45mA. Too much in my opinion. The 3 LEDs lighting in transoptors consume about 3x3,5mA,  total 10,5mA. So ADE7953 consume about 3 times as it should.  Can't see any short circuits on board, also re-soldered the chip 2 times to be sure. Board has solder mask and is done by professional manufacturer. Have 2 boards, but actually only one ADE7953 chip co can't compare with other.

For easier diagnostic my test software works in loop:

reset = L

wait 10ms

reset = H

wait for IRQ = L

additionally wait extra 100ms to be sure everything is stabilized

write 0x00AD to 0x00FE (write 16 bits, but also tried to write 8-bit. Which one is correct? Register looks to be 8 bit, but in example code I saw 16 bit writing)

write 0x0030 to 0x0120 (this is 16 bits without doubts)

wait 20us

write to CONFIG

read CONFIG

read LAST RWD16

write CFMODE

read CFMODE

read LAST RWD16

write ALT_OUTPUT

and so on with several other registers.

In separate documents include schematic and images taken from oscilloscope showing signals during transmission with description what operation is done. Please help if you could.

PDFPDF