8 #if (__XC16_VERSION__ > 1500) 
    9   #pragma message ("Warning: Library file '" __FILE__ "' has not been tested with the recently selected compiler version")
 
   16 #include "dev_buck_pconfig.h" 
   17 #include "dev_buck_templates.h" 
   56     volatile uint16_t retval=1;
 
   60     volatile bool _pmdlock = PMDCONbits.PMDLOCK; 
 
   61     PMDCONbits.PMDLOCK = 0; 
 
   63     PMDCONbits.PMDLOCK = _pmdlock; 
 
  112     volatile uint16_t retval=1;
 
  113     volatile uint16_t _i=0;
 
  117     volatile uint16_t pwm_Instance;
 
  118     volatile uint16_t gpio_Instance;
 
  234     volatile uint16_t retval=1;
 
  235     volatile uint16_t _i=0;
 
  236     volatile uint16_t timeout=0;
 
  237     volatile uint16_t pwm_Instance=0;
 
  238     volatile uint16_t sync_sw_mask=0;
 
  258             while((!PCLKCONbits.HRRDY) && (timeout++ < 5000));  
 
  259             if ((timeout >= 5000) || (PCLKCONbits.HRERR))       
 
  280         retval &= (
volatile uint16_t)(pg->
PGxCONL.
bits.ON);
 
  303     volatile uint16_t retval=1;
 
  304     volatile uint16_t _i=0;
 
  305     volatile uint16_t pwm_Instance=0;
 
  323         retval &= (
volatile uint16_t)((
volatile bool)(pg->
PGxCONL.
bits.ON == 0));
 
  349     volatile uint16_t retval=1;
 
  350     volatile uint16_t _i=0;
 
  351     volatile uint16_t pwm_Instance;
 
  391     volatile uint16_t retval=1;
 
  392     volatile uint16_t _i=0;
 
  393     volatile bool sync_mode=
