Due to the U.S. Thanksgiving holiday, please expect delayed responses during the week of 11/22.

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

EVM430-I2040S: Unexpected results while calibrating our AC meter

Part Number: EVM430-I2040S
Other Parts Discussed in Thread: UNIFLASH


Currently i am facing the issue while having the AC metering using EVM430i2040s. 

1) I made both connection for flashing the code and actual AC metering setup as per given in the technology guide.  

2)First i took the pre saved example of the EVM430i2040s 50Hz and loaded the same on EVM through Uniflash.

3) Now after connecting the  load to the EVM, i have also connected the power analyzer for accuracy purpose but in actual i am getting only 86-87W active input power also IRMS is only 0.34 A on power analyzer. But in GUI i am getting following values which are too high than expected, 

VRMS  220.85
IRM 3.012
VPEAK 311.532
IPEAK 4.260
Phase Angle 2.43
Power Factor .99
frequency 50
Active power  453.363
Reactive power  19.07
Apparent Power  453.67

What should i done to get a correct values. 

4) Also please provide the solution for how to provide the correct values for getting accurate values. 

5) What should be done for erasing flash memory through Uniflash. 

P.S. Please provide the solution As soon as possible. 

Thanks & Regards 


  • Hello,

    Thanks for your detailed post. That's helpful!

    I suspect you may have previously-written calibration factors in INFO memory. By default, the EM_initalizeCalibrationValues() function in the 'EM_userConfig.c' file checks if any calibration factors exist in INFO memory (actually checks if that portion of memory is erased/blank) during initialization after device startup/reset. If they do exist and the checksum matches, the values in INFO memory are used for runtime. Otherwise, the values defined in 'EM_userConfig.c' are used.

    Notice that my project shows the g_emPhaseCalibration factors are stored in RAM while the g_savedEmPhaseCalibration factors are stored in INFO.

    To ensure that the calibration factors from the example EMDC binary or even manually-updated values in 'EM_userConfig.c' are used, select the option to erase both MAIN and INFO memory when programming the device. Please note that whatever tool you use must back up the important device-specific TLV data before INFO memory is erased, then erase INFO, and then write back the TLV data plus any other applicable data to INFO. It is extremely important not to interrupt that process or the device will not be recoverable. CCS and UniFlash should be able to do this. If there's an option to preserve TLV data, make sure that is selected though.

    Let me know if that helps. I suspect that the scaling factor for IRMS stored in INFO is wrong and the root cause of the issue.

  • Hello, 

    Thanks for the reply. 

    I did what you suggested but it does not work.

    Same problem is happening i.e. 

    1.Voltage measured at power analyzer is 230V in actual and i am getting 220V on EMDC. 

    2. Current measured at power analyzer is 0.372A in actual and i am getting 3.12 A on EMDC. 

    What should be done for getting correct values, also please guide for how calibration values can be set to get accurate values. 

    I am stuck at beginning, please help me out. 

  • Did you change any components on the board such as the shunt? If you're using the EMDC example, then the pre-calibrated values should allow the board to capture somewhat accurate measurements.

    To make sure UniFlash erases the calibration factors from INFO memory, please read out the INFO memory with UniFlash. The section used for the calibration factors should be blank until you rewrite them using the EMDC GUI (if you choose to do that).

    You can also recalibrate the gain settings for your board based on the power analyzer readings. You can learn more about how to do that at the following links:

  • Thanks James for reply. 

    Before 2-3 days i somehow managed to get the accurate results by setting the values of Vrms,Irms and Active energy error. But today i am getting the active energy value having negative sign i.e. -88W, -90W. 

    So please provide me the permanent solution for this in order to have correct results. 


  • That's strange. Did anything change? Did you reverse the connections, did the load change, calibration factors get messed up, etc.? In a four-quadrant energy system, there is a chance that the active energy is negative depending on the type of load (capacitive/inductive/resistive).