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