Digital Power Starter Kit 3 Firmware
dsPIC33C Boost Converter Voltage Mode Control Example
dspic33c_mcal.h
1
/* Microchip Technology Inc. and its subsidiaries. You may use this software
2
* and any derivatives exclusively with Microchip products.
3
*
4
* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER
5
* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED
6
* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A
7
* PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION
8
* WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION.
9
*
10
* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
11
* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND
12
* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS
13
* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE
14
* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS
15
* IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF
16
* ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
17
*
18
* MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE
19
* TERMS.
20
*/
21
22
/*
23
* @file dppic33c_mcal.h
24
* Author: M91406
25
* @brief DPSK3 Hardware Descriptor header file
26
* Revision history:
27
*/
28
29
// This is a guard condition so that contents of this file are not included
30
// more than once.
31
#ifndef DSPIC33C_MCU_ABSTRACTION_DESCRIPTOR_H
32
#define DSPIC33C_MCU_ABSTRACTION_DESCRIPTOR_H
33
34
#include <xc.h>
// include processor files - each processor file is guarded.
35
#include <stdint.h>
// include standard integer data types
36
#include <stdbool.h>
// include standard boolean data types
37
#include <stddef.h>
// include standard definition data types
38
#include <math.h>
// include standard math functions library
39
40
41
/**************************************************************************************************
42
* @ingroup device-abstraction-settings
43
* @{
44
* @brief Fundamental microcontroller device settings
45
*
46
* @details
47
* This section is used to define device specific parameters like ADC reference and
48
* resolution, main execution clock frequency and peripheral time base settings.
49
* All parameters are defined using physical quantities.
50
*
51
**************************************************************************************************/
52
#define EXTOSC_FREQUENCY (float)8000000.0
53
#define FRCC_FREQUENCY (float)8000000.0
54
#define USE_EXTERNAL_CLOCK false
55
56
#define CPU_FREQUENCY (float)100000000.0
57
#define AUX_FREQUENCY (float)500000000.0
58
59
/*********************************************************************************
60
* @ingroup device-abstraction-settings
61
* @def FOSC_FREQUENCY
62
* @brief Macro selecting the main clock frequency value based on user selection of oscillator type
63
* @details
64
* This macro selects the main clock frequency value based on user selection
65
* of the oscillator type.
66
**********************************************************************************/
67
#if (USE_EXTERNAL_CLOCK == true)
68
#define FOSC_FREQUENCY EXTOSC_FREQUENCY
69
#else
70
#define FOSC_FREQUENCY FRCC_FREQUENCY
71
#endif
72
73
// ADC Reference and Resolution Settings
74
#define ADC_REFERENCE (float)3.300
75
#define ADC_RESOLUTION (float)12.00
76
77
// ADC Reference and Resolution Settings
78
#define DAC_REFERENCE (float)3.300
79
#define DAC_RESOLUTION (float)12.00
80
81
#define DAC_MINIMUM (float)0.165
82
#define DAC_MAXIMUM (float)3.135
83
#define DAC_TRANSITION_TIME (float)340.0e-9
84
#define DAC_STEADY_STATE_TIME (float)550.0e-9
85
#define DAC_LEADING_EDGE_PERIOD (float)120.0e-9
86
87
// PWM/ADC Clock Settings
88
#define PWM_CLOCK_HIGH_RESOLUTION true
89
90
#if (PWM_CLOCK_HIGH_RESOLUTION)
91
#define PWM_CLOCK_FREQUENCY (float)4.0e+9
92
#else
93
#define PWM_CLOCK_FREQUENCY (float)500.0e+6
94
#endif
95
96
#define AUX_PLL_CLOCK (float)(1.0 / AUX_FREQUENCY)
97
// end of group device-abstraction-settings
99
111
#define CPU_TCY (float)(1.0 / CPU_FREQUENCY)
112
#define ADC_VALUE_MAX (uint16_t)((0x0001 << (uint16_t)ADC_RESOLUTION) - 1.0) // DO NOT CHANGE
113
#define DAC_VALUE_MAX (uint16_t)((0x0001 << (uint16_t)ADC_RESOLUTION) - 1.0) // DO NOT CHANGE
114
#define ADC_GRANULARITY (float)(ADC_REFERENCE / (float)(ADC_VALUE_MAX + 1))
115
#define DAC_GRANULARITY (float)(DAC_REFERENCE / (float)(DAC_VALUE_MAX + 1))
116
#define PWM_CLOCK_PERIOD (float)(1.0 / PWM_CLOCK_FREQUENCY)
117
#define DAC_CLOCK_PERIOD (float)(2.0 / AUX_FREQUENCY)
118
119
#define DAC_MIN (uint16_t)(DAC_MINIMUM / DAC_GRANULARITY)
120
#define DAC_MAX (uint16_t)(DAC_MAXIMUM / DAC_GRANULARITY)
121
#define DAC_TMODTIME (uint16_t)((DAC_TRANSITION_TIME / AUX_PLL_CLOCK) / 2.0)
122
#define DAC_SSTIME (uint16_t)((DAC_STEADY_STATE_TIME / AUX_PLL_CLOCK) / 2.0)
123
#define DAC_TMCB (uint16_t)((DAC_LEADING_EDGE_PERIOD / AUX_PLL_CLOCK) / 2.0)
124
125
// end of group device-abstraction-macros
126
127
/**************************************************************************************************
128
* @ingroup state-machine-settings
129
* @{
130
* @brief Global state-machine user-settings
131
*
132
* @details
133
* This section is used to set, modify, enable or disable common state machine parameters
134
* and features.
135
*
136
* (Please see individual settings description for detail)
137
*
138
**************************************************************************************************/
139
140
#define MAIN_EXECUTION_PERIOD (float)100.0e-6
141
142
// end of group state-machine-settings ~~~~~~~~~~
143
155
#define MAIN_EXEC_PER (uint16_t)((CPU_FREQUENCY * MAIN_EXECUTION_PERIOD)-1) // DO NOT CHANGE
156
// end of group state-machine-macros ~~~~~~~~~~
158
169
#define _OsTimerInterrupt _T1Interrupt
170
#define _OSTIMER_IP _T1IP
171
#define _OSTIMER_IE _T1IE
172
#define _OSTIMER_IF _T1IF
173
#define _OSTIMER_PRIORITY 2
174
#define _OSTIMER_PER PR1
175
#define _OSTIMER_TMRCAP TMR1
176
177
#define _UartRxInterrupt _U1RXInterrupt
178
#define _UartRx_IP _U1RXIP
179
#define _UartRx_IE _U1RXIE
180
#define _UartRx_IF _U1RXIF
181
182
#define _UartTxInterrupt _U1TXInterrupt
183
#define _UartTx_IP _U1TXIP
184
#define _UartTx_IE _U1TXIE
185
#define _UartTx_IF _U1TXIF
186
187
#define _UartRxDmaInterrupt _DMA1Interrupt
188
#define _UartRxDma_IP _DMA1IP
189
#define _UartRxDma_IE _DMA1IE
190
#define _UartRxDma_IF _DMA1IF
191
192
#define _UartTxDmaInterrupt _DMA0Interrupt
193
#define _UartTxDma_IP _DMA0IP
194
#define _UartTxDma_IE _DMA0IE
195
#define _UartTxDma_IF _DMA0IF
196
197
#define _CRCxInterrupt _CRCInterrupt
198
#define _CRC_IP _CRCIP
199
#define _CRC_IE _CRCIE
200
#define _CRC_IF _CRCIF
201
#define _CRCFIFO_FULL _CRCFUL
202
203
#define UART_RX_ISR_PRIORITY 1
204
#define UART_TX_ISR_PRIORITY 1
205
206
// end of group state-machine-mcal ~~~~~~~~~~
207
208
209
#endif // end of DSPIC33C_MCU_ABSTRACTION_DESCRIPTOR_H
dpsk_boost_vmc.X
sources
config
mcal
dspic33c_mcal.h
© 2021, Microchip Technology Inc.