Bar Logo 3.8/7.6 kw Totem pole Demonstration Application (Part-No. (not specified))
 
Content
     
Loading...
Searching...
No Matches
drv_pwrctrl_app_TPBLPFC.c
Go to the documentation of this file.
1
11/*
12� [2024] Microchip Technology Inc. and its subsidiaries.
13
14 Subject to your compliance with these terms, you may use Microchip
15 software and any derivatives exclusively with Microchip products.
16 You are responsible for complying with 3rd party license terms
17 applicable to your use of 3rd party software (including open source
18 software) that may accompany Microchip software. SOFTWARE IS ?AS IS.?
19 NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS
20 SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT,
21 MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
22 WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
23 INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY
24 KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF
25 MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE
26 FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP?S
27 TOTAL LIABILITY ON ALL CLAIMS RELATED TO THE SOFTWARE WILL NOT
28 EXCEED AMOUNT OF FEES, IF ANY, YOU PAID DIRECTLY TO MICROCHIP FOR
29 THIS SOFTWARE.
30 */
31
32
36#include <p33CH512MP506S1.h>
37
38#include "../../../mcc_generated_files/system/pins.h"
40//#include "../../../mcc_generated_files/pwm_hs/pwm.h"
43#include "PFC_frameworkSetup.h"
44#include "../../misc/MCC_add_on.h"
46
47
52static void VOUTaveraging(void);
53static void VOUT_HystereticCheck(void);
54static void ZeroCross_PHx(struct PHASE_VALUES_s* PhaseX, uint16_t PWMnr);
55static void SoftstartAfterZC_PHx_GTIMode(struct PHASE_VALUES_s* PhaseX, uint16_t PWMnr);
56static void SoftstartAfterZC_PHx_PFCMode(struct PHASE_VALUES_s* PhaseX, uint16_t PWMnr);
57static void CCM_PHx(struct PHASE_VALUES_s* PhaseX, uint16_t PWMnr);
58static void DutyCycleFeedForward_PHx(struct PHASE_VALUES_s* PhaseX);
59static void BurstMode_PHx(struct PHASE_VALUES_s* PhaseX, uint16_t PWMnr);
60static void Handler_PHx(struct PHASE_VALUES_s* PhaseX, uint16_t PWMnr);
61static void Adaptive_Currentcontroller_Gain(uint16_t PWMnr);
62
63
75{
76
78 // _LATC12 = Phase_Values_PH1.Control_Status_Flags.bits.Soft_Start_Zero_Cross;
80
82
83 //Vout limits and dV/dt check
84#ifdef ADAPTIVE_STEPRESPONSE_ENABLED
86 {
88 }
89#endif
90 //PHASE #1
92
93}
94
96{
97
98#if defined MODE_INTERLEAVED
99 //PHASE #2
101#endif
102
103}
104
105
120static void __inline__ Handler_PHx(struct PHASE_VALUES_s* PhaseX, uint16_t PWMnr)
121{
122
124 {
125 //<ZC range detection and handling, polarity change check
126 ZeroCross_PHx(PhaseX, PWMnr);
127
128#ifdef VOUT_PRECHARGE_PCS_ENABLE
130#else
131 if (PhaseX->Control_Status_Flags.bits.Relay)
132#endif
133 {
134#ifdef AC_CYCLE_SKIPPING_ENABLED
135 // Burst mode checked after startup ramp or if ref changed during run mode
137 {
138 BurstMode_PHx(PhaseX, PWMnr);
139 }
140#endif
141#ifdef MODE_GRID_TIE_INVERTER
142 SoftstartAfterZC_PHx_GTIMode(PhaseX, PWMnr); //GTI special switch handling
143#else
144 //#if defined MODE_PFC || defined MODE_INTERLEAVED
145 SoftstartAfterZC_PHx_PFCMode(PhaseX, PWMnr); //PFC mode standard switch handling
146#endif
147 //synch switch handling based on polarity
151 {
152#ifdef VOLTAGE_LOOP
154#endif
155 CCM_PHx(PhaseX, PWMnr);
156 }
157 }
158
159#ifdef VOLTAGE_LOOP
160 if ((Vout_Control.Vout.FilterCounter < 1) && (PWMnr == 1))
161 {
162 //outer voltage loop
164 {
166 }
167 else
168 {
171 }
172 }
173#endif
174
175 //Current loop
177 {
178#ifdef VOLTAGE_LOOP
180#else
182#endif
183
184 PhaseX->Controller_Values.IAC_Reference = (PhaseX->Controller_Values.IAC_Reference_l >> 15); //shift only 15 because of 2 signed bits in mulss
185
186#ifndef VOLTAGE_LOOP
188 {
189 PhaseX->Controller_Values.IAC_Reference = (Vout_Control.Reference.Reference_Internal); //IAC reference is 31 digits per Ampere left shifted by 4
190 }
191#endif
192
193 PhaseX->Phase_Current.Rectified_Shift = (uint16_t) (PhaseX->Phase_Current.Rectified << 4); //<<< 4
194 //inner current loop
195 if (!PhaseX->Controller_Values.Control_Freeze) //Freezed because of cycle skipping
196 {
199
200#ifdef MODE_INTERLEAVED
203#endif
204
207 }
208
209#ifdef DUTY_RATIO_FEEDFORWARD_ENABLED
210 //DC ff / switch handling when NOT in light load
212 {
214 }
215#endif
216
217 //Vout precharge option with openloop fixed duty cycle 50% at LV and 25% at HV
219 {
220#if HIGH_VOLTAGE
221#ifdef MODE_INTERLEAVED
222 PhaseX->Controller_Values.Duty_Cycle_Set_Value = MPER >> 2;
223#else
224 PhaseX->Controller_Values.Duty_Cycle_Set_Value = MPER >> 2; //open loop precharge with fix 25% duty cycle
225#endif
226#else
227 PhaseX->Controller_Values.Duty_Cycle_Set_Value = MPER >> 1;
228#endif
229 }
230
231 //check min/max value
234
235
236 // PWM_TriggerCompareValueSet(PWMnr,PhaseX->Controller_Values.Duty_Cycle_Set_Value >> 1);
237 if (PWMnr == 1) PG1TRIGA = (Phase_Values_PH1.Controller_Values.Duty_Cycle_Set_Value >> 1);
238 if (PWMnr == 2) PG2TRIGA = (Phase_Values_PH2.Controller_Values.Duty_Cycle_Set_Value >> 1);
239
240 //update duty cycle with controller output value only when out of zero cross startup
241 //zero cross startup is in open loop in function SoftstartAfterZC_PHx_XXX
243 {
245 }
246 }
247
249 }
250}
251
252
264static void __inline__ VOUTaveraging(void)
265{
266
267 static uint32_t VoutAVGsum, PH1AVGCurrentsum, PH2AVGCurrentsum;
268 static uint32_t PH1AVGCurrentOffset, PH2AVGCurrentOffset;
269 static uint16_t vac_pol_changed_counter;
270 static uint16_t PH1vac_pol_changed_counter, PH2vac_pol_changed_counter;
271
275
276 VoutAVGsum += Vout_Control.Vout.Raw;
277
278 //averaging of input current
279 PH1AVGCurrentsum += Phase_Values_PH1.Phase_Current.Rectified; //time consuming instruction, optimize with asm
280 // PH2AVGCurrentsum += Phase_Values_PH2.Phase_Current.Rectified;
281
284 {
285 vac_pol_changed_counter++;
286 PH1vac_pol_changed_counter++;
287 PH2vac_pol_changed_counter++;
288 }
289
290 if (((vac_pol_changed_counter > 0) && (Vout_Control.Vout.FilterCounter > 1))
291 || (Vout_Control.Vout.FilterCounter > 8000))
292 {
294 Vout_Control.Vout.Filtered = (uint16_t) (__builtin_divud(VoutAVGsum, Vout_Control.Vout.FilterCounter - 1));
295 VoutAVGsum = 0;
296 vac_pol_changed_counter = 0;
298 }
299
300 // after power up during initialization the current sensor calibration is done
302 {
303 PH1AVGCurrentOffset += Phase_Values_PH1.Phase_Current.Raw;
304 PH2AVGCurrentOffset += Phase_Values_PH2.Phase_Current.Raw;
305
306 if (((PH1vac_pol_changed_counter > 1) && (Phase_Values_PH1.Phase_Current.FilterCounter > 1))
307 || (Phase_Values_PH1.Phase_Current.FilterCounter > 4000)) //4000=40ms/10us
308 {
309 Phase_Values_PH1.Phase_Current.Offset = (uint16_t) (__builtin_divud(PH1AVGCurrentOffset, Phase_Values_PH1.Phase_Current.FilterCounter - 1));
310 PH1AVGCurrentsum = 0;
311 PH1AVGCurrentOffset = 0;
312 PH1vac_pol_changed_counter = 0;
314 }
315 if (((PH2vac_pol_changed_counter > 1) && (Phase_Values_PH2.Phase_Current.FilterCounter > 1))
316 || (Phase_Values_PH2.Phase_Current.FilterCounter > 4000)) //4000=40ms/10us
317 {
318 Phase_Values_PH2.Phase_Current.Offset = (uint16_t) (__builtin_divud(PH2AVGCurrentOffset, Phase_Values_PH2.Phase_Current.FilterCounter - 1));
319 PH2AVGCurrentsum = 0;
320 PH2AVGCurrentOffset = 0;
321 PH2vac_pol_changed_counter = 0;
323 }
324 }
325
326 //averaging of input current
328 {
329 if (((PH1vac_pol_changed_counter > 1) && (Phase_Values_PH1.Phase_Current.FilterCounter > 1)) || (Phase_Values_PH1.Phase_Current.FilterCounter > 4000)) //4000=40ms/10us
330 {
331 Phase_Values_PH1.Phase_Current.Filtered = (uint16_t) (__builtin_divud(PH1AVGCurrentsum, Phase_Values_PH1.Phase_Current.FilterCounter - 1));
332 PH1AVGCurrentsum = 0;
333 PH1AVGCurrentOffset = 0;
334 PH1vac_pol_changed_counter = 0;
336 }
337
338 // if (((PH2vac_pol_changed_counter > 1) && (Phase_Values_PH2.Phase_Current.FilterCounter > 1)) || (Phase_Values_PH2.Phase_Current.FilterCounter > 4000)) //4000=40ms/10us
339 // {
340 // Phase_Values_PH2.Phase_Current.Filtered = (uint16_t) (__builtin_divud(PH2AVGCurrentsum, Phase_Values_PH2.Phase_Current.FilterCounter - 1));
341 // PH2AVGCurrentsum = 0;
342 // PH2AVGCurrentOffset = 0;
343 // PH2vac_pol_changed_counter = 0;
344 // Phase_Values_PH2.Phase_Current.FilterCounter = 0;
345 // }
346 }
347
349
350}
351
352
365static void __inline__ ZeroCross_PHx(struct PHASE_VALUES_s* PhaseX, uint16_t PWMnr)
366{
367
368 //switch off main and synch switches at ZC area ---------------------------
370 {
375
376 //reset duty cycle to 0 to startup later from low duty cycle values
377 PWM_DutyCycleSet(PWMnr, 0);
378
379 PhaseX->Controller_Values.CCM_Counter = 1;
380 //CCM_Counter used as hysteresis around the CCM_CURRENT value
381 //in MODE_GRID_TIE_INVERTER the CCM counter can be greater as
382 //CCM level at end of half wave and synch is enabled
383 //at the begin of the next half wave after ZC range synch switch is enabled
384 //because of DCM counter needs to be count down after ZC range
385 }
386
387 //polarity change check ---------------------------------------------------
389 {
391
392 PhaseX->Controller_Values.BurstModeCycleCounter++; //Burst Mode cycle count
393 }
394
395}
396
397
411static void __inline__ SoftstartAfterZC_PHx_GTIMode(struct PHASE_VALUES_s* PhaseX, uint16_t PWMnr)
412{
413 uint16_t pg1dc_;
414
415 //switch on main switches after polarity change and ZC range is over and before ZC startup
419 {
421 PhaseX->Controller_Values.PWM_Counter = 0;
422
424 {
425 //startup after ZC like PFC
426 PWM_SwapEnable(PWMnr);
429 }
430 else
431 {
432 //startup after ZC like PFC
433 PWM_SwapDisable(PWMnr);
436 }
438 }
439
440 //open loop startup after ZC
442 {
443 // openloop startup after ZC
444 // number of PWM periods:
445 if (++PhaseX->Controller_Values.PWM_Counter < OPEN_LOOP_STARTUP_PULSES)
446 {
447 pg1dc_ = (PhaseX->Controller_Values.PWM_Counter << OPEN_LOOP_PWM_COUNTER_SHIFT);
448 // GPIO_Y_L_Toggle();
449 PWM_DutyCycleSet(PWMnr, pg1dc_);
450 }
451 else
452 {
454
455 PhaseX->Controller_Values.PWM_Counter = 30;
456
457 // LF switch starts up after a few cycles
459 {
460 PWM_SwapDisable(PWMnr);
463
465 {
468 }
469 }
470 else
471 {
472 PWM_SwapEnable(PWMnr);
475
477 {
480 }
481 }
482 }
483 }
484
485}
486
487
503static void __inline__ SoftstartAfterZC_PHx_PFCMode(struct PHASE_VALUES_s* PhaseX, uint16_t PWMnr)
504{
505 uint16_t pg1dc_;
506
507 //switch on main switches after polarity change and ZC range is over and before ZC startup
511 {
513 PhaseX->Controller_Values.PWM_Counter = 0;
514
516 {
517 //switch handling when NOT in light load
519 {
520 PWM_SwapEnable(PWMnr);
523 }
524 }
525 else
526 {
527 //switch handling when NOT in light load
529 {
530 PWM_SwapDisable(PWMnr);
533 }
534 }
536 }
537
538 //LF switch start after x-cycles in OL like PFC mode
540 {
541#ifdef COMMON_MODE_DETECTION
545 (AC_N.Phase_Voltage.Raw > 500 /*200mV*/))
546 )
547#else
548 // openloop startup after ZC
549 // if (++PhaseX->Controller_Values.PWM_Counter < OPEN_LOOP_STARTUP_PULSES)
551#endif
552 {
553
554#ifdef COMMON_MODE_DETECTION
555 ++PhaseX->Controller_Values.PWM_Counter; //only for AC_N needed to get OL pulses
556#endif
557
558#ifdef CHARGEPUMP_ENABLED
559 // charge pump I/O handling: 100us on
560 // if no charge pump hardware I/O pins are set without acting
563 else
565#else
566 pg1dc_ = (PhaseX->Controller_Values.PWM_Counter << OPEN_LOOP_PWM_COUNTER_SHIFT);
567 // GPIO_Y_L_Toggle();
568 PWM_DutyCycleSet(PWMnr, pg1dc_);
569#endif
570 }
571 else
572 {
574
575 PhaseX->Controller_Values.PWM_Counter = 30;
576
577#if defined CHARGEPUMP_ENABLED
578 // charge pump I/O handling
581
582 //switch handling when NOT in light load
584 {
586 {
587 PWM_SwapEnable(PWMnr);
590 }
591 else
592 {
593 PWM_SwapDisable(PWMnr);
596 }
597 }
598#endif
599
600 // LF switches are on after open loop startup,
601#if defined RECTIFIER_SWITCH
602 // LF switch starts up after a few cycles
604 {
606 {
608 {
611 }
612 }
613 else
614 {
616 {
619 }
620 }
621 }
622#endif
623 }
624 }
625
626}
627
628
641static void __inline__ CCM_PHx(struct PHASE_VALUES_s* PhaseX, uint16_t PWMnr)
642{
643 uint16_t var1_ui, var2_ui;
644
645 // current fix for DCM;
646 var1_ui = PhaseX->Phase_Current.Rectified;
647 var2_ui = CCM_CURRENT;
648
649 if (var1_ui > var2_ui)
650 {
652 }
653 else if (var1_ui < var2_ui)
654 {
656 }
657
658 if (PhaseX->Controller_Values.CCM_Counter > 6)
659 {
660 PhaseX->Controller_Values.CCM_Counter = 6;
661 PhaseX->Control_Status_Flags.bits.CCM = 1;
662 }
663 if (PhaseX->Controller_Values.CCM_Counter < 1)
664 {
665 PhaseX->Controller_Values.CCM_Counter = 1;
666 PhaseX->Control_Status_Flags.bits.CCM = 0;
667 }
668
669#ifdef SYNCHRONOUS_ACTIVE_SWITCH
670 if (PhaseX->Control_Status_Flags.bits.CCM)
671 {
673 {
674#ifndef MODE_GRID_TIE_INVERTER
675 PWM_OverrideHighDisable(PWMnr); //PWM ON
676#else
677 PWM_OverrideLowDisable(PWMnr); //PWM ON
678#endif
679 }
680 else
681 {
682#ifndef MODE_GRID_TIE_INVERTER
683 PWM_OverrideLowDisable(PWMnr); //PWM ON
684#else
685 PWM_OverrideHighDisable(PWMnr); //PWM ON
686#endif
687 }
688 }
689 else
690 {
692 {
693#ifndef MODE_GRID_TIE_INVERTER
694 PWM_OverrideHighEnable(PWMnr); //PWM OFF
695#else
696 PWM_OverrideLowEnable(PWMnr); //PWM OFF
697#endif
698 }
699 else
700 {
701#ifndef MODE_GRID_TIE_INVERTER
702 PWM_OverrideLowEnable(PWMnr); //PWM OFF
703#else
704 PWM_OverrideHighEnable(PWMnr); //PWM OFF
705#endif
706 }
707 }
708#endif
709
710}
711
712
728static void __inline__ DutyCycleFeedForward_PHx(struct PHASE_VALUES_s * PhaseX)
729{
730 uint32_t var_ul;
731 uint16_t var1_ui;
732
734 {
735 var1_ui = Vout_Control.Vout.Filtered - PhaseX->Phase_Voltage.Rectified; //Vout - Vin
736 var_ul = (uint32_t) var1_ui * MPER;
737 var1_ui = __builtin_divud(var_ul, Vout_Control.Vout.Filtered);
739 }
740
741}
742
743
788
789
835
836
856//static void __inline__ Adaptive_Currentcontroller_Gain(struct PHASE_VALUES_s* PhaseX, uint16_t PWMnr)
857
858static void __inline__ Adaptive_Currentcontroller_Gain(uint16_t PWMnr)
859{
860 uint32_t mul01;
861 uint16_t mul02;
862
863#ifndef ADAPTIVE_GAIN_ENABLED
864 PFC_Flags.bits.AGOn = 0;
865#endif
866
867#ifdef ADAPTIVE_GAIN_SLIDER_MODE
869#else
870
871#if defined (MODE_PFC) || defined (MODE_INTERLEAVED)
872 if (PFC_Flags.bits.AGOn)
873 {
875 mul02 = (uint16_t) (mul01 >> 15);
877
878 if (Phase_Values_PH1.Phase_Voltage.Filtered < 583) // #define machen
879 {
881 mul02 = (uint16_t) (mul01 >> 15);
883 }
886 }
887 else
888 {
889 Adaptive_Gain_Factor = 3276; //factor = 0.1
890 }
891#endif
892
893#ifdef MODE_GRID_TIE_INVERTER
894 Adaptive_Gain_Factor = 8192; //factor = 0.25 (32676*0.25)
895#endif
896
897#endif
898}
899
900//------------------------------------------------------------------------------
901//------------------------------------------------------------------------------
902
PHASE_VALUES_t AC_N
uint16_t OpenLoopStartupDuration
PHASE_VALUES_t Phase_Values_PH2
PWR_CTRL_STATE_e pwr_ctrl_state
uint16_t Adaptive_Gain_Factor
VMC_VALUES_t Vout_Control
PHASE_VALUES_t Phase_Values_PH1
PFC_FLAGS_t PFC_Flags
This is the typedef file for power controller.
@ PCS_VACOK
@ PCS_START_CONTROL
@ PCS_VOUT_PRELOAD
@ PCS_UP_AND_RUNNING
SMPS_2P2Z_T PHx_AVG_CM2p2z[3]
SMPS_2P2Z_T VMC_2p2z
This is the driver header file for the power controller.
static void DutyCycleFeedForward_PHx(struct PHASE_VALUES_s *PhaseX)
static void VOUT_HystereticCheck(void)
static void SoftstartAfterZC_PHx_PFCMode(struct PHASE_VALUES_s *PhaseX, uint16_t PWMnr)
static void BurstMode_PHx(struct PHASE_VALUES_s *PhaseX, uint16_t PWMnr)
static void Handler_PHx(struct PHASE_VALUES_s *PhaseX, uint16_t PWMnr)
static void CCM_PHx(struct PHASE_VALUES_s *PhaseX, uint16_t PWMnr)
void Application_handler_PH2(void)
static void VOUTaveraging(void)
static void ZeroCross_PHx(struct PHASE_VALUES_s *PhaseX, uint16_t PWMnr)
void Application_handler_PH1(void)
static void SoftstartAfterZC_PHx_GTIMode(struct PHASE_VALUES_s *PhaseX, uint16_t PWMnr)
static void Adaptive_Currentcontroller_Gain(uint16_t PWMnr)
This is the driver header file for the power controller app.
#define DCMAX
#define DCMIN
#define MIN_GAIN_FACTOR
void XFT_SMPS_Controller2P2ZUpdate(SMPS_2P2Z_T *controllerData, volatile uint16_t *controllerInputRegister, int16_t reference, volatile uint16_t *controllerOutputRegister)
void SMPS_Controller2P2ZUpdate(SMPS_2P2Z_T *controllerData, volatile uint16_t *controllerInputRegister, int16_t reference, volatile uint16_t *controllerOutputRegister)
Allows the user to change the advanced operating parameters.
#define GAINSLOPE_HIGHLINE
#define GAINOFFSET_LOWLINE
#define BURST_MODE_VMC_REF_FREEZE
#define BURST_MODE_LEVEL_HIGH
#define GAINSLOPE_LOWLINE
#define CCM_CURRENT
#define GAINOFFSET_HIGHLINE
static void PWM_OverrideLowEnable(enum PWM_GENERATOR genNum)
This inline function enables PWM override on PWML output for specific PWM generator selected by the a...
Definition pwm.h:622
static void PWM_DutyCycleSet(enum PWM_GENERATOR genNum, uint16_t dutyCycle)
This inline function sets the PWM generator specific duty cycle register.
Definition pwm.h:456
static void PWM_OverrideHighEnable(enum PWM_GENERATOR genNum)
This inline function enables PWM override on PWMH output for specific PWM generator selected by the a...
Definition pwm.h:602
static void PWM_OverrideHighDisable(enum PWM_GENERATOR genNum)
This inline function disables PWM override on PWMH output for specific PWM generator selected by the ...
Definition pwm.h:642
static void PWM_OverrideLowDisable(enum PWM_GENERATOR genNum)
This inline function disables PWM override on PWML output for specific PWM generator selected by the ...
Definition pwm.h:662
#define GPIO_Y_L_SetHigh()
Sets the RD5 GPIO Pin which has a custom name of GPIO_Y_L to High.
Definition pins.h:461
#define GPIO_Y_H_SetHigh()
Sets the RD6 GPIO Pin which has a custom name of GPIO_Y_H to High.
Definition pins.h:512
#define PWM_H_N_SetLow()
Sets the RD1 GPIO Pin which has a custom name of PWM_H_N to Low.
Definition pins.h:368
#define PWM_L_N_SetHigh()
Sets the RD0 GPIO Pin which has a custom name of PWM_L_N to High.
Definition pins.h:308
#define GPIO_Y_L_SetLow()
Sets the RD5 GPIO Pin which has a custom name of GPIO_Y_L to Low.
Definition pins.h:470
#define PWM_H_N_SetHigh()
Sets the RD1 GPIO Pin which has a custom name of PWM_H_N to High.
Definition pins.h:359
#define GPIO_Y_H_SetLow()
Sets the RD6 GPIO Pin which has a custom name of GPIO_Y_H to Low.
Definition pins.h:521
#define PWM_L_N_SetLow()
Sets the RD0 GPIO Pin which has a custom name of PWM_L_N to Low.
Definition pins.h:317
volatile int16_t Rectified
volatile uint16_t Filtered
volatile int16_t Offset
volatile uint16_t PreviousValue
volatile uint16_t FilterCounter
volatile int16_t Raw
volatile int16_t Vin_div_Averaged2
volatile uint16_t Rectified_Shift
volatile uint16_t VOUT_Hystresis_High
volatile unsigned VOUT_dV_dt_Active
volatile uint16_t VOUT_Hystresis_Low
volatile uint16_t Voltage_Loop_Output
volatile uint16_t VOUT_dV_dt_Hystresis_High
volatile uint16_t Reference_Internal
volatile uint16_t BurstModeCycleCounter
volatile uint16_t PWM_Counter
volatile uint32_t IAC_Reference_l
volatile uint16_t IAC_Reference
volatile uint16_t Duty_Cycle_Set_Value
volatile uint16_t CCM_Counter
volatile uint16_t BurstModeCyclesOn
volatile unsigned Control_Freeze
struct CONTROL_STATUS_FLAGS_s::@24::@26 bits
volatile unsigned Reference_Changed
volatile unsigned VAC_Polarity_last
volatile unsigned VAC_Polarity_Changed
volatile unsigned BurstModeDetected
volatile unsigned BurstModeLatched
volatile unsigned Soft_Start_Zero_Cross
volatile unsigned VAC_Polarity_Changed_last
struct ACCONTROL_PHASE_STATUS_FLAGS_s::@27::@29 bits
ACCONTROL_PHASE_STATUS_FLAGS_t ACcontrol_Status_Flags_perPhase
ANALOG_VALUES_t Phase_Voltage
CONTROLLER_VALUES_t Controller_Values
ANALOG_VALUES_t Phase_Current
CONTROL_STATUS_FLAGS_t Control_Status_Flags
CONTROL_REFERENCE_VALUES_t Reference
ANALOG_VALUES_t Vout
struct PFC_FLAGS_s::@30::@32 bits
volatile unsigned AGOn
uint16_t KfactorCoeffsB
This is the generated driver header file for the CMP1 driver.