449 lines
14 KiB
C
449 lines
14 KiB
C
//###########################################################################
|
|
//
|
|
// FILE: F2837xD_Examples.h
|
|
//
|
|
// TITLE: F2837xD Device Definitions.
|
|
//
|
|
//###########################################################################
|
|
// $TI Release: F2837xD Support Library v3.05.00.00 $
|
|
// $Release Date: Tue Jun 26 03:15:23 CDT 2018 $
|
|
// $Copyright:
|
|
// Copyright (C) 2013-2018 Texas Instruments Incorporated - http://www.ti.com/
|
|
//
|
|
// Redistribution and use in source and binary forms, with or without
|
|
// modification, are permitted provided that the following conditions
|
|
// are met:
|
|
//
|
|
// Redistributions of source code must retain the above copyright
|
|
// notice, this list of conditions and the following disclaimer.
|
|
//
|
|
// Redistributions in binary form must reproduce the above copyright
|
|
// notice, this list of conditions and the following disclaimer in the
|
|
// documentation and/or other materials provided with the
|
|
// distribution.
|
|
//
|
|
// Neither the name of Texas Instruments Incorporated nor the names of
|
|
// its contributors may be used to endorse or promote products derived
|
|
// from this software without specific prior written permission.
|
|
//
|
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
// $
|
|
//###########################################################################
|
|
|
|
#ifndef F2837xD_EXAMPLES_H
|
|
#define F2837xD_EXAMPLES_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
//
|
|
// Defines
|
|
//
|
|
|
|
//
|
|
// The following are values that can be passed to the
|
|
// InitSysPll() & InitAuxPll() to select SYSPLL/AUXPLL integer multiplier
|
|
//
|
|
#define IMULT_0 0
|
|
#define IMULT_1 1
|
|
#define IMULT_2 2
|
|
#define IMULT_3 3
|
|
#define IMULT_4 4
|
|
#define IMULT_5 5
|
|
#define IMULT_6 6
|
|
#define IMULT_7 7
|
|
#define IMULT_8 8
|
|
#define IMULT_9 9
|
|
#define IMULT_10 10
|
|
#define IMULT_11 11
|
|
#define IMULT_12 12
|
|
#define IMULT_13 13
|
|
#define IMULT_14 14
|
|
#define IMULT_15 15
|
|
#define IMULT_16 16
|
|
#define IMULT_17 17
|
|
#define IMULT_18 18
|
|
#define IMULT_19 19
|
|
#define IMULT_20 20
|
|
#define IMULT_21 21
|
|
#define IMULT_22 22
|
|
#define IMULT_23 23
|
|
#define IMULT_24 24
|
|
#define IMULT_25 25
|
|
#define IMULT_26 26
|
|
#define IMULT_27 27
|
|
#define IMULT_28 28
|
|
#define IMULT_29 29
|
|
#define IMULT_30 30
|
|
#define IMULT_31 31
|
|
#define IMULT_32 32
|
|
#define IMULT_33 33
|
|
#define IMULT_34 34
|
|
#define IMULT_35 35
|
|
#define IMULT_36 36
|
|
#define IMULT_37 37
|
|
#define IMULT_38 38
|
|
#define IMULT_39 39
|
|
#define IMULT_40 40
|
|
#define IMULT_41 41
|
|
#define IMULT_42 42
|
|
#define IMULT_43 43
|
|
#define IMULT_44 44
|
|
#define IMULT_45 45
|
|
#define IMULT_46 46
|
|
#define IMULT_47 47
|
|
#define IMULT_48 48
|
|
#define IMULT_49 49
|
|
#define IMULT_50 50
|
|
#define IMULT_51 51
|
|
#define IMULT_52 52
|
|
#define IMULT_53 53
|
|
#define IMULT_54 54
|
|
#define IMULT_55 55
|
|
#define IMULT_56 56
|
|
#define IMULT_57 57
|
|
#define IMULT_58 58
|
|
#define IMULT_59 59
|
|
#define IMULT_60 60
|
|
#define IMULT_61 61
|
|
#define IMULT_62 62
|
|
#define IMULT_63 63
|
|
#define IMULT_64 64
|
|
#define IMULT_65 65
|
|
#define IMULT_66 66
|
|
#define IMULT_67 67
|
|
#define IMULT_68 68
|
|
#define IMULT_69 69
|
|
#define IMULT_70 70
|
|
#define IMULT_71 71
|
|
#define IMULT_72 72
|
|
#define IMULT_73 73
|
|
#define IMULT_74 74
|
|
#define IMULT_75 75
|
|
#define IMULT_76 76
|
|
#define IMULT_77 77
|
|
#define IMULT_78 78
|
|
#define IMULT_79 79
|
|
#define IMULT_80 80
|
|
#define IMULT_81 81
|
|
#define IMULT_82 82
|
|
#define IMULT_83 83
|
|
#define IMULT_84 84
|
|
#define IMULT_85 85
|
|
#define IMULT_86 86
|
|
#define IMULT_87 87
|
|
#define IMULT_88 88
|
|
#define IMULT_89 89
|
|
#define IMULT_90 90
|
|
#define IMULT_91 91
|
|
#define IMULT_92 92
|
|
#define IMULT_93 93
|
|
#define IMULT_94 94
|
|
#define IMULT_95 95
|
|
#define IMULT_96 96
|
|
#define IMULT_97 97
|
|
#define IMULT_98 98
|
|
#define IMULT_99 99
|
|
#define IMULT_100 100
|
|
#define IMULT_101 101
|
|
#define IMULT_102 102
|
|
#define IMULT_103 103
|
|
#define IMULT_104 104
|
|
#define IMULT_105 105
|
|
#define IMULT_106 106
|
|
#define IMULT_107 107
|
|
#define IMULT_108 108
|
|
#define IMULT_109 109
|
|
#define IMULT_110 110
|
|
#define IMULT_111 111
|
|
#define IMULT_112 112
|
|
#define IMULT_113 113
|
|
#define IMULT_114 114
|
|
#define IMULT_115 115
|
|
#define IMULT_116 116
|
|
#define IMULT_117 117
|
|
#define IMULT_118 118
|
|
#define IMULT_119 119
|
|
#define IMULT_120 120
|
|
#define IMULT_121 121
|
|
#define IMULT_122 122
|
|
#define IMULT_123 123
|
|
#define IMULT_124 124
|
|
#define IMULT_125 125
|
|
#define IMULT_126 126
|
|
#define IMULT_127 127
|
|
|
|
//
|
|
// The following are values that can be passed to the
|
|
// InitSysPll() & InitAuxPll() to select SYSPLL/AUXPLL fractional multiplier
|
|
//
|
|
#define FMULT_0 0
|
|
#define FMULT_0pt25 1
|
|
#define FMULT_0pt5 2
|
|
#define FMULT_0pt75 3
|
|
|
|
//
|
|
// The following are values that can be passed to the
|
|
// InitSysPll() to select divsel for SYSPLL
|
|
//
|
|
#define PLLCLK_BY_1 0
|
|
#define PLLCLK_BY_2 1
|
|
#define PLLCLK_BY_4 2
|
|
#define PLLCLK_BY_6 3
|
|
#define PLLCLK_BY_8 4
|
|
#define PLLCLK_BY_10 5
|
|
#define PLLCLK_BY_12 6
|
|
#define PLLCLK_BY_14 7
|
|
#define PLLCLK_BY_16 8
|
|
#define PLLCLK_BY_18 9
|
|
#define PLLCLK_BY_20 10
|
|
#define PLLCLK_BY_22 11
|
|
#define PLLCLK_BY_24 12
|
|
#define PLLCLK_BY_26 13
|
|
#define PLLCLK_BY_28 14
|
|
#define PLLCLK_BY_30 15
|
|
#define PLLCLK_BY_32 16
|
|
#define PLLCLK_BY_34 17
|
|
#define PLLCLK_BY_36 18
|
|
#define PLLCLK_BY_38 19
|
|
#define PLLCLK_BY_40 20
|
|
#define PLLCLK_BY_42 21
|
|
#define PLLCLK_BY_44 22
|
|
#define PLLCLK_BY_46 23
|
|
#define PLLCLK_BY_48 24
|
|
#define PLLCLK_BY_50 25
|
|
#define PLLCLK_BY_52 26
|
|
#define PLLCLK_BY_54 27
|
|
#define PLLCLK_BY_56 28
|
|
#define PLLCLK_BY_58 29
|
|
#define PLLCLK_BY_60 30
|
|
#define PLLCLK_BY_62 31
|
|
#define PLLCLK_BY_64 32
|
|
#define PLLCLK_BY_66 33
|
|
#define PLLCLK_BY_68 34
|
|
#define PLLCLK_BY_70 35
|
|
#define PLLCLK_BY_72 36
|
|
#define PLLCLK_BY_74 37
|
|
#define PLLCLK_BY_76 38
|
|
#define PLLCLK_BY_78 39
|
|
#define PLLCLK_BY_80 40
|
|
#define PLLCLK_BY_82 41
|
|
#define PLLCLK_BY_84 42
|
|
#define PLLCLK_BY_86 43
|
|
#define PLLCLK_BY_88 44
|
|
#define PLLCLK_BY_90 45
|
|
#define PLLCLK_BY_92 46
|
|
#define PLLCLK_BY_94 47
|
|
#define PLLCLK_BY_96 48
|
|
#define PLLCLK_BY_98 49
|
|
#define PLLCLK_BY_100 50
|
|
#define PLLCLK_BY_102 51
|
|
#define PLLCLK_BY_104 52
|
|
#define PLLCLK_BY_106 53
|
|
#define PLLCLK_BY_108 54
|
|
#define PLLCLK_BY_110 55
|
|
#define PLLCLK_BY_112 56
|
|
#define PLLCLK_BY_114 57
|
|
#define PLLCLK_BY_116 58
|
|
#define PLLCLK_BY_118 59
|
|
#define PLLCLK_BY_120 60
|
|
#define PLLCLK_BY_122 61
|
|
#define PLLCLK_BY_124 62
|
|
#define PLLCLK_BY_126 63
|
|
|
|
//
|
|
// The following are values that can be passed to the
|
|
// InitAuxPll() to select divsel for AUXPLL
|
|
//
|
|
#define AUXPLLRAWCLK_BY_1 0
|
|
#define AUXPLLRAWCLK_BY_2 1
|
|
#define AUXPLLRAWCLK_BY_4 2
|
|
#define AUXPLLRAWCLK_BY_8 3
|
|
|
|
//
|
|
// The following are values that can be passed to the
|
|
// IntOsc2Sel() & XtalOscSel() to select system PLL (or) AUX PLL
|
|
//
|
|
#define SYSTEM_PLL (Uint16) 0
|
|
#define AUX_PLL (Uint16) 1
|
|
|
|
//
|
|
// The following are values that can be passed to the
|
|
// InitSysPll() & InitAuxPll() to select clock source
|
|
//
|
|
#define INT_OSC2 0
|
|
#define XTAL_OSC 1
|
|
#define INT_OSC1 2
|
|
#define AUXCLKIN 4
|
|
|
|
//
|
|
// Specify the clock rate of the CPU (SYSCLKOUT) in nS.
|
|
//
|
|
// Take into account the input clock frequency and the PLL multiplier
|
|
// selected in step 1.
|
|
//
|
|
// Use one of the values provided, or define your own.
|
|
// The trailing L is required tells the compiler to treat
|
|
// the number as a 64-bit value.
|
|
//
|
|
// Only one statement should be uncommented.
|
|
//
|
|
// Example: 200 MHz devices:
|
|
// CLKIN is a 10 MHz crystal or internal 10 MHz oscillator
|
|
//
|
|
// In step 1 the user specified the PLL multiplier = 40 for a
|
|
// 200 MHz CPU clock (SYSCLKOUT = 200 MHz).
|
|
//
|
|
// In this case, the CPU_RATE will be 5.000L
|
|
// Uncomment the line: #define CPU_RATE 5.000L
|
|
//
|
|
|
|
#define CPU_RATE 5.00L // for a 200MHz CPU clock speed (SYSCLKOUT)
|
|
//#define CPU_RATE 5.263L // for a 190MHz CPU clock speed (SYSCLKOUT)
|
|
//#define CPU_RATE 5.556L // for a 180MHz CPU clock speed (SYSCLKOUT)
|
|
//#define CPU_RATE 5.882L // for a 170MHz CPU clock speed (SYSCLKOUT)
|
|
//#define CPU_RATE 6.250L // for a 160MHz CPU clock speed (SYSCLKOUT)
|
|
//#define CPU_RATE 6.667L // for a 150MHz CPU clock speed (SYSCLKOUT)
|
|
//#define CPU_RATE 7.143L // for a 140MHz CPU clock speed (SYSCLKOUT)
|
|
//#define CPU_RATE 7.692L // for a 130MHz CPU clock speed (SYSCLKOUT)
|
|
//#define CPU_RATE 8.333L // for a 120MHz CPU clock speed (SYSCLKOUT)
|
|
|
|
//
|
|
// The following pointer to a function call calibrates the ADC reference,
|
|
// DAC offset, and internal oscillators
|
|
//
|
|
#define Device_cal (void (*)(void))0x070282
|
|
|
|
//
|
|
// The following pointers to functions calibrate the ADC linearity. Use this
|
|
// in the AdcSetMode(...) function only
|
|
//
|
|
#define CalAdcaINL (void (*)(void))0x0703B4
|
|
#define CalAdcbINL (void (*)(void))0x0703B2
|
|
#define CalAdccINL (void (*)(void))0x0703B0
|
|
#define CalAdcdINL (void (*)(void))0x0703AE
|
|
|
|
//
|
|
// The following pointer to a function call looks up the ADC offset trim for a
|
|
// given condition. Use this in the AdcSetMode(...) function only.
|
|
//
|
|
#define GetAdcOffsetTrimOTP (Uint16 (*)(Uint16 OTPoffset))0x0703AC
|
|
|
|
//
|
|
// Includes
|
|
//
|
|
#include "F2837xD_GlobalPrototypes.h" // Prototypes for global functions
|
|
// within the .c files.
|
|
#include "F2837xD_cputimervars.h"
|
|
#include "F2837xD_Cla_defines.h" // Macros used for CLA examples.
|
|
#include "F2837xD_EPwm_defines.h" // Macros used for PWM examples.
|
|
#include "F2837xD_Adc_defines.h" // Macros used for ADC examples.
|
|
#include "F2837xD_Emif_defines.h" // Macros used for EMIF examples.
|
|
#include "F2837xD_Gpio_defines.h" // Macros used for GPIO support code
|
|
#include "F2837xD_I2c_defines.h" // Macros used for I2C examples.
|
|
#include "F2837xD_Ipc_defines.h" // Macros used for IPC support code.
|
|
#include "F2837xD_Pie_defines.h" // Macros used for PIE examples.
|
|
#include "F2837xD_Dma_defines.h" // Macros used for DMA examples.
|
|
#include "F2837xD_SysCtrl_defines.h" // Macros used for LPM support code
|
|
#include "F2837xD_Upp_defines.h" // Macros used for UPP examples.
|
|
|
|
#define PARTNO_2837xPACKAGEHERE 0x00
|
|
|
|
#define CPU_FRQ_200MHZ 1
|
|
#define CPU_FRQ_150MHZ 0
|
|
#define CPU_FRQ_120MHZ 0
|
|
|
|
//
|
|
// Include files not used with F/BIOS
|
|
//
|
|
#ifndef F28_BIOS
|
|
#include "F2837xD_defaultisr.h"
|
|
#endif
|
|
|
|
extern void F28x_usDelay(long LoopCount);
|
|
|
|
//
|
|
// DO NOT MODIFY THIS LINE.
|
|
//
|
|
#define DELAY_US(A) F28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) - 9.0L) / 5.0L)
|
|
|
|
//
|
|
// Timer Operations:
|
|
//
|
|
|
|
//
|
|
// Start Timer:
|
|
//
|
|
#define StartCpuTimer0() CpuTimer0Regs.TCR.bit.TSS = 0
|
|
|
|
//
|
|
// Stop Timer:
|
|
//
|
|
#define StopCpuTimer0() CpuTimer0Regs.TCR.bit.TSS = 1
|
|
|
|
//
|
|
// Reload Timer With period Value:
|
|
//
|
|
#define ReloadCpuTimer0() CpuTimer0Regs.TCR.bit.TRB = 1
|
|
|
|
//
|
|
// Read 32-Bit Timer Value:
|
|
//
|
|
#define ReadCpuTimer0Counter() CpuTimer0Regs.TIM.all
|
|
|
|
//
|
|
// Read 32-Bit Period Value:
|
|
//
|
|
#define ReadCpuTimer0Period() CpuTimer0Regs.PRD.all
|
|
|
|
//
|
|
// Start Timer:
|
|
//
|
|
#define StartCpuTimer1() CpuTimer1Regs.TCR.bit.TSS = 0
|
|
#define StartCpuTimer2() CpuTimer2Regs.TCR.bit.TSS = 0
|
|
|
|
//
|
|
// Stop Timer:
|
|
//
|
|
#define StopCpuTimer1() CpuTimer1Regs.TCR.bit.TSS = 1
|
|
#define StopCpuTimer2() CpuTimer2Regs.TCR.bit.TSS = 1
|
|
|
|
//
|
|
// Reload Timer With period Value:
|
|
//
|
|
#define ReloadCpuTimer1() CpuTimer1Regs.TCR.bit.TRB = 1
|
|
#define ReloadCpuTimer2() CpuTimer2Regs.TCR.bit.TRB = 1
|
|
|
|
//
|
|
// Read 32-Bit Timer Value:
|
|
//
|
|
#define ReadCpuTimer1Counter() CpuTimer1Regs.TIM.all
|
|
#define ReadCpuTimer2Counter() CpuTimer2Regs.TIM.all
|
|
|
|
//
|
|
// Read 32-Bit Period Value:
|
|
//
|
|
#define ReadCpuTimer1Period() CpuTimer1Regs.PRD.all
|
|
#define ReadCpuTimer2Period() CpuTimer2Regs.PRD.all
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* extern "C" */
|
|
|
|
#endif // end of F2837xD_EXAMPLES_H definition
|
|
|
|
//
|
|
// End of file
|
|
//
|