false;
 
  394     volatile uint16_t pwm_Instance=0;
 
  395     volatile uint16_t sync_sw_mask=0;
 
  409         sync_mode &= (~buckInstance->
status.
bits.async_mode);
 
  428         retval &= (uint16_t)((
bool)(!(pg->
PGxIOCONL.
value & sync_sw_mask)));
 
  451     volatile uint16_t retval=1;
 
  454     volatile bool _pmdlock = PMDCONbits.PMDLOCK; 
 
  455     PMDCONbits.PMDLOCK = 0; 
 
  457     PMDCONbits.PMDLOCK = _pmdlock; 
 
  460     ADCON1Lbits.ADON = 0; 
 
  461     ADCON1Lbits.ADSIDL = 0; 
 
  464     ADCON1Hbits.SHRRES = 0b11; 
 
  465     ADCON1Hbits.FORM = 0; 
 
  468     ADCON2Lbits.REFCIE = 0;; 
 
  469     ADCON2Lbits.REFERCIE = 0; 
 
  470     ADCON2Lbits.EIEN = 1; 
 
  471     ADCON2Lbits.SHREISEL = 0b111; 
 
  472     ADCON2Lbits.SHRADCS = 0b0000001; 
 
  475     ADCON2Hbits.SHRSAMC = 8; 
 
  476     ADCON2Hbits.REFERR = 0; 
 
  477     ADCON2Hbits.REFRDY = 0; 
 
  480     ADCON3Lbits.REFSEL = 0b000; 
 
  481     ADCON3Lbits.SUSPEND = 0; 
 
  482     ADCON3Lbits.SUSPCIE = 0; 
 
  483     ADCON3Lbits.SUSPRDY = 0; 
 
  484     ADCON3Lbits.SHRSAMP = 0; 
 
  485     ADCON3Lbits.CNVRTCH = 0; 
 
  486     ADCON3Lbits.SWLCTRG = 0; 
 
  487     ADCON3Lbits.SWCTRG = 0; 
 
  488     ADCON3Lbits.CNVCHSEL = 0; 
 
  491     ADCON3Hbits.CLKSEL = 0b01; 
 
  492     ADCON3Hbits.CLKDIV = 0b000000; 
 
  493     ADCON3Hbits.SHREN = 0; 
 
  494     ADCON3Hbits.C0EN = 0; 
 
  495     ADCON3Hbits.C1EN = 0; 
 
  498     ADCON4Lbits.SAMC0EN = 0;  
 
  499     ADCON4Lbits.SAMC1EN = 0;  
 
  502     ADCON4Hbits.C0CHS = 0b00; 
 
  503     ADCON4Hbits.C1CHS = 0b00; 
 
  509     ADCON5Lbits.SHRPWR = 0; 
 
  510     ADCON5Lbits.C0PWR = 0; 
 
  511     ADCON5Lbits.C1PWR = 0; 
 
  514     ADCON5Hbits.WARMTIME = 0b1111; 
 
  515     ADCON5Hbits.SHRCIE = 0; 
 
  516     ADCON5Hbits.C0CIE = 0; 
 
  517     ADCON5Hbits.C1CIE = 0; 
 
  520     ADCORE1Lbits.SAMC = 0b0000000000;   
 
  521     ADCORE0Lbits.SAMC = 0b0000000000;   
 
  524     ADCORE0Hbits.RES = 0b11; 
 
  525     ADCORE0Hbits.ADCS = 0b0000000; 
 
  526     ADCORE0Hbits.EISEL = 0b111; 
 
  528     ADCORE1Hbits.RES = 0b11; 
 
  529     ADCORE1Hbits.ADCS = 0b0000000; 
 
  530     ADCORE1Hbits.EISEL = 0b111; 
 
  550     volatile uint16_t retval=1;
 
  551     volatile uint8_t* ptrADCRegister;
 
  552     volatile uint8_t bit_offset;
 
  574             bit_offset = (2 * adcInstance->
adc_input);
 
  576             bit_offset = (2 * (adcInstance->
adc_input-8));
 
  578             bit_offset = (2 * (adcInstance->
adc_input-16));
 
  580             bit_offset = (2 * (adcInstance->
adc_input-24));
 
  584         ptrADCRegister = (
volatile uint8_t *)
 
  585             ((
volatile uint8_t *)&ADMOD0L + (
volatile uint8_t)(adcInstance->
adc_input >> 8));
 
  587         *ptrADCRegister |= ((
unsigned int)adcInstance->
signed_result << bit_offset);
 
  588         *ptrADCRegister |= ((
unsigned int)adcInstance->
differential_input << (bit_offset + 1));
 
  591         ptrADCRegister = (
volatile uint8_t *)
 
  592             ((
volatile uint8_t *)&ADTRIG0L + (
volatile uint8_t)adcInstance->
adc_input);
 
  644     volatile uint16_t retval=1;
 
  645     volatile uint16_t timeout=0;
 
  646     volatile uint16_t adcore_mask_compare=0;
 
  649     ADCON1Lbits.ADON = 1;
 
  675     volatile uint16_t retval=1;
 
  676     volatile uint16_t filter_mask=0;
 
  683     filter_mask = (0x0001 << buckGPIOInstance->
pin);
 
  686     if (buckGPIOInstance->
polarity == 0)
 
  710     volatile uint16_t retval=1;
 
  711     volatile uint16_t filter_mask=0;
 
  718     filter_mask = (0x0001 << buckGPIOInstance->
pin);
 
  721     if (buckGPIOInstance->
polarity == 0)
 
  745     volatile bool retval=1;
 
  752     retval = (bool)(gpio->
PORTx.
value & (0x0001 << buckGPIOInstance->
pin));
 
  776     volatile uint16_t retval=1;
 
  808     volatile uint16_t retval=1;
 
  815     if (buckGPIOInstance->
polarity == 0)
 
  821     if(buckGPIOInstance->
io_type == 1)
 
  827     if(buckGPIOInstance->
io_type == 2)
 
  853     volatile uint16_t retval=1;
 
  880     volatile uint16_t retval=1;
 
  881     volatile uint16_t _i=0;
 
  882     volatile uint16_t bit_mask=0;
 
  922 volatile uint16_t buckDAC_Start(
volatile struct BUCK_CONVERTER_s* buckInstance)
 
  924     volatile uint16_t _i=0;
 
  925     volatile uint16_t retval=1;
 
  951 volatile uint16_t buckDAC_Stop(
volatile struct BUCK_CONVERTER_s* buckInstance)
 
  953     volatile uint16_t _i=0;
 
  954     volatile uint16_t retval=1;
 
volatile struct P33C_DAC_MODULE_s * p33c_DacModule_GetHandle(void)
Gets pointer to DAC Module SFR set.
 
volatile uint16_t p33c_DacInstance_ConfigWrite(volatile uint16_t dacInstance, volatile struct P33C_DAC_INSTANCE_s dacConfig)
Writes a user-defined configuration to the DAC instance registers.
 
volatile struct P33C_DAC_INSTANCE_s * p33c_DacInstance_GetHandle(volatile uint16_t dacInstance)
Gets pointer to DAC Instance SFR set.
 
