rt-thread/bsp/c28x/libraries/tms320f28379d/common/include/F2837xD_Examples.h

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