1
#include "F2837xD_device.h"
2
#include "F2837xD_Examples.h"
3
#include "F2837xD_GlobalPrototypes.h"
4
#include "rtwtypes.h"
5
#include "Inverter_000_test.h"
6
#include "Inverter_000_test_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
#ifdef
MW_DAC_CHANNEL_A
64
65
DevCfgRegs
.
CPUSEL14
.
bit
.
DAC_A
= 0;
66
67
#endif
68
69
#ifdef
MW_DAC_CHANNEL_B
70
71
DevCfgRegs
.
CPUSEL14
.
bit
.
DAC_B
= 0;
72
73
#endif
74
75
#ifdef
MW_DAC_CHANNEL_C
76
77
DevCfgRegs
.
CPUSEL14
.
bit
.
DAC_C
= 0;
78
79
#endif
80
81
/* Assign used PWM modules to CPU1 */
82
DevCfgRegs
.
CPUSEL0
.
bit
.
EPWM5
= 0;
83
DevCfgRegs
.
CPUSEL0
.
bit
.
EPWM3
= 0;
84
DevCfgRegs
.
CPUSEL0
.
bit
.
EPWM6
= 0;
85
DevCfgRegs
.
CPUSEL0
.
bit
.
EPWM4
= 0;
86
87
/* Assign used SPI modules to CPU1 */
88
#ifdef
MW_SPI_A
89
90
DevCfgRegs
.
CPUSEL6
.
bit
.
SPI_A
= 0;
91
92
#endif
93
94
#ifdef
MW_SPI_B
95
96
DevCfgRegs
.
CPUSEL6
.
bit
.
SPI_B
= 0;
97
98
#endif
99
100
#ifdef
MW_SPI_C
101
102
DevCfgRegs
.
CPUSEL6
.
bit
.
SPI_C
= 0;
103
104
#endif
105
106
EDIS
;
107
108
#endif
109
110
EALLOW
;
111
112
/* Configure low speed peripheral clocks */
113
ClkCfgRegs
.
LOSPCP
.
bit
.
LSPCLKDIV
= 0U;
114
EDIS
;
115
116
/* Disable and clear all CPU interrupts */
117
DINT
;
118
IER
= 0x0000;
119
IFR
= 0x0000;
120
InitPieCtrl
();
121
InitPieVectTable
();
122
initSetGPIOIPC
();
123
InitCpuTimers
();
124
125
/* initial ePWM GPIO assignment... */
126
config_ePWM_GPIO
();
127
128
#ifdef
CPU1
129
130
/* initial GPIO qualification settings.... */
131
EALLOW
;
132
GpioCtrlRegs
.
GPAQSEL1
.
all
= 0x0;
133
GpioCtrlRegs
.
GPAQSEL2
.
all
= 0x0;
134
GpioCtrlRegs
.
GPBQSEL1
.
all
= 0x0;
135
GpioCtrlRegs
.
GPBQSEL2
.
all
= 0x0;
136
GpioCtrlRegs
.
GPCQSEL1
.
all
= 0x0;
137
GpioCtrlRegs
.
GPCQSEL2
.
all
= 0x0;
138
GpioCtrlRegs
.
GPDQSEL1
.
all
= 0x0;
139
GpioCtrlRegs
.
GPDQSEL2
.
all
= 0x0;
140
GpioCtrlRegs
.
GPEQSEL1
.
all
= 0x0;
141
GpioCtrlRegs
.
GPEQSEL2
.
all
= 0x0;
142
GpioCtrlRegs
.
GPFQSEL1
.
all
= 0x0;
143
EDIS
;
144
145
#endif
146
147
}
148