1
#include "F2837xD_device.h"
2
#include "F2837xD_Examples.h"
3
#include "F2837xD_GlobalPrototypes.h"
4
#include "rtwtypes.h"
5
#include "Inverter_001.h"
6
#include "Inverter_001_private.h"
7
#include "F2837xD_Ipc_drivers.h"
8
9
void
init_board
()
10
{
11
DisableDog
();
12
13
#ifdef
CPU1
14
15
EALLOW
;
16
17
//enable pull-ups on unbonded IOs as soon as possible to reduce power consumption.
18
GPIO_EnableUnbondedIOPullups
();
19
CpuSysRegs
.
PCLKCR13
.
bit
.
ADC_A
= 1;
20
CpuSysRegs
.
PCLKCR13
.
bit
.
ADC_B
= 1;
21
CpuSysRegs
.
PCLKCR13
.
bit
.
ADC_C
= 1;
22
CpuSysRegs
.
PCLKCR13
.
bit
.
ADC_D
= 1;
23
24
//check if device is trimmed
25
if
(
*
((
Uint16
*
)0x5D1B6)
==
0x0000)
{
26
//device is not trimmed, apply static calibration values
27
AnalogSubsysRegs
.
ANAREFTRIMA
.
all
= 31709;
28
AnalogSubsysRegs
.
ANAREFTRIMB
.
all
= 31709;
29
AnalogSubsysRegs
.
ANAREFTRIMC
.
all
= 31709;
30
AnalogSubsysRegs
.
ANAREFTRIMD
.
all
= 31709;
31
}
32
33
CpuSysRegs
.
PCLKCR13
.
bit
.
ADC_A
= 0;
34
CpuSysRegs
.
PCLKCR13
.
bit
.
ADC_B
= 0;
35
CpuSysRegs
.
PCLKCR13
.
bit
.
ADC_C
= 0;
36
CpuSysRegs
.
PCLKCR13
.
bit
.
ADC_D
= 0;
37
EDIS
;
38
InitSysPll
(
XTAL_OSC
,20,0,1);
39
40
//Turn on all peripherals
41
//InitPeripheralClocks();
42
EALLOW
;
43
CpuSysRegs
.
PCLKCR0
.
bit
.
CLA1
= 1;
44
CpuSysRegs
.
PCLKCR0
.
bit
.
DMA
= 1;
45
CpuSysRegs
.
PCLKCR0
.
bit
.
CPUTIMER0
= 1;
46
CpuSysRegs
.
PCLKCR0
.
bit
.
CPUTIMER1
= 1;
47
CpuSysRegs
.
PCLKCR0
.
bit
.
CPUTIMER2
= 1;
48
CpuSysRegs
.
PCLKCR0
.
bit
.
HRPWM
= 1;
49
CpuSysRegs
.
PCLKCR0
.
bit
.
TBCLKSYNC
= 1;
50
CpuSysRegs
.
PCLKCR1
.
bit
.
EMIF2
= 1;
51
52
/* Assign all Peripherals to CPU2 */
53
DevCfgRegs
.
CPUSEL11
.
all
= 0x0000000F;
54
DevCfgRegs
.
CPUSEL0
.
all
= 0x00000FFF;
55
DevCfgRegs
.
CPUSEL1
.
all
= 0x0000003F;
56
DevCfgRegs
.
CPUSEL2
.
all
= 0x00000007;
57
DevCfgRegs
.
CPUSEL5
.
all
= 0x0000000F;
58
DevCfgRegs
.
CPUSEL6
.
all
= 0x00000007;
59
DevCfgRegs
.
CPUSEL8
.
all
= 0x00000003;
60
DevCfgRegs
.
CPUSEL14
.
all
= 0x00070000;
61
DevCfgRegs
.
CPUSEL7
.
all
= 0x00000003;
62
63
/* Assign used ADC modules to CPU1 */
64
DevCfgRegs
.
CPUSEL11
.
bit
.
ADC_A
= 0;
65
DevCfgRegs
.
CPUSEL11
.
bit
.
ADC_C
= 0;
66
DevCfgRegs
.
CPUSEL11
.
bit
.
ADC_D
= 0;
67
68
#ifdef
MW_DAC_CHANNEL_A
69
70
DevCfgRegs
.
CPUSEL14
.
bit
.
DAC_A
= 0;
71
72
#endif
73
74
#ifdef
MW_DAC_CHANNEL_B
75
76
DevCfgRegs
.
CPUSEL14
.
bit
.
DAC_B
= 0;
77
78
#endif
79
80
#ifdef
MW_DAC_CHANNEL_C
81
82
DevCfgRegs
.
CPUSEL14
.
bit
.
DAC_C
= 0;
83
84
#endif
85
86
/* Assign used PWM modules to CPU1 */
87
DevCfgRegs
.
CPUSEL0
.
bit
.
EPWM5
= 0;
88
DevCfgRegs
.
CPUSEL0
.
bit
.
EPWM3
= 0;
89
DevCfgRegs
.
CPUSEL0
.
bit
.
EPWM6
= 0;
90
DevCfgRegs
.
CPUSEL0
.
bit
.
EPWM4
= 0;
91
92
/* Assign used SPI modules to CPU1 */
93
#ifdef
MW_SPI_A
94
95
DevCfgRegs
.
CPUSEL6
.
bit
.
SPI_A
= 0;
96
97
#endif
98
99
#ifdef
MW_SPI_B
100
101
DevCfgRegs
.
CPUSEL6
.
bit
.
SPI_B
= 0;
102
103
#endif
104
105
#ifdef
MW_SPI_C
106
107
DevCfgRegs
.
CPUSEL6
.
bit
.
SPI_C
= 0;
108
109
#endif
110
111
EDIS
;
112
113
#endif
114
115
EALLOW
;
116
117
/* Configure low speed peripheral clocks */
118
ClkCfgRegs
.
LOSPCP
.
bit
.
LSPCLKDIV
= 0U;
119
EDIS
;
120
121
/* Disable and clear all CPU interrupts */
122
DINT
;
123
IER
= 0x0000;
124
IFR
= 0x0000;
125
InitPieCtrl
();
126
InitPieVectTable
();
127
initSetGPIOIPC
();
128
InitCpuTimers
();
129
130
/* initial ePWM GPIO assignment... */
131
config_ePWM_GPIO
();
132
133
#ifdef
CPU1
134
135
/* initial GPIO qualification settings.... */
136
EALLOW
;
137
GpioCtrlRegs
.
GPAQSEL1
.
all
= 0x0;
138
GpioCtrlRegs
.
GPAQSEL2
.
all
= 0x0;
139
GpioCtrlRegs
.
GPBQSEL1
.
all
= 0x0;
140
GpioCtrlRegs
.
GPBQSEL2
.
all
= 0x0;
141
GpioCtrlRegs
.
GPCQSEL1
.
all
= 0x0;
142
GpioCtrlRegs
.
GPCQSEL2
.
all
= 0x0;
143
GpioCtrlRegs
.
GPDQSEL1
.
all
= 0x0;
144
GpioCtrlRegs
.
GPDQSEL2
.
all
= 0x0;
145
GpioCtrlRegs
.
GPEQSEL1
.
all
= 0x0;
146
GpioCtrlRegs
.
GPEQSEL2
.
all
= 0x0;
147
GpioCtrlRegs
.
GPFQSEL1
.
all
= 0x0;
148
EDIS
;
149
150
#endif
151
152
}
153