volatile uint16_t p33c_DacModule_ConfigWrite(volatile struct P33C_DAC_MODULE_s dacModuleConfig)
Writes a user-defined configuration to the DAC module base registers.
 
volatile struct P33C_GPIO_INSTANCE_s * p33c_GpioInstance_GetHandle(volatile uint16_t gpioInstance)
Gets pointer to GPIO Instance SFR set.
 
volatile struct P33C_PWM_MODULE_s * p33c_PwmModule_GetHandle(void)
Gets pointer to PWM module SFR set.
 
volatile struct P33C_PWM_GENERATOR_s * p33c_PwmGenerator_GetHandle(volatile uint16_t pgInstance)
Returns the PWM generator index.
 
volatile uint16_t p33c_PwmModule_ConfigWrite(volatile struct P33C_PWM_MODULE_s pwmConfig)
Writes a user-defined configuration to the PWM base module registers.
 
volatile uint16_t p33c_PwmGenerator_ConfigWrite(volatile uint16_t pgInstance, volatile struct P33C_PWM_GENERATOR_s pgConfig)
Disposes a given PWM generator by resetting all its registers to default.
 
#define DAC_SSTIME
Integer value of Steady-State time period based on most recent auxiliary clock settings.
 
#define DAC_TMODTIME
Integer value of transition time period based on most recent auxiliary clock settings.
 
volatile uint16_t buckPWM_Resume(volatile struct BUCK_CONVERTER_s *buckInstance)
This function resumes the buck PWM operation.
 
volatile uint16_t buckGPIO_PrivateInitialize(volatile struct BUCK_GPIO_INSTANCE_s *buckGPIOInstance)
This function sets the pin as input or output.
 
volatile uint16_t buckADC_ModuleInitialize(void)
This fucntion initializes the buck by resetting all its registers to default.
 
volatile uint16_t buckPWM_ChannelInitialize(volatile struct BUCK_CONVERTER_s *buckInstance)
This function initializes the output pins for the PWM output and the default buck PWM settings.
 
volatile uint16_t buckPWM_ModuleInitialize(volatile struct BUCK_CONVERTER_s *buckInstance)
Initializes the buck PWM module by resetting its registers to default.
 
volatile uint16_t buckGPIO_Clear(volatile struct BUCK_GPIO_INSTANCE_s *buckGPIOInstance)
This function clears the selected general purpose input/output pin.
 
volatile bool buckGPIO_GetPinState(volatile struct BUCK_GPIO_INSTANCE_s *buckGPIOInstance)
This function gets the state of the selected pin.
 
volatile uint16_t buckDAC_ChannelInitialize(volatile struct BUCK_CONVERTER_s *buckInstance)
This function initializes the Digital-To-Analog converter, slope compensation and analog comparator u...
 
volatile uint16_t buckDAC_ModuleInitialize(void)
This function initializes the Digital-To-Analog converter peripheral module.
 
volatile uint16_t buckADC_Start(void)
This function enables the ADC module and starts the ADC cores analog inputs for the required input si...
 
volatile uint16_t buckPWM_Stop(volatile struct BUCK_CONVERTER_s *buckInstance)
This function stops the buck PWM output.
 
volatile uint16_t buckADC_ChannelInitialize(volatile struct BUCK_ADC_INPUT_SETTINGS_s *adcInstance)
This function initializes the settings for the ADC channel.
 
volatile uint16_t buckPWM_Start(volatile struct BUCK_CONVERTER_s *buckInstance)
This function enables the buck PWM operation.
 
volatile uint16_t buckGPIO_Initialize(volatile struct BUCK_CONVERTER_s *buckInstance)
This function initializes the buck input pins.
 
volatile uint16_t buckGPIO_Set(volatile struct BUCK_GPIO_INSTANCE_s *buckGPIOInstance)
This function sets the selected general purpose input/ouput pins.
 
volatile uint16_t buckPWM_Suspend(volatile struct BUCK_CONVERTER_s *buckInstance)
This function disables the PWM generator IOs.
 
volatile uint16_t adcore_diff_mask
This variable is use to set the ADC core mask.
 
volatile uint16_t adcore_mask
This variable is use to set the ADC core mask.
 
volatile struct P33C_PWM_MODULE_s buckPwmModuleConfig
PWM module default configuration.
 
volatile struct P33C_DAC_INSTANCE_s buckDacInstanceConfig
DAC generator default configuration.
 
volatile struct P33C_DAC_MODULE_s buckDacModuleConfig
DAC module default configuration.
 
volatile struct P33C_PWM_GENERATOR_s buckPwmGeneratorConfig
PWM generator default configuration.
 
#define P33C_PGxIOCONH_PEN_ASYNC_SWAP
 
#define ADC_CORE2_MASK_INDEX
This define masks core 2 of ADC.
 
#define ADC_POWERUP_TIMEOUT
Digital-To-Analog Converter and High Speed Comparator Special Function Register Set.
 
#define ADC_CORE3_MASK_INDEX
This define masks core 3 of ADC.
 
#define ADC_CORE1_MASK_INDEX
This define masks core 1 of ADC.
 
#define P33C_PGxIOCONL_OVREN_SYNC
control bits in PGxIOCONL enabling/disabling the PWM output override in synchronous mode
 
#define P33C_PGxIOCONH_PEN_SYNC
control bits in PGxIOCONH enabling/disabling the PWM outputs in synchronous mode
 
#define ADC_CORE0_MASK_INDEX
This define masks core 0 of ADC.
 
#define P33C_PGxCONL_HRES_EN
control bit in PGxCONL enabling/disabling High Resolution Mode
 
#define P33C_PGxIOCONL_OVREN_ASYNC_SWAP
 
#define P33C_PGxIOCONL_OVREN_ASYNC
control bits in PGxIOCONL enabling/disabling the PWM output override in asynchronous mode
 
#define ADC_SHRCORE_MASK_INDEX
This define masks shared core of ADC.
 
#define P33C_PGxCONL_PWM_ON
control bit in PGxCONL enabling/disabling the PWM generator
 
#define P33C_PGxIOCONH_PEN_ASYNC
 
#define P33C_PGxSTAT_UPDREQ
Control bit in PGxSTAT setting the Update Request bit.
 
Abstracted set of Special Function Registers of a Digital-to-Analog Converter peripheral.
 
union P33C_DAC_MODULE_s::@23 DacModuleCtrl2L
 
union P33C_DAC_MODULE_s::@22 DacModuleCtrl1L
 
volatile struct tagDACCTRL1LBITS bits
 
union P33C_DAC_MODULE_s::@24 DacModuleCtrl2H
 
union P33C_DAC_INSTANCE_s::@31 SLPxDAT
 
union P33C_DAC_INSTANCE_s::@29 SLPxCONL
 
union P33C_DAC_INSTANCE_s::@28 DACxDATH
 
union P33C_DAC_INSTANCE_s::@30 SLPxCONH
 
volatile struct tagDAC1CONLBITS bits
 
union P33C_DAC_INSTANCE_s::@27 DACxDATL
 
union P33C_DAC_INSTANCE_s::@25 DACxCONL
 
union P33C_DAC_INSTANCE_s::@26 DACxCONH
 
union P33C_GPIO_INSTANCE_s::@39 ODCx
 
union P33C_GPIO_INSTANCE_s::@36 TRISx
 
union P33C_GPIO_INSTANCE_s::@37 PORTx
 
union P33C_GPIO_INSTANCE_s::@38 LATx
 
union P33C_GPIO_INSTANCE_s::@35 ANSELx
 
union P33C_GPIO_INSTANCE_s::@41 CNPDx
 
union P33C_PWM_MODULE_s::@54 vMPER
 
union P33C_PWM_GENERATOR_s::@82 PGxEVTH
 
union P33C_PWM_GENERATOR_s::@96 PGxPER
 
union P33C_PWM_GENERATOR_s::@97 PGxTRIGA
 
union P33C_PWM_GENERATOR_s::@77 PGxCONH
 
union P33C_PWM_GENERATOR_s::@79 PGxIOCONL
 
union P33C_PWM_GENERATOR_s::@99 PGxTRIGC
 
union P33C_PWM_GENERATOR_s::@91 PGxLEBL
 
union P33C_PWM_GENERATOR_s::@87 PGxFFPCIL
 
union P33C_PWM_GENERATOR_s::@78 PGxSTAT
 
union P33C_PWM_GENERATOR_s::@80 PGxIOCONH
 
struct tagPG1CONLBITS bits
 
union P33C_PWM_GENERATOR_s::@81 PGxEVTL
 
union P33C_PWM_GENERATOR_s::@101 PGxDTH
 
union P33C_PWM_GENERATOR_s::@76 PGxCONL
 
union P33C_PWM_GENERATOR_s::@100 PGxDTL
 
union P33C_PWM_GENERATOR_s::@98 PGxTRIGB
 
