This is a very similar issue as in this post - ADE7758 voltage reading hangs on contactor swtching... sadly, there is no answer...
In our application we have a STM32 microcontroller talking to an ADE7758 chip via ADuM1411Bxxx isolator. ADE7758 is the only device on the SPI bus, but MCU is driving CS pin. The chip is used to measure 3-phase currents, voltages and energies of a large industrial pumps, which are started using contactors (the contactors are driven by relays which are on the same PCB as ADE7758 and MCU). Voltages are connected directly to the ADE7758 (obviously with proper dividers) and current is measured using transducers. SPI clock is 2.25 MHz. For every register that is read, firmware also checks the checksum from CHKSUM register. This all works well in hundreds of devices and for hundreds of hours. However sometimes the readouts of voltage go to some insane levels (which are above full-scale of the device) and current readouts fall to very low values, while everything else seems to be working. When this problem appears, the MCU can read all registers of ADE7758, every single read passes the checksum test and all values are reasonable (except voltage and current) - for example our logs show that during this invalid state the energy is still accumulated, however much slower than previously (due to very low current readouts). As an example, before the issue appears, the current I'm reading from phase A (AIRMS register) is 160945 while voltage for this phase (AVRMS register) is 732381. After the problem starts, the current readouts drop to values around 100 and they are different for each phase and for each readout (they are fluctuating around +/- 15%, but the values are invalid). On the other hand, invalid voltages spike to an insane level of 6289664. I read this exact same value for every phase and every readout - it seems this value is frozen. In this stage energy registers still seem to accumulate something very slowly, as they increase by 1 every couple of seconds (while before the issue they increase by ~2000 every second). What is interesting is that during the issue, STATUS register frequently reports "missing zero crossing" for all 3 phases, while VARCFNUM register reports "reverse polarity reactive power measurement" in bits 13-15. In the device the connections of power lines are solid, no way they could get disconnected.
To avoid this issue, we added a periodic software reset of the ADE7758 chip - every 1 minute the firmware will issue a "software reset" command, wait for required amount of time and resume normal operation. Initially this seemed to fix the issue, but still in some sites the problem appears, however now its occurrence is limited to no more than 1 minute. This periodic reset is not a solution and it has some issues of its own (a couple of reads after reset are way off the expected values), so we would really like to understand what is the issue here and how could we really fix it. What we noticed so far is that it seems to be somehow noise related, as with disconnected load (no motor) we cannot catch it. The SPI communication seems to be OK - as I've mentioned, for each read the firmware verifies the checksum and this verification passes each time - however reducing SPI frequency to ~300 kHz somehow magically makes the issue go away (even though both ADE and isolator are capable of data rates up to 10 Mbps, so 2.25 is way below their limit).
We would be very grateful for some pointers what to look for, as the issue is extremely hard to reproduce (seems to be impossible to reproduce in the lab) and happens rarely.
Thanks in advance!