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