TIDUFG5 December 2025
When SW2 is ON, the response follows the exponential decay equation:
where
See Figure 2-6 for a better understanding of the concept.
The settling voltage, Vinf, is of specific interest. The three unknowns in this equation are Vinf, τ, and Vo. If the ADC measures three sample voltages at three different times, a system of three equations is created:
By using t2 = 2 × t1, the calculation for Vinf is heavily simplified:
The MATLAB script used to solve for the system of equations is:
%% solution for exponential decay
clc
syms vt0 vt1 vt2 vinf v0 x
eq1 = vt0 == vinf+v0;
eq2 = vt1 == vinf+v0×x;
eq3 = vt2 == vinf+v0×x×x;
eq4 = vt0 ~= vt1;
eqns = [eq1, eq2, eq3, eq4];
[vinf, v0, x, para, conditions] = solve(eqns,[vinf, v0, x],ReturnConditions=true)In the TIDA-010985 default code, the time spacing between the three samples is 330ms. This keeps the total IMD measurement cycle time under 2s while making the fixed-point computation straightforward. To change the default cycle time, users can do one of the following:
#define SamplesSize 2000 // ADC buffer size
#define E1 990 // total time for Riso measurement is 2xE1 in ms The time constant is calculated with the following equation:
For isolation resistance, only Vinf is necessary. For the total system Y cap (CisoP + CisoN), approximate V'(t) at t0 with two adjacent ADC measurements. Then Ciso is:
Figure 2-6 Example Voltage Decay Curve With ADC Samples Used for Prediction AlgorithmA similar analysis can be done for the charging curve. The calculation for the final steady state voltage Vinf is:
The MATLAB script used to solve for the system of equations is:
%% charging solution
clc
syms vt0 vt1 vt2 vi v0 x
eq1 = vt0 == vi;
eq2 = vt1 == vi+ v0×(1-x);
eq3 = vt2 == vi+ v0×(1-x×x);
eq4 = vt0 ~= vt1;
eqns = [eq1, eq2, eq3, eq4];
%
[svi, sv0, sx, para, conditions] = solve(eqns,[vi, v0, x],ReturnConditions=true)One important consideration is knowing when to apply the prediction algorithm. If the voltage has a fast settling time, avoid using the prediction algorithm. Waiting a little longer in time before solving for Riso or Ciso is more practical. Currently, the software does some basic checks based on the voltage time derivative (normalized by the Vbus voltage) to set a threshold for prediction mode. This method does require some tuning with known loads to provide a reliable operation. These are the possible operating modes in the code: