1 //########################################################################### 2 // 3 // FILE: F2837xD_GlobalPrototypes.h 4 // 5 // TITLE: Global prototypes for F2837xD Examples 6 // 7 //########################################################################### 8 // $TI Release: F2837xD Support Library v3.05.00.00 $ 9 // $Release Date: Tue Jun 26 03:15:23 CDT 2018 $ 10 // $Copyright: 11 // Copyright (C) 2013-2018 Texas Instruments Incorporated - http://www.ti.com/ 12 // 13 // Redistribution and use in source and binary forms, with or without 14 // modification, are permitted provided that the following conditions 15 // are met: 16 // 17 // Redistributions of source code must retain the above copyright 18 // notice, this list of conditions and the following disclaimer. 19 // 20 // Redistributions in binary form must reproduce the above copyright 21 // notice, this list of conditions and the following disclaimer in the 22 // documentation and/or other materials provided with the 23 // distribution. 24 // 25 // Neither the name of Texas Instruments Incorporated nor the names of 26 // its contributors may be used to endorse or promote products derived 27 // from this software without specific prior written permission. 28 // 29 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 30 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 31 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 32 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 33 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 34 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 35 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 36 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 37 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 38 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 39 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 40 // $ 41 //########################################################################### 42 43 #ifndef F2837xD_GLOBALPROTOTYPES_H 44 #define F2837xD_GLOBALPROTOTYPES_H 45 46 #ifdef __cplusplus 47 extern "C" { 48 #endif 49 50 // 51 // Function Prototypes (Shared) 52 // 53 extern void EnableInterrupts(void); 54 extern void InitAPwm1Gpio(void); 55 extern void InitCAN(void); 56 extern void InitECap(void); 57 extern void InitECapGpio(void); 58 extern void InitECap1Gpio(Uint16 pin); 59 extern void InitECap2Gpio(Uint16 pin); 60 extern void InitECap3Gpio(Uint16 pin); 61 extern void InitECap4Gpio(Uint16 pin); 62 extern void InitECap5Gpio(Uint16 pin); 63 extern void InitECap6Gpio(Uint16 pin); 64 extern void InitEQep1Gpio(void); 65 extern void InitEQep2Gpio(void); 66 extern void InitEQep3Gpio(void); 67 extern void InitEPwmGpio(void); 68 extern void InitEPwm1Gpio(void); 69 extern void InitEPwm2Gpio(void); 70 extern void InitEPwm3Gpio(void); 71 extern void InitEPwm4Gpio(void); 72 extern void InitEPwm5Gpio(void); 73 extern void InitEPwm6Gpio(void); 74 extern void InitEPwm7Gpio(void); 75 extern void InitEPwm8Gpio(void); 76 extern void InitEPwm9Gpio(void); 77 extern void InitEPwm10Gpio(void); 78 extern void InitEPwm11Gpio(void); 79 extern void InitEPwm12Gpio(void); 80 extern void InitPeripheralClocks(void); 81 extern void DisablePeripheralClocks(void); 82 extern void InitPieCtrl(void); 83 extern void InitPieVectTable(void); 84 extern void InitSpi(void); 85 extern void InitSpiGpio(void); 86 extern void InitSpiaGpio(void); 87 extern void InitSysCtrl(void); 88 extern void InitSysPll(Uint16 clock_source, Uint16 imult, Uint16 fmult, 89 Uint16 divsel); 90 extern void InitAuxPll(Uint16 clock_source, Uint16 imult, Uint16 fmult, 91 Uint16 divsel); 92 93 #define KickDog ServiceDog // For compatibility with previous versions 94 extern void ServiceDog(void); 95 extern void DisableDog(void); 96 97 extern Uint16 CsmUnlock(void); 98 extern void SysIntOsc1Sel (void); 99 extern void SysIntOsc2Sel (void); 100 extern void SysXtalOscSel (void); 101 102 extern void AuxIntOsc2Sel (void); 103 extern void AuxXtalOscSel (void); 104 extern void AuxAuxClkSel (void); 105 106 extern void SetDBGIER(Uint16 dbgier); 107 108 // 109 // CAUTION 110 // This function MUST be executed out of RAM. Executing it 111 // out of OTP/Flash will yield unpredictable results 112 // 113 extern void InitFlash(void); 114 extern void InitFlash_Bank0(void); 115 extern void InitFlash_Bank1(void); 116 extern void FlashOff(void); 117 extern void FlashOff_Bank0(void); 118 extern void FlashOff_Bank1(void); 119 extern void SeizeFlashPump(void); 120 extern void SeizeFlashPump_Bank0(void); 121 extern void SeizeFlashPump_Bank1(void); 122 extern void ReleaseFlashPump(void); 123 124 // 125 //LPM functions in F2837xD_SysCtrl.c 126 // 127 void IDLE(); 128 void STANDBY(); 129 void HALT(); 130 void HIB(); 131 132 // 133 //ADC functions 134 // 135 extern void AdcSetMode(Uint16 adc, Uint16 resolution, Uint16 signalmode); 136 extern void CalAdcINL(Uint16 adc); 137 138 // 139 // DMA Functions 140 // 141 extern void DMAInitialize(void); 142 143 // 144 // DMA Channel 1 145 // 146 extern void DMACH1AddrConfig(volatile Uint16 *DMA_Dest, 147 volatile Uint16 *DMA_Source); 148 extern void DMACH1AddrConfig32bit(volatile Uint32 *DMA_Dest, 149 volatile Uint32 *DMA_Source); 150 extern void DMACH1BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep); 151 extern void DMACH1TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep); 152 extern void DMACH1WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, 153 int16 deswstep); 154 extern void DMACH1ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, 155 Uint16 cont, Uint16 synce, Uint16 syncsel, 156 Uint16 ovrinte, Uint16 datasize, 157 Uint16 chintmode, 158 Uint16 chinte); 159 extern void StartDMACH1(void); 160 161 // 162 // DMA Channel 2 163 // 164 extern void DMACH2AddrConfig(volatile Uint16 *DMA_Dest, 165 volatile Uint16 *DMA_Source); 166 extern void DMACH2AddrConfig32bit(volatile Uint32 *DMA_Dest, 167 volatile Uint32 *DMA_Source); 168 extern void DMACH2BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep); 169 extern void DMACH2TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep); 170 extern void DMACH2WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, 171 int16 deswstep); 172 extern void DMACH2ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, 173 Uint16 cont, Uint16 synce, Uint16 syncsel, 174 Uint16 ovrinte, Uint16 datasize, 175 Uint16 chintmode, 176 Uint16 chinte); 177 extern void StartDMACH2(void); 178 179 // 180 // DMA Channel 3 181 // 182 extern void DMACH3AddrConfig(volatile Uint16 *DMA_Dest, 183 volatile Uint16 *DMA_Source); 184 extern void DMACH3AddrConfig32bit(volatile Uint32 *DMA_Dest, 185 volatile Uint32 *DMA_Source); 186 extern void DMACH3BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep); 187 extern void DMACH3TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep); 188 extern void DMACH3WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, 189 int16 deswstep); 190 extern void DMACH3ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, 191 Uint16 cont, Uint16 synce, Uint16 syncsel, 192 Uint16 ovrinte, Uint16 datasize, 193 Uint16 chintmode, 194 Uint16 chinte); 195 extern void StartDMACH3(void); 196 197 // 198 // DMA Channel 4 199 // 200 extern void DMACH4AddrConfig(volatile Uint16 *DMA_Dest, 201 volatile Uint16 *DMA_Source); 202 extern void DMACH4AddrConfig32bit(volatile Uint32 *DMA_Dest, 203 volatile Uint32 *DMA_Source); 204 extern void DMACH4BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep); 205 extern void DMACH4TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep); 206 extern void DMACH4WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, 207 int16 deswstep); 208 extern void DMACH4ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, 209 Uint16 cont, Uint16 synce, Uint16 syncsel, 210 Uint16 ovrinte, Uint16 datasize, 211 Uint16 chintmode, 212 Uint16 chinte); 213 extern void StartDMACH4(void); 214 215 // 216 // DMA Channel 5 217 // 218 extern void DMACH5AddrConfig(volatile Uint16 *DMA_Dest, 219 volatile Uint16 *DMA_Source); 220 extern void DMACH5AddrConfig32bit(volatile Uint32 *DMA_Dest, 221 volatile Uint32 *DMA_Source); 222 extern void DMACH5BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep); 223 extern void DMACH5TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep); 224 extern void DMACH5WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, 225 int16 deswstep); 226 extern void DMACH5ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, 227 Uint16 cont, Uint16 synce, Uint16 syncsel, 228 Uint16 ovrinte, Uint16 datasize, 229 Uint16 chintmode, 230 Uint16 chinte); 231 extern void StartDMACH5(void); 232 233 // 234 // DMA Channel 6 235 // 236 extern void DMACH6AddrConfig(volatile Uint16 *DMA_Dest, 237 volatile Uint16 *DMA_Source); 238 extern void DMACH6AddrConfig32bit(volatile Uint32 *DMA_Dest, 239 volatile Uint32 *DMA_Source); 240 extern void DMACH6BurstConfig(Uint16 bsize,Uint16 srcbstep, int16 desbstep); 241 extern void DMACH6TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep); 242 extern void DMACH6WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, 243 int16 deswstep); 244 extern void DMACH6ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, 245 Uint16 cont, Uint16 synce, Uint16 syncsel, 246 Uint16 ovrinte, Uint16 datasize, 247 Uint16 chintmode, 248 Uint16 chinte); 249 extern void StartDMACH6(void); 250 251 // 252 //GPIO Functions 253 // 254 extern void InitGpio(); 255 extern void GPIO_SetupPinMux(Uint16 gpioNumber, Uint16 cpu, Uint16 muxPosition); 256 extern void GPIO_SetupPinOptions(Uint16 gpioNumber, Uint16 output, Uint16 flags); 257 extern void GPIO_SetupLock(Uint16 gpioNumber, Uint16 flags); 258 extern void GPIO_SetupXINT1Gpio(Uint16 gpioNumber); 259 extern void GPIO_SetupXINT2Gpio(Uint16 gpioNumber); 260 extern void GPIO_SetupXINT3Gpio(Uint16 gpioNumber); 261 extern void GPIO_SetupXINT4Gpio(Uint16 gpioNumber); 262 extern void GPIO_SetupXINT5Gpio(Uint16 gpioNumber); 263 extern void GPIO_SelectIpcInt(Uint16 newFlag); 264 extern void GPIO_EnableUnbondedIOPullupsFor100Pin(void); 265 extern void GPIO_EnableUnbondedIOPullupsFor100Pin(void); 266 extern void GPIO_EnableUnbondedIOPullups(void); 267 Uint16 GPIO_ReadPin(Uint16 gpioNumber); 268 void GPIO_WritePin(Uint16 gpioNumber, Uint16 outVal); 269 270 // 271 //IPC Functions 272 // 273 extern void InitIpc(); 274 extern Uint64 ReadIpcTimer(); 275 extern void SendIpcData(void *data, Uint16 word_length, Uint16 flag); 276 extern void RecvIpcData(void *recv_buf, Uint16 word_length); 277 extern void FillIpcSendData(Uint16 fill_data); 278 extern void SendIpcCommand(Uint32 command, Uint32 address, Uint32 data, 279 Uint16 flag); 280 extern void SendIpcFlag(Uint16 flag); 281 extern void AckIpcFlag(Uint16 flag); 282 extern void CancelIpcFlag(Uint16 flag); 283 extern void WaitForIpcFlag(Uint16 flag); 284 extern void WaitForIpcAck(Uint16 flag); 285 extern void IpcSync(Uint16 flag); 286 287 // 288 // CAN Functions 289 // 290 extern void CanGpioPinMuxing(Uint32 ulBase, Uint16 canTxRxPin); 291 extern void CanAGpioConfig(Uint16 canaTxRxPin); 292 extern void CanBGpioConfig(Uint16 canbTxRxPin); 293 extern void CanModuleClkSelect(Uint32 ulBase, Uint16 ucSource); 294 295 // 296 // I2C Functions 297 // 298 extern void I2cAGpioConfig(Uint16 I2caDataClkPin); 299 extern void I2cBGpioConfig(Uint16 I2cbDataClkPin); 300 301 // 302 // McBSP functions 303 // McBSPA 304 // 305 extern void InitMcbspa(void); 306 extern void InitMcbspaInt(void); 307 extern void InitMcbspa8bit(void); 308 extern void InitMcbspa12bit(void); 309 extern void InitMcbspa16bit(void); 310 extern void InitMcbspa20bit(void); 311 extern void InitMcbspa24bit(void); 312 extern void InitMcbspa32bit(void); 313 extern void InitMcbspaGpio(void); 314 extern void delay_loop(void); 315 316 // 317 // McBSPB 318 // 319 extern void InitMcbspb(void); 320 extern void InitMcbspbInt(void); 321 extern void InitMcbspb8bit(void); 322 extern void InitMcbspb12bit(void); 323 extern void InitMcbspb16bit(void); 324 extern void InitMcbspb20bit(void); 325 extern void InitMcbspb24bit(void); 326 extern void InitMcbspb32bit(void); 327 extern void InitMcbspbGpio(void); 328 329 // 330 //Temp Sensor Functions 331 // 332 extern void InitTempSensor(float32 vrefhi_voltage); 333 extern int16 GetTemperatureC(int16 sensorSample); 334 extern int16 GetTemperatureK(int16 sensorSample); 335 336 // 337 // External symbols created by the linker cmd file 338 // DSP28 examples will use these to relocate code from one LOAD location 339 // in Flash to a different RUN location in internal 340 // RAM 341 // 342 extern Uint16 RamfuncsLoadStart; 343 extern Uint16 RamfuncsLoadEnd; 344 extern Uint16 RamfuncsLoadSize; 345 extern Uint16 RamfuncsRunStart; 346 extern Uint16 RamfuncsRunEnd; 347 extern Uint16 RamfuncsRunSize; 348 349 // 350 // External Boot ROM variable definitions 351 // 352 extern Uint16 EmuBMode; 353 extern Uint16 EmuBootPins; 354 355 #ifdef __cplusplus 356 } 357 #endif /* extern "C" */ 358 359 #endif // - end of F2837xD_GLOBALPROTOTYPES_H 360 361 // 362 // End of file 363 // 364