union P33C_PWM_GENERATOR_s::@94 PGxDC
 
union P33C_PWM_GENERATOR_s::@88 PGxFFPCIH
 
struct BUCK_CONVERTER_STATUS_s::@126::@128 bits
data structure for single bit addressing operations
 
enum BUCK_CONTROL_MODE_e control_mode
Fundamental control mode.
 
volatile uint16_t no_of_phases
number of converter phases
 
volatile uint16_t dac_instance
Digital-to-analog converter instance used to generate the the slope compensation ramp.
 
volatile uint16_t slope_start_trigger
Period counter value at with the slope start is triggered.
 
volatile uint16_t cmp_input
Analog comparator input option A to D (0=A, 1=B, 2=C, 3=D)
 
volatile uint16_t pwm_trigger_input
PWM current limit PCI input source (must match comparator declared by cmp_instance)
 
volatile uint16_t slew_rate
Integer equivalent of compensation ramp slew rate in [V/µs].
 
volatile uint16_t cmp_instance
Analog comparator triggering on the peak current feedback signal.
 
volatile uint16_t slope_stop_trigger
Period counter value at with the slope stop is triggered.
 
volatile uint16_t initial_dac_value
Initial Digital-to-Analog converter reference value (used when peripheral is enabled or being reset)
 
volatile struct BUCK_SLOPE_COMP_SETTINGS_s slope_compensation
Peak current mode slope compensation settings.
 
volatile uint16_t leb_period
Leading-Edge Blanking period.
 
volatile uint16_t period
Switching period.
 
volatile bool sync_drive
Selecting if switch node is driven in synchronous or asnchronous mode.
 
volatile uint16_t gpio_low
GPIO port pin-number of PWMxL of the selected PWM generator.
 
volatile uint16_t duty_ratio_min
Absolute duty cycle minimum during normal operation.
 
volatile uint16_t dead_time_rising
Dead time setting at rising edge of a half-bridge drive.
 
volatile uint16_t gpio_instance
GPIO instance of the selected PWM generator.
 
volatile bool swap_outputs
Selecting if PWMxH (default) or PWMxL should be the leading PWM output.
 
volatile uint16_t gpio_high
GPIO port pin-number of PWMxH of the selected PWM generator.
 
volatile uint16_t phase
Switching signal phase-shift.
 
volatile bool high_resolution_enable
Selecting if PWM module should use high-resolution mode.
 
volatile uint16_t pwm_instance
number of the PWM channel used
 
volatile uint16_t dead_time_falling
Dead time setting at falling edge of a half-bridge drive.
 
volatile bool master_period_enable
Selecting MASTER or Individual period register.
 
ADC input channel configuration.
 
volatile bool early_interrupt_enable
input channel early interrupt enable bit
 
volatile bool enabled
input channel enable bit
 
volatile uint8_t adc_core
number of the ADC core connected to the selected channel
 
volatile uint8_t trigger_source
input channel trigger source
 
volatile bool interrupt_enable
input channel interrupt enable bit
 
volatile bool level_trigger
input channel level trigger mode enable bit
 
volatile bool signed_result
input channel singed result mode enable bit
 
volatile bool differential_input
input channel differential mode enable bit
 
volatile uint8_t adc_input
number of the ADC input channel used
 
GPIO instance of the converter control GPIO.
 
volatile bool enabled
Specifies, if this IO is used or not.
 
volatile uint16_t io_type
Input/Output definition (0=push-pull output, 1=input, 2=open-drain output)
 
volatile uint16_t port
GPIO port instance number (0=Port RA, 0=Port RB, 0=Port RC, etc.)
 
volatile uint16_t polarity
Output polarity, where 0=ACTIVE HIGH, 1=ACTIVE_LOW.
 
volatile uint16_t pin
GPIO port pin number.
 
volatile struct BUCK_GPIO_INSTANCE_s EnableInput
External ENABLE input.
 
volatile struct BUCK_GPIO_INSTANCE_s PowerGood
Power Good Output.
 
BUCK control & monitoring data structure.
 
volatile struct BUCK_SWITCH_NODE_SETTINGS_s sw_node[BUCK_NO_OF_PHASES]
BUCK converter switch node settings.
 
volatile struct BUCK_CONVERTER_STATUS_s status
BUCK operation status bits.
 
volatile struct BUCK_GPIO_SETTINGS_s gpio
BUCK converter additional GPIO specification.
 
volatile struct BUCK_CONVERTER_SETTINGS_s set_values
Control field for global access to references.