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
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 /* 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