Beruflich Dokumente
Kultur Dokumente
Ri
L0
Step-by-Step Design
VS C0 RO VO
Guide for Digital Peak Slope
Comp
PWM
R2
C2 R3
Single-Chip Solution R1
1. Abstract
Figure 1. Analog Peak Current Mode Buck
This application note investigates the Converter
implementation of peak current mode control with
slope compensation using an single Ri
L0
TMS320F28027 (Piccolo A) MCU from Texas
Instruments. This MCU is ideal for peak current VS PWM C0 RO VO
mode implementation due to its dedicated internal
circuitry which enables a fully digital slope
compensation scheme. The theory of operation,
mathematical modeling and all relevant equations PWM
Comparator Blanking C-by-C Trip
are presented along with a detailed step-by-step D=100%
R1
design procedure in both analog and digital DAC
domains. + 2p2z
- K + ADC
Controller -
Rb
A design example and associated experimental Slope Compensation REF
Piccolo A
results are also presented with two methods of
implementation; one using TIs ControlSUITE Figure 2. Digital Peak Current Mode Buck
and one using Birichas Chip Support Library Converter
(CSL).
TIs ControlSUITE whilst the second method
Further information with regards to the CSL and uses Birichas Chip Support Library (CSL).
digital power design workshops can be found at
www.biricha.com/workshops/ The Biricha Digital Chip Support Library provides
a fast and simple method of configuring Texas
2. Introduction Instruments C2000 MCUs for use in digital power
applications. In-depth knowledge of the MCUs
The operation of a digital peak current mode internal registers and associated configuration
converter is similar to its analog counterpart as bits are not required; in place of this, simple
shown in Figure 1. However, the compensation function calls are used.
network, error amplifier, slope compensation and
PWM generator are all replaced by a single The Biricha Digital CSL documentation contains
microprocessor in the digital converter shown in full descriptions and examples of all of the
Figure 2. This application note describes the functions used in the implementation presented
processes involved in setting up a Piccolo MCU here. The user guides and an evaluation copy of
for use within a digital peak current mode power CSL can be downloaded from
supply. www.biricha.com/resources/
A complete design example and two complete Referring to Figure 2, the operation of the peak
implementations are given; the first method uses current mode controlled power supply is as
follows. Initially, the duty is set to 100% and the
PWM is driven high. The output voltage of the This scaled output is then used as an input to the
converter is applied to a sampling divider network DAC connected to the comparators inverting
which is connected to the Piccolos ADC. The input. The non-inverting input is connected to the
voltage is sampled and converted to a digital current sense transformer; the gain of this is
value. A digital reference (REF) is subtracted from represented by the Ri block. The current spike
the digital value and the resulting error value is associated with turning the MOSFET switch on is
used as an input to the digital controller (2p2z ignored through the use of leading edge blanking
Controller). This represents the error amplifier and within the Piccolos blanking block. The output of
compensation network of the analog equivalent. A the comparator will change state when the
full design procedure for this controller will be inductor current reaches the level of the voltage
given later on in this paper. on the DAC output. This causes a cycle-by-cycle
trip event to occur within the digital compare sub-
The output of the controller is then multiplied by a module of the PWM module. The PWM signal will
gain term K. This gain scales the output of the be low for the remainder of the switching period.
controller to a digital value that is suitable for use Therefore, as with the analog equivalent, the duty
with the DAC of the comparator module, is determined by the peak of the inductor current
counteracting the effects of the various gains in the power stage of the converter. The digital
within the closed loop system. The value of this implementation of peak current mode control
gain term can be calculated to obtain the correct achieves the desirable cycle-by-cycle peak
crossover frequency; details are given in the current limiting effect of the analog equivalent.
design example. Full experimental results will be given shortly.
Advertisement
3. Peak Current Mode Model damped this resonant peak and reduces the gain
at FS 2 .
The Buck converter in Figure 3 is used to
describe the peak current mode model used in For a Buck converter, the required peak-to-peak
this application note. However the same value of the external compensation ramp has
procedure can be applied to other topologies. been calculated in [2] and is given in Equation (2).
This compensating ramp reduces the Q of the
L0
VO high frequency transfer function to 1.
VPP =
(0.18 D )RiTSVIN
VS C0 RO
PWM L0
(2)
Where:
Figure 3. A typical Buck converter Current-sense transformer gain: Ri
In order to design a stable compensator, we first
need a mathematical model of the Buck converter Switching period: TS
plant. According to [3], this can be described by
three terms: Input voltage: VIN
Power Stage Small Signal Model The pole, CP1 , of the compensator is set to the
With current mode control, the inductor of the frequency of the ESR zero in the control-to-output
Buck converter in Figure 3 becomes a current transfer function in order to approximately cancel
controlled source. In [3] the small-signal model of out its effects.
the Buck power stage is given as:
1
CP1 =
s RESRC0
1+
ESR (8)
H B (s ) =
s
1+ The zero, CZ 1 , is set to achieve a suitable
OP
phase margin and the pole at origin, CP 0 , is set
(4)
to achieve the desired crossover frequency. The
The pole, OP , is formed from the output frequency of the compensator zero should be set
capacitance and load resistance. With Q set to 1, to 20% of the required crossover frequency.
this pole can be calculated in Equation (5). Under most circumstances this will give a
reasonable phase margin.
1 TS
OP = + 1
R0C0 L0C0 CZ 1 = 2 f X
(5) 5
(9)
Furthermore, the zero, ESR , formed from the
Where f X is the crossover frequency in Hertz.
output capacitance and its equivalent series
resistance is: Finally, the pole at origin (or gain of the
compensator) is calculated. This is the frequency
1 at which the gain solely due to the pole at origin
ESR =
RESR C0 would be unity. This value sets the desired
(6) crossover frequency, f X . After analyzing the
Please note that these are in rad/s and not Hz. Buck converters control-to-output transfer
function, Equation (10) has been derived for
4. Compensator Poles and directly calculating CP 0 of the compensator [2].
Where: 2 z 1
s
TS z + 1
2
R1 = 1 4 f X Ts2 + 16 f X4Ts4 (11)
Where x[n] is the error input to the controller for damped by setting the Q to 1 through calculating
the compensation ramp in Equation (2). Now we
this sampling period and y[n] is the controller
will discuss the digital implementation of this
output for this sampling period. [n 1] denotes compensation ramp.
the pervious sampling period and [n 2] is two
The Piccolo range of MCUs from TI are ideally
sampling periods in the past.
suited for this purpose due to the presence of
The coefficients of the discrete time controller are dedicated ramp generating modules.
used with this linear difference equation.
The DAC module of the Piccolo includes a ramp
Please note that it is now possible to calculate all sub-module which is used to implement slope
of these controller coefficients analytically as all compensation. This slope compensation method
the variables within the coefficients are known; uses a digital staircase to remove the
we will give a design example shortly. subharmonic oscillations [6].
V DACn-1(.t)
6. Digital Slope Compensation RAMPMAX
DECVAL
As mentioned earlier, sufficient ramp needs to be
added such that no subharmonic oscillations
occur; this is called slope compensation. The I(L0)
oscillations are caused by the current feedback
loop which has a double pole in the high ts
Advertisement
In Figure 4, the DAC is initially loaded with the The value DECVAL is decremented from the DAC
output of the controller after being scaled by K. at each system clock tick. This value is set using
This sets the initial value of our demand current CMP_setRampDec() after the ramp module has
reference signal before slope compensation. The been configured. The peak-to-peak value of the
sensed current is compared to this reference analog compensation ramp was calculated in (2).
current. The counter sub-module then The Biricha CSL function CMP_calcRampDec()
decrements the DAC by a set value at each takes this analog voltage value and returns the
system clock tick. This generates a negative ramp correct digital decrement value.
on the current reference signal, just as slope
compensation would in analog, and effectively This function requires the digital equivalent of the
damps the oscillations. ramp height along with the period of the PWM
output. The digital equivalent of the ramp height is
The required compensation ramp height must first calculated using CMP_mVtoRampValue(). For
be converted to a digital value using the gain of example, if a 1500mV ramp is required to
the DAC: compensate a 200kHz PWM output the following
functions would be called during initialization:
2 DACBITS 1
DigitalRampHeight = V PP 64 period = PWM_freqToTicks(200000);
V DAC
decval = CMP_calcRampDec(
(15) CMP_mVtoRampValue(1500),
period );
The value to be decremented at each system CMP_setRampDec( CMP_MOD_2, decval );
clock tick can therefore be found using the digital
ramp height, switching frequency and system The controller output, or reference current, is set
clock frequency: as the initial value of the ramp at the beginning of
the period using the function
DigitalRampHeight FS CMP_setRampMax(). This is called in the ADC
DecVal =
FCLK interrupt routine after the controller output has
(16) been calculated.
The ramp sub-module is first configured using the Figure 5. The required amount of leading edge
function CMP_rampConfig(). This connects the blanking
specified ramp sub-module with a PWM module.
The PWM module synchronization pulse is used The sensed inductor current signal contains
to reset the ramp back to the initial value at the switching noise. During turn on there is a large
beginning of every period. spike which would potentially cause the
comparator to trigger and a trip event to occur. To
CMP_rampConfig( CMP_MOD_2, prevent this, a leading edge blanking block is
PWM_MOD_1 ); provided within the Piccolos comparator module.
For a specified window period the comparators
Advertisement
output is ignored by the digital compare sub- PWM module to use the output of the comparator
module within the Piccolo. as an event trigger.
VPP =
(0.18 D )RiTSVIN of this double pole.
L0 10
Simulated Plant
5
VPP =
(0.18 0.275) 0.48 5s 12 0
22H -5
Gain (dB)
-10
VPP = 0.124V -15
(17)
-20
-25
Step 2: Calculate the positions the poles
-30
and zeros of our analog compensator 10
2
10
3
10
4
10
5
-80
CP1 = ESR -100
-120
CP1 = 73314 rads 1 -140
-160
(= 11,668Hz ) -180
10
2
10
3
10
4
10
5
Frequency (Hz)
20
E [z ] A2 z 2 A1 z 1 + 1
0 (18)
-20
Where:
-40
10
2 3
10 10
4
10
5
A1 = 1.6902106568
A2 = -0.6902106568
0
B0 = 2.0654678327
B1 = 0.1258242849
-50
Phase (degrees)
B2 = -1.9396435478
Configure slope
compensation
Return
Gain (dB)
20
60
Simulated Loop Gain
0
40 Measured Loop Gain (K=10)
-20
Gain (dB)
20
-40
0 2 3 4 5
10 10 10 10
-20
0
-40
2 3 4 5 Simulated phase @ 10khz: 74.3
10 10 10 10
Measured phase @ 10khz: 70.5
-50
Phase (degrees)
0
-100
-50
Phase (degrees)
-150
-100 2 3 4 5
10 10 10 10
Frequency (Hz)
-150
Figure 12. Frequency response of open loop
10
2 3
10
4
10 10
5 system. Measured using Bode 100 from OMICRON
Frequency (Hz) Lab
Figure 11. Frequency response of open loop The code is updated with the new calculated
system. Measured using Bode 100 from OMICRON value for K . After recompiling and updating the
Lab
microcontroller the frequency response sweep is
performed again to confirm the correct crossover
The correct value for K can be determined from frequency. The result in Figure 12 shows a
the frequency response data shown in Figure 11 crossover of 10kHz with 70.5 degrees of phase
as follows. Record the gain, in decibels, at the margin. The system is stable and has a fast
desired crossover frequency. Using (21) the transient response.
required value of K can be calculated using the An accurate analytical method for calculating the
initial value for K , K INIT . scaling gain K is taught in the workshops
presented by Biricha Digital. Visit
In Figure 12 the simulated open loop model This application note has explained one possible
(dashed line) is compared with the measured implementation of a digital power supply. Further
results (solid line). The low frequency applications of digital power are explored from a
discontinuities are to be expected. hardware designers perspective in the Digital
Power Workshops available from Biricha Digital.
The top magnitude plot of Figure 12 shows a Visit www.biricha.com for more information.
particular characteristic of digital converters that is
apparent at low frequencies. The gain is less than References
the simulated model. This is due to a combination
[1] Ridley, R.B., A new, continuous-time model for
of the quantization effects of the ADC and the
current-mode control [power convertors], Power
precision of the fixed point arithmetic. This result
Electronics, IEEE Transactions on (1991), pp.
draws parallels to the gain-bandwidth-product
271-280
limitation of analog operational amplifiers and a
similar result also found in the analog domain [6]. [2] Biricha Digital Power Ltd. Digital Power Multi-
Day Workshop (2010), pp. 168
The lower phase plot of Figure 12 shows good
agreement with the predicted model around the [3] Ridley, R.B., A New Small-Signal Model for
crossover frequency. Phase roll-off becomes Current-Mode Control, Virginia Polytechnic
apparent as the perturbation frequency Institute and State University, PhD. Thesis (1990)
approaches the switching frequency. At lower
frequencies the quantization and fixed point [4] Cooke, P., Modeling average current mode
arithmetic again mask the effects of the pole at control [of power convertors] (2000), pp. 256-262
origin. vol.1
Overall the measured results show a good [5] Tang, W. and Lee, F.C. and Ridley, R.B.,
correlation to the results of the model. The Small-signal modeling of average current-mode
measured open loop gain crosses the 0dB axis at control (1992), pp. 747-755
the desired crossover frequency with
[6] Hallworth, M. and Shirsavar, S.A.,
approximately 70.5 of phase margin and a 10dB
Microcontroller Based Peak Current Mode Control
gain margin.
Using Digital Slope Compensation, Power
Electronics, IEEE Transactions on (2012)
10. Conclusion
This application note has described a method for
designing a digital peak current mode power
supply. An example of a Buck converter is used
to illustrate this process. The measured small-
signal frequency response of the digital power
supply matches with the predicted response from
the current mode model.
/* These set up the coefficients for our 2p2z controller for a Buck
* Converter with a 200kHz switching frequency and a crossover of 10kHz
*/
{
_iq15 m_IQ;
int m_Int;
};
// Controller
struct CNTRL_2p2zData
{
CNTRL_ARG Ref; /* +0 This is a range of +1 */
CNTRL_ARG Fdbk; /* +2 This is a range of +1 */
CNTRL_ARG Out; /* +4 This is a range of +1 */
long temp; /* +6 */
_iq24 m_U1; /* +8 */
_iq24 m_U2; /* +10 */
_iq31 m_E0; /* +12 */
_iq31 m_E1; /* +14 */
_iq31 m_E2; /* +16 */
_iq26 m_B2; /* +18 */
_iq26 m_B1; /* +20 */
_iq26 m_B0; /* +22 */
_iq26 m_A2; /* +24 */
_iq26 m_A1; /* +26 */
_iq23 m_K; /* +28 */
_iq15 m_max; /* +30 */
_iq15 m_min; /* +32 */
};
CNTRL_2p2zData CNTRL_2p2z;
CNTRL_2p2zData* CNTRL_ptr;
main()
{
/* DSP2803x_SysCtrl.c */
InitSysCtrl();
/* DSP2802x_EPwm.c */
InitEPwm1Gpio();
/* DSP2802x_PieCtrl.c */
InitPieCtrl();
/* DSP2802x_PieVect.c */
InitPieVectTable();
/* DSP2802x_InitPeripherals.c */
InitAdc();
/* Configure ADC */
EALLOW;
AdcRegs.INTSEL1N2.bit.INT1E = 1;/* Enabled ADCINT1 */
AdcRegs.INTSEL1N2.bit.INT1CONT = 0;/* Disable ADCINT1 Continuous mode */
AdcRegs.INTSEL1N2.bit.INT1SEL = 0;/* setup EOC0 to trigger ADCINT1 to fire */
AdcRegs.ADCSOC0CTL.bit.CHSEL = 0xA;/* Set SOC0 channel select to ADCINB2 */
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 6;/* Set SOC0 start trigger on EPWM1B, due to
round-robin SOC0 converts first then SOC1 */
AdcRegs.ADCSOC0CTL.bit.ACQPS = 6;/* Set SOC0 S/H Window to 7 ADC Clock Cycles, (6
ACQPS plus 1) */
AdcRegs.ADCCTL1.bit.INTPULSEPOS = 0;/* Configure early interrupts */
EDIS;
/* Configure Comparator 2 */
EALLOW;
SysCtrlRegs.PCLKCR3.bit.COMP2ENCLK = 1;/* Enable comparator clock */
Comp2Regs.COMPCTL.bit.SYNCSEL = 0;/* Aysnc output */
Comp2Regs.COMPCTL.bit.QUALSEL = 0;/* No qualification */
Comp2Regs.COMPCTL.bit.CMPINV = 0;/* Non invert */
Comp2Regs.COMPCTL.bit.COMPSOURCE = 0;/* Internal DAC connection */
Comp2Regs.COMPCTL.bit.COMPDACEN = 1;/* Enable */
EDIS;
/* Initialize controller */
CNTRL_2p2z.Ref.m_IQ = _IQ15(REF);
CNTRL_2p2z.m_U1 = _IQ24(0.0);
CNTRL_2p2z.m_U2 = _IQ24(0.0);
CNTRL_2p2z.m_E1 = _IQ30(0.0);
CNTRL_2p2z.m_E2 = _IQ30(0.0);
CNTRL_2p2z.m_B2 = _IQ26(B2);
CNTRL_2p2z.m_B1 = _IQ26(B1);
CNTRL_2p2z.m_B0 = _IQ26(B0);
CNTRL_2p2z.m_A2 = _IQ26(A2);
CNTRL_2p2z.m_A1 = _IQ26(A1);
CNTRL_2p2z.m_K = _IQ24(K);
CNTRL_2p2z.m_max = _IQ15(MAX_DUTY);
CNTRL_2p2z.m_min = _IQ15(MIN_DUTY);
CNTRL_ptr = &CNTRL_2p2z;
while(1)
{
}
asm(""
"\t\n PUSH XAR7 "
"\t\n PUSH XT "
"\t\n PUSH ACC "
"\n\t.global _CNTRL_2p2z "
"\n_CNTRLstart: "
"\t\n MOVW DP, #_CNTRL_2p2z+0 "
"\t\n MOVL XAR7,#_CNTRL_2p2z+18 "
return;
}
/* These set up the coefficients for our 2p2z controller for BDP-105 Buck
* Converter with a 200kHz switching frequency and a crossover of 10kHz
*/
#define K (42.0243)
#define REF (_IQ15toF(2048))
#define MIN_DUTY 0
#define MAX_DUTY 65535
#define A1 +1.6902106568
#define A2 -0.6902106568
#define B0 +2.0654678327
#define B1 +0.1258242849
#define B2 -1.9396435478
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
// GLOBAL VARIABLES
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
uint16_t slope;
/******************************************************************************
* FUNCTION : IsrAdc
* DESCRIPTION :
* This interrupt is called when the ADC sequencer has finished sampling.
******************************************************************************/
interrupt void IsrAdc( void )
{
/* Ack group and ADC SEQ interrupt. Re-enable the ADC interrupts -Int1 */
ADC_ackInt( ADC_INT_1 );
/* These three lines read the ADC, call the 2p2z control loop & then update
* the duty cycle respectively.
*/
MyCntrl.Fdbk.m_Int = ADC_getValue(ADC_MOD_1);
CNTRL_2p2z(&MyCntrl);
/* This inputs the "initial" value of the demand current (from the 2p2z)
* controller to the DAC of the comparator. i.e. the demand current before
* slope compensation is fed to the inverting pin of the on board
* comparator 2. This initial DAC value will later get updated by
* the DAC's slope compensation algorithm counter
*/
CMP_setRampMax( CMP_MOD_2, MyCntrl.Out.m_Int );
/* Sets up soft-start*/
CNTRL_2p2zSoftStartUpdate(&MyCntrl);
}
/******************************************************************************
* FUNCTION : main
* DESCRIPTION :
*
******************************************************************************/
void main( void )
{
/* Initialize the MCU, ADC & GPIO12 */
SYS_init();
ADC_init();
GPIO_config( GPIO_12, GPIO_DIR_OUT, false );
/* Setup PWM Mod1 for fs = 200kHz. PWM1 Ch A is being used for switching
* the converter. PWM1 Ch B is being used for timing purposes - more on this
* later.
*/
PWM_config( PWM_MOD_1, PWM_nsToTicks(PERIOD_NS), PWM_COUNT_UP );
PWM_pin( PWM_MOD_1, PWM_CH_A, GPIO_NON_INVERT );
PWM_pin( PWM_MOD_1, PWM_CH_B, GPIO_NON_INVERT );
/* Typically for digital current mode we set the PWM Ch A duty 100%; then
* use the cycle by cycle trip function to pull the PWM pin low when the
* current reaches our demand peak value. However for safty we have set the
* maximum duty to 60%. i.e if your control algorithm fails, the PWM will
* reset after 60% rather than staying at 100%.
*/
PWM_setDutyA(PWM_MOD_1, PWM_nsToTicks(PERIOD_NS)*0.6 );
/* PWM1 Channel A is being used for the PWM drive of the MOSFET. Hence, the
* sampling, conversion, ADC interrupt entry, 2p2z, scaling and then DAC &
* comparator set up must happen just before PWM1 Ch A goes high. For this
* reason we use PWM1 Channel B to start the sampling process. The falling
* edge of PWM1 Ch B is used to start the sampling process followed by all
* relevant calculations. Therefore the duty of Ch B should be set such that
* all sampling and calculations are completed just as PWM1 Ch A goes high.
* This time has been measured on the scope as 2.45us.
*
* <---PERIOD_NS-->
* ___ ___
* PWM A: _______| |___________| |___________|
*
* PERIOD_NS-2450
* ________<-----> ________
* PWM B: _______| |______| |______|
* ^ ^
* PWM B triggers ADC SOC here^ ^ here PWM B starts CLA slope
* This falling edge needs to be compensation function for the next
* adjusted such that all cycle
* calculations are completed
* before the next cycle
* (i.e. before the next rising edge)
*/
/* This function sets the PWM1 Ch B such that the calculations are complete
* just before the rising edge PWM B. PERIOD_NS is our period and set to
* 5000 ns. Therefore we are setting our pulse width to (5000 - 2450) ns
*/
PWM_setDutyB(PWM_MOD_1, PWM_nsToTicks( PERIOD_NS-2500 ) );
/* This sets up the PWM Mod1 to start the ADC conversion whenever PWM1
* Channel B timebase counter matches Ch Bs duty. i.e. falling edge of PWM
* Ch B triggers ADC SoC, As discussed above.
*/
PWM_setAdcSoc( PWM_MOD_1, PWM_CH_B, PWM_INT_CMPB_UP );
/* This sets up PWM Mod1 to generate an interrupt every PWM cycle whenever
* timebase counter = 0. the "0" instead of an ISR function name means that
* an interrupt is generated but no jump to an ISR function is carried out.
* The CLA will detect this interrupt and run the CLA code instead. Finally
* PWM_INT_PRD_1 indicates that an interrupt should be generated every cycle
* as opposed to every other cycle
*/
PWM_setCallback(PWM_MOD_1, 0, PWM_INT_ZERO, PWM_INT_PRD_1 );
/* This effectively feeds the output of the comparator Mod2 into PWM Mod1
* and activates the blanking by setting the digital compare event
* PWM_DCEVT at the correct time. We will use PWM_DCEVT later to trip our
* PWM.
* The input to the blanking block is not inverted & "true" ensures that
* the output is not synchronized with the PWM's time-base
* clock.
*/
PWM_configBlanking( PWM_MOD_1, PWM_CMP_COMP2, GPIO_NON_INVERT, true );
/* sets up the relevant trip zones: i.e. when PWM_DCEVT occurs clear
* PWM1 Ch A on a cycle by cycle basis but take no action on PWM1 Ch B
* PWM_DCEVT was set up in PWM_configBlanking().
*/
PWM_setTripZone( PWM_MOD_1, PWM_DCEVT, PWM_TPZ_CYCLE_BY_CYCLE );
PWM_setTripState( PWM_MOD_1, PWM_CH_A, GPIO_CLR );
PWM_setTripState( PWM_MOD_1, PWM_CH_B, GPIO_NO_ACTION );
while(1)
{
}
}
IMPORTANT NOTICE
All material presented in this application note, associated software, exercises, appendices and any oral
presentations made by or on behalf of Biricha Digital Power Ltd are for educational purposes only, are not
intended for production or commercial applications and may contain irregularities and defects or errors.
Furthermore, none of the material has been tested or certified by any government agency or industry
regulatory organization or any other third party organization.
Biricha Digital Power Ltd makes no warranties or representations, express, implied or statutory, including
any implied warranties of merchantability, fitness for a particular purpose, lack of viruses, lack of patent
infringements, accuracy or completeness of responses and lack of negligence. Prior to using, incorporating
or distributing any of the material that has been included in this application note in any commercial product,
you must thoroughly test the product and the functionality in that product and be solely responsible for any
problems or failures.
In no event shall Biricha Digital Power Ltd, or any applicable licensor, be liable for any special, indirect,
incidental, or punitive damages, however caused, arising in any way out of your use of the material
presented in the DPS Workshop. These excluded damages include, but are not limited to, cost of removal
or reinstallation, procurement of substitute goods or services, outside computer time, labour costs, loss of
data, loss of goodwill, loss of profits, loss of savings, loss of use or interruption of business or other
economic loss.