A question on ADE7878 SoC for energy metering. How many instantaneous samples inside the windows for the RMS computation of currents and voltages?
The RMS measurement is done with a filter that is constantly calculating with an update rate at 8kHz. In the ADE7878 Data Sheet we have more specifics on the filter such as the settling time and the equation it follows on pages 43-36.
Are you having any issues with the RMS measurement?
no problem with the RMS measurement at this time. I'm trying to define the timing requirements for the software that will monitor the ADE7878. So I need to know the number of sample inside the sliding window (LPF filter) to avoid loss of information: this information will help me to define the frequency of reading of the RMS registers. I suppose that the Settling Time (Table 13) also indicates the depth of the LPF filter, so my SW must read the RMS registers every 500 msec. It is correct?
A second question. If my SW reads the RMS registers exactly on the sampling instant (8KHz), could it read an inconsistent data, or there are semaphores to control the access?
The update rate of the RMS register is 8 kHz, although you will see some ripple in each individual value. That is why we recommend one of 2 approaches to get a stable value, they give equally accurate results.
1) Read the RMS registers synchronously with the voltage zero crossings with the zero crossing interrupt.
2) Or read the register at least 50 times in 1 second for a 50 Hz line (60 times for a 60Hz line) and average those readings over that 1 second.
What is the application that you would want to read the RMS register so fast? Most commonly for an RMS reading it is only read once for a rough value or the methods explained above for a stable value.
For the second question, there would be no issue with reading the RMS exactly on the sampling instant.
I have a question related to this topic. I have an application where we would like to use a smaller window for the RMS computation, understanding that the resultant values will see more variability. Is there any way to configure the accumulation interval for the RMS computation? This capability is not discussed in the datasheet, so I assume it's not possible, but I figured I'd ask in case there is a way to do this that is not published. Thanks!
The output rate of the RMS measurement is 8kHz, and this rate cannot be changed to be any faster. As mentioned if you read each 8kHz value then there will be some ripple in these readings and that is why we recommend averaging over 1 second.
What rate are you looking to get out of the RMS register?
Thanks for the quick response. I don't require a faster measurement rate - what I am hoping to do is reduce the settling time of the RMS value by reducing the number of samples used for the RMS calculation. The settling time for current and voltage RMS values from zero to full scale is reported in the datasheet as 440ms (with the integrator off), and my own tests show similar results. I'm interested in reducing this settling time to 100ms. If the number of samples used for the calculation are reduced, the reaction could be faster - at the expense of increased ripple and sensitivity to transients. My application isn't for energy metering so I can accept reduced accuracy on these values, and then use the low-ripple registers available on the new "A" version for reporting. I was hoping that perhaps there was an unpublished register that defines the number of samples used for the RMS calculation that I could adjust. In any case, let me know if you have any thoughts about my application!
Sorry for the delay but there is no way to change the RMS filter in the ADE7878 and therefore the settling time.
A suggestion I would have is, depending on your application, you could use the waveform samples directly from the part to get a faster response. Although in this case to get RMS you would have to implement your own RMS computation.
Thanks for the reply. We are looking into options for using the waveform samples and doing the RMS calculations with our host processor. One other thought that I had - is there any way to trigger a clear or reset of the RMS register values? The idea would be to reset/clear these registers to force a restart of the RMS calculation process, then we could read the value after 100ms, clear it again, and repeat. It's a longshot, but I thought I'd ask. Thanks!
Unfortunately there is no way to clear or reset the RMS register. This is a value that is calculated constantly and can't be reset so any change in the RMS will have this settling time with it. We specify 440ms in the data sheet but this can be less depending on how large the change is and where it happens in the waveform. The filters will always have some settling based on the waveform going in.
What is the application for this? Will it be used for a relay, breaker or something of that sort where you need to react quickly? What kind of changes in the RMS are you looking to track?
Happy New Year, David!
Our application does indeed involve controlling a contactor used to disconnect a load under certain circumstances, which are configurable. Based on the performance of previous generation equipment, there is an expectation that the end user can configure the "trip time" for voltages or currents exceeding the configured thresholds as low as 100ms. Most users would not choose such a short trip time, but we have provided this capability in the past.
It may be a good exercise for us to define the conditions of our response time more clearly, since as you mention, the settling time will depend on the magnitude of the change. I'll take a look into this. Thanks!
Hi everybody )
Could someone tell me about RMS calculation width (i.e. window)? I can't find any mentions about N from expression 10 (please see AD7878 datasheet). Of course, table 13 tells that the settling time is 440 ms (for 50 Hz without integrator) but I think that it isn't really width.
The way the RMS is implemented, you can say it has a continuous window. Therefore, you can't give it a finite width. This means the settling time is based on the filter and cannot be connected to the actual calculation width.
Retrieving data ...