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
10void 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