EPC9143 300 W 16th Brick DC/DC Module Reference Design
init_dac.c
1 /*
2  * File: init_opa.c
3  * Author: M91406
4  *
5  * Created on May 19, 2020, 1:19 PM
6  */
7 
8 
9 #include <xc.h> // include processor files - each processor file is guarded.
10 #include <stdint.h> // include standard integer types header file
11 #include <stdbool.h> // include standard boolean types header file
12 
13 #include "config/hal.h"
14 #include "init_dac.h"
15 #include "power_control/devices/dev_buck_typedef.h"
16 
21 
42 volatile uint16_t sysDacModule_Initialize(void)
43 {
44  volatile uint16_t retval=1;
45  volatile struct P33C_DAC_MODULE_s* dac;
46 
48  retval &= p33c_DacModule_Dispose();
50 
51  return (retval);
52 
53 }
54 
55 
75 volatile uint16_t sysDacOutput_Initialize(volatile uint16_t dacInstance)
76 {
77  volatile uint16_t retval=1;
78  volatile struct P33C_DAC_INSTANCE_s* dac;
79 
80  dac = p33c_DacInstance_GetHandle(dacInstance);
81  retval &= p33c_DacInstance_Dispose(dacInstance);
82 
83  dac->DACxCONL.bits.DACOEN = 1; // Enable DAC output pin
84  dac->DACxCONH.bits.TMCB = BUCK_LEB_PERIOD;
85  dac->DACxDATH.value = 0x07FF; // Set board current reference to VDD/2 (~1.650 V)
86 
87  return (retval);
88 }
89 
90 
110 volatile uint16_t sysDacOutput_Enable(volatile uint16_t dacInstance) {
111 
112  volatile uint16_t retval=1;
113  volatile struct P33C_DAC_MODULE_s* dacmod;
114  volatile struct P33C_DAC_INSTANCE_s* dacinst;
115 
116  // Capture DAC module SFR set
117  dacmod = p33c_DacModule_GetHandle();
118  dacmod->DacModuleCtrl1L.bits.DACON = true; // Ensure DAC module is enabled
119 
120  // Capture specified DAC instance SFR set
121  dacinst = p33c_DacInstance_GetHandle(dacInstance);
122  dacinst->DACxCONL.bits.DACEN = true; // Enable DAC instance
123  dacinst->DACxCONL.bits.DACOEN = true; // Enable DAC output pin
124 
125  return (retval);
126 }
127 
128 
148 volatile uint16_t sysDacOutput_Disable(volatile uint16_t dacInstance) {
149 
150  volatile uint16_t retval=1;
151  volatile struct P33C_DAC_INSTANCE_s* dacinst;
152 
153  // Capture specified DAC instance SFR set
154  dacinst = p33c_DacInstance_GetHandle(dacInstance);
155  dacinst->DACxCONL.bits.DACOEN = false; // Disable DAC output pin
156  dacinst->DACxCONL.bits.DACEN = false; // Disable DAC instance
157 
158  return (retval);
159 } // end of group dac-initialization
161 
162 // end of file
P33C_DAC_INSTANCE_s
Definition: p33c_dac.h:72
p33c_DacModule_GetHandle
volatile struct P33C_DAC_MODULE_s * p33c_DacModule_GetHandle(void)
Gets pointer to DAC Module SFR set.
Definition: p33c_dac.c:44
p33c_DacModule_ConfigWrite
volatile uint16_t p33c_DacModule_ConfigWrite(volatile struct P33C_DAC_MODULE_s dacModuleConfig)
Writes a user-defined configuration to the DAC module base registers.
Definition: p33c_dac.c:129
sysDacModule_Initialize
volatile uint16_t sysDacModule_Initialize(void)
DAC Module Base Register Initialization.
Definition: init_dac.c:42
P33C_DAC_INSTANCE_s::DACxCONH
union P33C_DAC_INSTANCE_s::@7 DACxCONH
dacModuleDefault
volatile struct P33C_DAC_MODULE_s dacModuleDefault
Default configuration of DAC module running from 500 MHz input clock.
Definition: p33c_dac.c:314
P33C_DAC_INSTANCE_s::DACxCONL
union P33C_DAC_INSTANCE_s::@6 DACxCONL
BUCK_LEB_PERIOD
#define BUCK_LEB_PERIOD
Leading Edge Blanking = n x PWM resolution (here: 50 x 2ns = 100ns)
Definition: epc9143_r40_hwdescr.h:384
P33C_DAC_INSTANCE_s::bits
volatile struct tagDAC1CONLBITS bits
Definition: p33c_dac.h:74
sysDacOutput_Disable
volatile uint16_t sysDacOutput_Disable(volatile uint16_t dacInstance)
Definition: init_dac.c:148
p33c_DacModule_Dispose
volatile uint16_t p33c_DacModule_Dispose(void)
Resets all DAC Module registers to their RESET default values.
Definition: p33c_dac.c:75
sysDacOutput_Enable
volatile uint16_t sysDacOutput_Enable(volatile uint16_t dacInstance)
Definition: init_dac.c:110
P33C_DAC_MODULE_s::DacModuleCtrl1L
union P33C_DAC_MODULE_s::@0 DacModuleCtrl1L
P33C_DAC_MODULE_s
Definition: p33c_dac.h:51
P33C_DAC_INSTANCE_s::DACxDATH
union P33C_DAC_INSTANCE_s::@9 DACxDATH
P33C_DAC_INSTANCE_s::value
volatile uint16_t value
Definition: p33c_dac.h:75
sysDacOutput_Initialize
volatile uint16_t sysDacOutput_Initialize(volatile uint16_t dacInstance)
Definition: init_dac.c:75
p33c_DacInstance_GetHandle
volatile struct P33C_DAC_INSTANCE_s * p33c_DacInstance_GetHandle(volatile uint16_t dac_Instance)
Gets pointer to DAC Instance SFR set.
Definition: p33c_dac.c:165
p33c_DacInstance_Dispose
volatile uint16_t p33c_DacInstance_Dispose(volatile uint16_t dacInstance)
Resets all DAC Instance registers to their RESET default values.
Definition: p33c_dac.c:197
P33C_DAC_MODULE_s::bits
volatile struct tagDACCTRL1LBITS bits
Definition: p33c_dac.h:53