summaryrefslogtreecommitdiff
path: root/msp340/Break/driverlib/MSP430FR5xx_6xx/esi.h
diff options
context:
space:
mode:
Diffstat (limited to 'msp340/Break/driverlib/MSP430FR5xx_6xx/esi.h')
-rwxr-xr-xmsp340/Break/driverlib/MSP430FR5xx_6xx/esi.h904
1 files changed, 904 insertions, 0 deletions
diff --git a/msp340/Break/driverlib/MSP430FR5xx_6xx/esi.h b/msp340/Break/driverlib/MSP430FR5xx_6xx/esi.h
new file mode 100755
index 0000000..83f07c7
--- /dev/null
+++ b/msp340/Break/driverlib/MSP430FR5xx_6xx/esi.h
@@ -0,0 +1,904 @@
+/* --COPYRIGHT--,BSD
+ * Copyright (c) 2014, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * 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.
+ * --/COPYRIGHT--*/
+//*****************************************************************************
+//
+// esi.h - Driver for the ESI Module.
+//
+//*****************************************************************************
+
+#ifndef __MSP430WARE_ESI_H__
+#define __MSP430WARE_ESI_H__
+
+#include "inc/hw_memmap.h"
+
+#ifdef __MSP430_HAS_ESI__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+uint16_t ESI_getCounter0(void);
+uint16_t ESI_getCounter1(void);
+uint16_t ESI_getCounter2(void);
+uint16_t ESI_getOscCounter(void);
+
+//*****************************************************************************
+//
+//The following are values that can be passed to excitationCircuitSelect
+//parameter in ESI_AFE_InitParams
+//
+//*****************************************************************************
+#define ESI_EXCITATION_CIRCUIT_DISABLED 0x0
+#define ESI_EXCITATION_CIRCUIT_ENABLED ESITEN
+
+//*****************************************************************************
+//
+//The following are values that can be passed to sampleAndHoldSelect
+//parameter in ESI_AFE_InitParams
+//
+//*****************************************************************************
+#define ESI_SAMPLE_HOLD_DISABLED 0x0
+#define ESI_SAMPLE_HOLD_ENABLED ESISH
+
+//*****************************************************************************
+//
+//The following are values that can be passed to midVoltageGeneratorSelect
+//parameter in ESI_AFE_InitParams
+//
+//*****************************************************************************
+#define ESI_MID_VOLTAGE_GENERATOR_DISABLED 0x0
+#define ESI_MID_VOLTAGE_GENERATOR_ENABLED ESIVCC2
+
+//*****************************************************************************
+//
+//The following are values that can be passed to sampleAndHoldVSSConnect
+//parameter in ESI_AFE_InitParams
+//
+//*****************************************************************************
+#define ESI_SAMPLE_HOLD_VSS_TO_ESIVSS 0x0
+#define ESI_SAMPLE_HOLD_VSS_BY_TSM ESIVSS
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//inputSelectAFE1 parameter in ESI_AFE1_InitParams
+//
+//*****************************************************************************
+#define ESI_AFE1_INPUT_SELECT_CHx 0
+#define ESI_AFE1_INPUT_SELECT_CIx 1
+#define ESI_AFE1_INPUT_SELECT_CI3 2
+#define ESI_AFE1_INPUT_SELECT_CI 3
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//inputSelectAFE2 parameter in ESI_AFE2_InitParams
+//
+//*****************************************************************************
+#define ESI_AFE2_INPUT_SELECT_CHx 0
+#define ESI_AFE2_INPUT_SELECT_CIx ESICA2X
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//inverterSelectOutputAFE1 parameter in ESI_AFE1_InitParams
+//
+//*****************************************************************************
+#define ESI_INVERTER_FOR_AFE1_DISABLE 0x0
+#define ESI_INVERTER_FOR_AFE1_ENABLE ESICA1INV
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//inverterSelectOutputAFE2 parameter in ESI_AFE2_InitParams
+//
+//*****************************************************************************
+#define ESI_INVERTER_FOR_AFE2_DISABLE 0x0
+#define ESI_INVERTER_FOR_AFE2_ENABLE ESICA2INV
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//tsmControlOfComparatorAFE2 parameter in ESI_AFE2_InitParams
+//
+//*****************************************************************************
+#define ESI_TSM_COMPARATOR_CONTROL_AFE2_DISABLE 0x0
+#define ESI_TSM_COMPARATOR_CONTROL_AFE2_ENABLE ESICA2EN
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//tsmControlDacAFE2 parameter in ESI_AFE2_InitParams
+//
+//*****************************************************************************
+#define ESI_TSM_DAC_CONTROL_AFE2_DISABLE 0x0
+#define ESI_TSM_DAC_CONTROL_AFE2_ENABLE ESIDAC2EN
+
+typedef struct ESI_AFE1_InitParams
+{
+ uint16_t excitationCircuitSelect;
+ uint16_t sampleAndHoldSelect;
+ uint16_t midVoltageGeneratorSelect;
+ uint16_t sampleAndHoldVSSConnect;
+ uint16_t inputSelectAFE1;
+ uint16_t inverterSelectOutputAFE1;
+} ESI_AFE1_InitParams;
+
+extern const ESI_AFE1_InitParams ESI_AFE1_INITPARAMS_DEFAULT;
+
+void ESI_AFE1_init(ESI_AFE1_InitParams *params);
+
+typedef struct ESI_AFE2_InitParams
+{
+ uint16_t inputSelectAFE2;
+ uint16_t inverterSelectOutputAFE2;
+ uint16_t tsmControlComparatorAFE2;
+ uint16_t tsmControlDacAFE2;
+} ESI_AFE2_InitParams;
+
+extern const ESI_AFE2_InitParams ESI_AFE2_INITPARAMS_DEFAULT;
+
+void ESI_AFE2_init(ESI_AFE2_InitParams *params);
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//channelSelect parameter in ESI_getLatchedComparatorOutput
+//
+//*****************************************************************************
+#define ESI_AFE1_CHANNEL0_SELECT ESIOUT0
+#define ESI_AFE1_CHANNEL1_SELECT ESIOUT1
+#define ESI_AFE1_CHANNEL2_SELECT ESIOUT2
+#define ESI_AFE1_CHANNEL3_SELECT ESIOUT3
+#define ESI_AFE2_CHANNEL0_SELECT ESIOUT4
+#define ESI_AFE2_CHANNEL1_SELECT ESIOUT5
+#define ESI_AFE2_CHANNEL2_SELECT ESIOUT6
+#define ESI_AFE2_CHANNEL3_SELECT ESIOUT7
+#define ESI_AFE1_TEST_CHANNEL0_SELECT ESITCHOUT0
+#define ESI_AFE1_TEST_CHANNEL1_SELECT ESITCHOUT1
+
+//*****************************************************************************
+//
+//The following are values that are returned by ESI_getLatchedComparatorOutput
+//
+//*****************************************************************************
+#define ESI_AFE_OUTPUT_HIGH 0x1
+#define ESI_AFE_OUTPUT_LOW 0x0
+
+uint16_t ESI_getLatchedComparatorOutput(uint16_t channelSelect);
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//smclkDivider parameter in ESI_TSM_InitParams
+//
+//*****************************************************************************
+#define ESI_TSM_SMCLK_DIV_1 0x0
+#define ESI_TSM_SMCLK_DIV_2 ESIDIV10
+#define ESI_TSM_SMCLK_DIV_4 ESIDIV11
+#define ESI_TSM_SMCLK_DIV_8 ESIDIV10 + ESIDIV11
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//aclkDivider parameter in ESI_TSM_InitParams
+//
+//*****************************************************************************
+#define ESI_TSM_ACLK_DIV_1 0x0
+#define ESI_TSM_ACLK_DIV_2 ESIDIV20
+#define ESI_TSM_ACLK_DIV_4 ESIDIV21
+#define ESI_TSM_ACLK_DIV_8 ESIDIV20 + ESIDIV21
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//startTriggerAclkDivider parameter in ESI_TSM_InitParams
+//
+//*****************************************************************************
+#define ESI_TSM_START_TRIGGER_DIV_2 0x0
+#define ESI_TSM_START_TRIGGER_DIV_6 ESIDIV3A0
+#define ESI_TSM_START_TRIGGER_DIV_10 ESIDIV3A1
+#define ESI_TSM_START_TRIGGER_DIV_14 ESIDIV3A0 + ESIDIV3A1
+#define ESI_TSM_START_TRIGGER_DIV_18 ESIDIV3A2
+#define ESI_TSM_START_TRIGGER_DIV_22 ESIDIV3A2 + ESIDIV3A0
+#define ESI_TSM_START_TRIGGER_DIV_26 ESIDIV3A2 + ESIDIV3A1
+#define ESI_TSM_START_TRIGGER_DIV_30 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0
+#define ESI_TSM_START_TRIGGER_DIV_42 ESIDIV3A0 + ESIDIV3A1 + ESIDIV3B0
+#define ESI_TSM_START_TRIGGER_DIV_50 ESIDIV3A1 + ESIDIV3B1
+#define ESI_TSM_START_TRIGGER_DIV_54 ESIDIV3A2 + ESIDIV3B0
+#define ESI_TSM_START_TRIGGER_DIV_66 ESIDIV3A2 + ESIDIV3A0 + ESIDIV3B0
+#define ESI_TSM_START_TRIGGER_DIV_70 ESIDIV3A1 + ESIDIV3A0 + ESIDIV3B1
+#define ESI_TSM_START_TRIGGER_DIV_78 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B0
+#define ESI_TSM_START_TRIGGER_DIV_90 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + \
+ ESIDIV3B0
+#define ESI_TSM_START_TRIGGER_DIV_98 ESIDIV3A0 + ESIDIV3A1 + ESIDIV3B0 + \
+ ESIDIV3B1
+#define ESI_TSM_START_TRIGGER_DIV_110 ESIDIV3A2 + ESIDIV3A0 + ESIDIV3B1
+#define ESI_TSM_START_TRIGGER_DIV_126 ESIDIV3A2 + ESIDIV3B0 + ESIDIV3B1
+#define ESI_TSM_START_TRIGGER_DIV_130 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B1
+#define ESI_TSM_START_TRIGGER_DIV_150 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + \
+ ESIDIV3B1
+#define ESI_TSM_START_TRIGGER_DIV_154 ESIDIV3A2 + ESIDIV3A0 + ESIDIV3B0 + \
+ ESIDIV3B1
+#define ESI_TSM_START_TRIGGER_DIV_162 ESIDIV3A2 + ESIDIV3B2
+#define ESI_TSM_START_TRIGGER_DIV_182 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B0 + \
+ ESIDIV3B1
+#define ESI_TSM_START_TRIGGER_DIV_198 ESIDIV3A2 + ESIDIV3A0 + ESIDIV3B2
+#define ESI_TSM_START_TRIGGER_DIV_210 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + \
+ ESIDIV3B0 + ESIDIV3B1
+#define ESI_TSM_START_TRIGGER_DIV_234 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B2
+#define ESI_TSM_START_TRIGGER_DIV_242 ESIDIV3A2 + ESIDIV3A0 + ESIDIV3B2 + \
+ ESIDIV3B0
+#define ESI_TSM_START_TRIGGER_DIV_270 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + \
+ ESIDIV3B2
+#define ESI_TSM_START_TRIGGER_DIV_286 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B2 + \
+ ESIDIV3B0
+#define ESI_TSM_START_TRIGGER_DIV_330 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + \
+ ESIDIV3B2 + ESIDIV3B0
+#define ESI_TSM_START_TRIGGER_DIV_338 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B2 + \
+ ESIDIV3B1
+#define ESI_TSM_START_TRIGGER_DIV_390 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + \
+ ESIDIV3B2 + ESIDIV3B1
+#define ESI_TSM_START_TRIGGER_DIV_450 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + \
+ ESIDIV3B2 + ESIDIV3B1 + ESIDIV3B0
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//repeatMode parameter in ESI_TSM_InitParams
+//
+//*****************************************************************************
+#define ESI_TSM_REPEAT_NEW_TRIGGER 0x0
+#define ESI_TSM_REPEAT_END_OF_PREVIOUS_SEQ ESITSMRP
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//startTriggerSelection parameter in ESI_TSM_InitParams
+//
+//*****************************************************************************
+#define ESI_TSM_STOP_SEQUENCE 0x0
+#define ESI_TSM_START_TRIGGER_ACLK ESITSMTRG0
+#define ESI_TSM_START_TRIGGER_SOFTWARE ESITSMTRG1
+#define ESI_TSM_START_TRIGGER_ACLK_OR_SOFTWARE ESITSMTRG1 + ESITSMTRG0
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//tsmFunctionalitySelection parameter in ESI_TSM_InitParams
+//
+//*****************************************************************************
+#define ESI_TSM_HIGH_FREQ_CLK_FUNCTION_ON 0x0
+#define ESI_TSM_AUTOZERO_CYCLE_FUNCTION_ON ESICLKAZSEL
+
+typedef struct ESI_TSM_InitParams
+{
+ uint16_t smclkDivider;
+ uint16_t aclkDivider;
+ uint16_t startTriggerAclkDivider;
+ uint16_t repeatMode;
+ uint16_t startTriggerSelection;
+ uint16_t tsmFunctionSelection;
+} ESI_TSM_InitParams;
+
+extern const ESI_TSM_InitParams ESI_TSM_INITPARAMS_DEFAULT;
+
+void ESI_TSM_init(ESI_TSM_InitParams *params);
+
+void ESI_TSM_clearTable(void);
+
+void ESI_TSM_copyTable(uint16_t* tsmTable,
+ uint16_t size);
+
+void ESI_TSM_softwareTrigger(void);
+
+uint8_t ESI_TSM_getTSMStateDuration(uint8_t stateRegNum);
+
+void ESI_TSM_setTSMStateDuration(uint8_t stateRegNum,
+ uint8_t duration);
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//Q6Select parameter in ESI_PSM_InitParams
+//
+//*****************************************************************************
+#define ESI_PSM_Q6_DISABLE 0x0
+#define ESI_PSM_Q6_ENABLE ESIQ6EN
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//Q7TriggerSelect parameter in ESI_PSM_InitParams
+//
+//*****************************************************************************
+#define ESI_PSM_Q7_TRIGGER_DISABLE 0x0
+#define ESI_PSM_Q7_TRIGGER_ENABLE ESIQ7TRG
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//count0Select parameter in ESI_PSM_InitParams
+//
+//*****************************************************************************
+#define ESI_PSM_CNT0_DISABLE 0x0
+#define ESI_PSM_CNT0_ENABLE ESICNT0EN
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//count0Reset parameter in ESI_PSM_InitParams
+//
+//*****************************************************************************
+#define ESI_PSM_CNT0_NO_RESET 0x0
+#define ESI_PSM_CNT0_RESET ESICNT0RST
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//count1Select parameter in ESI_PSM_InitParams
+//
+//*****************************************************************************
+#define ESI_PSM_CNT1_DISABLE 0x0
+#define ESI_PSM_CNT1_ENABLE ESICNT1EN
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//count1Reset parameter in ESI_PSM_InitParams
+//
+//*****************************************************************************
+#define ESI_PSM_CNT1_NO_RESET 0x0
+#define ESI_PSM_CNT1_RESET ESICNT1RST
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//count2Select parameter in ESI_PSM_InitParams
+//
+//*****************************************************************************
+#define ESI_PSM_CNT2_DISABLE 0x0
+#define ESI_PSM_CNT2_ENABLE ESICNT2EN
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//count2Reset parameter in ESI_PSM_InitParams
+//
+//*****************************************************************************
+#define ESI_PSM_CNT2_NO_RESET 0x0
+#define ESI_PSM_CNT2_RESET ESICNT2RST
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//V2Select parameter in ESI_PSM_InitParams
+//
+//*****************************************************************************
+#define ESI_PSM_S3_SELECT 0x0
+#define ESI_PSM_Q0_SELECT ESIV2SEL
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//TEST4Select parameter in ESI_PSM_InitParams
+//
+//*****************************************************************************
+#define ESI_PSM_TEST4_IS_Q2 0x0
+#define ESI_PSM_TEST4_IS_Q1 ESITEST4SEL0
+#define ESI_PSM_TEST4_IS_TSM_CLK ESITEST4SEL1
+#define ESI_PSM_TEST4_IS_AFE1_COMPARATOR ESITEST4SEL0 + ESITEST4SEL1
+
+typedef struct ESI_PSM_InitParams
+{
+ uint16_t Q6Select;
+ uint16_t Q7TriggerSelect;
+ uint16_t count0Select;
+ uint16_t count0Reset;
+ uint16_t count1Select;
+ uint16_t count1Reset;
+ uint16_t count2Select;
+ uint16_t count2Reset;
+ uint16_t V2Select;
+ uint16_t TEST4Select;
+} ESI_PSM_InitParams;
+
+extern const ESI_PSM_InitParams ESI_PSM_INITPARAMS_DEFAULT;
+
+void ESI_PSM_init(ESI_PSM_InitParams *params);
+
+void ESI_PSM_clearTable(void);
+void ESI_PSM_copyTable(uint8_t * psmTable,
+ uint8_t size);
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//counterToReset parameter in ESI_PSM_counterReset
+//
+//*****************************************************************************
+#define ESI_PSM_CNT0_RST ESICNT0RST
+#define ESI_PSM_CNT1_RST ESICNT1RST
+#define ESI_PSM_CNT2_RST ESICNT2RST
+
+void ESI_PSM_resetCounter(uint16_t counterToReset);
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//testCycleInsertion parameter in ESI_InitParams
+//
+//*****************************************************************************
+#define ESI_TEST_CYCLE_INSERTION_DISABLE 0x0
+#define ESI_TEST_CYCLE_INSERTION_ENABLE ESITESTD
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//timerAInputSelection parameter in ESI_InitParams
+//
+//*****************************************************************************
+#define ESI_TIMERA_INPUT_TSM_COMPOUT 0x0
+#define ESI_TIMERA_INPUT_TSM_PPUSRC ESICS
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//testChannel0Select parameter in ESI_InitParams
+//
+//*****************************************************************************
+#define ESI_TEST_CHANNEL0_SOURCE_IS_CH0_CI0 0x0
+#define ESI_TEST_CHANNEL0_SOURCE_IS_CH1_CI1 ESITCH00
+#define ESI_TEST_CHANNEL0_SOURCE_IS_CH2_CI2 ESITCH01
+#define ESI_TEST_CHANNEL0_SOURCE_IS_CH3_CI3 ESITCH00 + ESITCH01
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//testChannel1Select parameter in ESI_InitParams
+//
+//*****************************************************************************
+#define ESI_TEST_CHANNEL1_SOURCE_IS_CH0_CI0 0x0
+#define ESI_TEST_CHANNEL1_SOURCE_IS_CH1_CI1 ESITCH10
+#define ESI_TEST_CHANNEL1_SOURCE_IS_CH2_CI2 ESITCH11
+#define ESI_TEST_CHANNEL1_SOURCE_IS_CH3_CI3 ESITCH10 + ESITCH11
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//internalOscSelect parameter in ESI_InitParams
+//
+//*****************************************************************************
+#define ESI_INTERNAL_OSC_DISABLE 0x0
+#define ESI_INTERNAL_OSC_ENABLE ESIHFSEL
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//sourceNum parameter in ESI_psmSourceSelect
+//
+//*****************************************************************************
+#define PSM_S1_SOURCE 1
+#define PSM_S2_SOURCE 2
+#define PSM_S3_SOURCE 3
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//sourceSelect parameter in ESI_psmSourceSelect
+//
+//*****************************************************************************
+#define ESI_PSM_SOURCE_IS_ESIOUT0 0
+#define ESI_PSM_SOURCE_IS_ESIOUT1 1
+#define ESI_PSM_SOURCE_IS_ESIOUT2 2
+#define ESI_PSM_SOURCE_IS_ESIOUT3 3
+#define ESI_PSM_SOURCE_IS_ESIOUT4 4
+#define ESI_PSM_SOURCE_IS_ESIOUT5 5
+#define ESI_PSM_SOURCE_IS_ESIOUT6 6
+#define ESI_PSM_SOURCE_IS_ESIOUT7 7
+
+void ESI_timerAInputSelect(uint16_t select);
+void ESI_psmSourceSelect(uint16_t sourceNum,
+ uint16_t sourceSelect);
+void ESI_testChannel0SourceSelect(uint16_t sourceSelect);
+void ESI_testChannel1SourceSelect(uint16_t sourceSelect);
+void ESI_enable(void);
+void ESI_disable(void);
+
+void ESI_enableInternalOscillator();
+void ESI_disableInternalOscillator();
+void ESI_startInternalOscCal(void);
+void ESI_stopInternalOscCal(void);
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//oversample parameter in ESI_measureESIOSCOversample
+//
+//*****************************************************************************
+#define ESI_ESIOSC_NO_OVERSAMPLE 0
+#define ESI_ESIOSC_OVERSAMPLE_2 2
+#define ESI_ESIOSC_OVERSAMPLE_4 4
+#define ESI_ESIOSC_OVERSAMPLE_8 8
+uint16_t ESI_measureESIOSC(uint8_t oversample);
+uint8_t ESI_getESICLKFQ(void);
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//incOrDec parameter in ESI_adjustInternalOscFreq
+//
+//*****************************************************************************
+#define ESI_INTERNAL_OSC_FREQ_DECREASE 0x0
+#define ESI_INTERNAL_OSC_FREQ_INCREASE 0x1
+
+void ESI_adjustInternalOscFreq(uint16_t incOrDec);
+void ESI_setNominalInternalOscFreq(void);
+void ESI_calibrateInternalOscFreq(uint16_t targetAclkCounts);
+void ESI_setPSMCounter1IncreaseThreshold(uint16_t threshold);
+
+void ESI_setPSMCounter1DecreaseThreshold(uint16_t threshold);
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//resultNum parameter in ESI_getConversionResult
+//
+//*****************************************************************************
+#define ESI_CONVERSION_RESULT_1 ESIADMEM1
+#define ESI_CONVERSION_RESULT_2 ESIADMEM2
+#define ESI_CONVERSION_RESULT_3 ESIADMEM3
+#define ESI_CONVERSION_RESULT_4 ESIADMEM4
+
+uint16_t ESI_getConversionResult(uint16_t resultNum);
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//dacRegNum parameter in ESI_setAFE1DACValue and ESI_getAFE1DACValue
+//
+//*****************************************************************************
+#define ESI_DAC1_REG0 0
+#define ESI_DAC1_REG1 1
+#define ESI_DAC1_REG2 2
+#define ESI_DAC1_REG3 3
+#define ESI_DAC1_REG4 4
+#define ESI_DAC1_REG5 5
+#define ESI_DAC1_REG6 6
+#define ESI_DAC1_REG7 7
+
+void ESI_setAFE1DACValue(uint16_t dacValue,
+ uint8_t dacRegNum);
+uint16_t ESI_getAFE1DACValue(uint8_t dacRegNum);
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//dacRegNum parameter in ESI_setAFE2DACValue and ESI_getAFE2DACValue
+//
+//*****************************************************************************
+#define ESI_DAC2_REG0 0
+#define ESI_DAC2_REG1 1
+#define ESI_DAC2_REG2 2
+#define ESI_DAC2_REG3 3
+#define ESI_DAC2_REG4 4
+#define ESI_DAC2_REG5 5
+#define ESI_DAC2_REG6 6
+#define ESI_DAC2_REG7 7
+
+void ESI_setAFE2DACValue(uint16_t dacValue,
+ uint8_t dacRegNum);
+uint16_t ESI_getAFE2DACValue(uint8_t dacRegNum);
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//stateRegNum parameter in ESI_setTSMstateReg
+//
+//*****************************************************************************
+#define ESI_TSM_STATE_REG_0 0
+#define ESI_TSM_STATE_REG_1 1
+#define ESI_TSM_STATE_REG_2 2
+#define ESI_TSM_STATE_REG_3 3
+#define ESI_TSM_STATE_REG_4 4
+#define ESI_TSM_STATE_REG_5 5
+#define ESI_TSM_STATE_REG_6 6
+#define ESI_TSM_STATE_REG_7 7
+#define ESI_TSM_STATE_REG_8 8
+#define ESI_TSM_STATE_REG_9 9
+#define ESI_TSM_STATE_REG_10 10
+#define ESI_TSM_STATE_REG_11 11
+#define ESI_TSM_STATE_REG_12 12
+#define ESI_TSM_STATE_REG_13 13
+#define ESI_TSM_STATE_REG_14 14
+#define ESI_TSM_STATE_REG_15 15
+#define ESI_TSM_STATE_REG_16 16
+#define ESI_TSM_STATE_REG_17 17
+#define ESI_TSM_STATE_REG_18 18
+#define ESI_TSM_STATE_REG_19 19
+#define ESI_TSM_STATE_REG_20 20
+#define ESI_TSM_STATE_REG_21 21
+#define ESI_TSM_STATE_REG_22 22
+#define ESI_TSM_STATE_REG_23 23
+#define ESI_TSM_STATE_REG_24 24
+#define ESI_TSM_STATE_REG_25 25
+#define ESI_TSM_STATE_REG_26 26
+#define ESI_TSM_STATE_REG_27 27
+#define ESI_TSM_STATE_REG_28 28
+#define ESI_TSM_STATE_REG_29 29
+#define ESI_TSM_STATE_REG_30 30
+#define ESI_TSM_STATE_REG_31 31
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//inputChannelSelect parameter in ESI_TSM_StateParams
+//
+//*****************************************************************************
+#define ESI_TSM_STATE_CHANNEL_SELECT_CH0 0
+#define ESI_TSM_STATE_CHANNEL_SELECT_CH1 ESICH0
+#define ESI_TSM_STATE_CHANNEL_SELECT_CH2 ESICH1
+#define ESI_TSM_STATE_CHANNEL_SELECT_CH3 (ESICH1 | ESICH0)
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//LCDampingSelect parameter in ESI_TSM_StateParams
+//
+//*****************************************************************************
+#define ESI_TSM_STATE_LC_DAMPING_DISABLE 0x0
+#define ESI_TSM_STATE_LC_DAMPING_ENABLE ESILCEN
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//excitationSelect parameter in ESI_TSM_StateParams
+//
+//*****************************************************************************
+#define ESI_TSM_STATE_EXCITATION_DISABLE 0x0
+#define ESI_TSM_STATE_EXCITATION_ENABLE ESIEX
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//comparatorSelect parameter in ESI_TSM_StateParams
+//
+//*****************************************************************************
+#define ESI_TSM_STATE_COMPARATOR_DISABLE 0x0
+#define ESI_TSM_STATE_COMPARATOR_ENABLE ESICA
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//highFreqClkOn_or_compAutoZeroCycle parameter in ESI_TSM_StateParams
+//
+//*****************************************************************************
+#define ESI_TSM_STATE_HIGH_FREQ_CLK_ON 0x0
+#define ESI_TSM_STATE_COMP_AUTOZERO_CYCLE ESICLKON
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//outputLatchSelect parameter in ESI_TSM_StateParams
+//
+//*****************************************************************************
+#define ESI_TSM_STATE_OUTPUT_LATCH_DISABLE 0x0
+#define ESI_TSM_STATE_OUTPUT_LATCH_ENABLE ESIRSON
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//testCycleSelect parameter in ESI_TSM_StateParams
+//
+//*****************************************************************************
+#define ESI_TSM_STATE_TEST_CYCLE_DISABLE 0x0
+#define ESI_TSM_STATE_TEST_CYCLE_ENABLE ESITESTS1
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//dacSelect parameter in ESI_TSM_StateParams
+//
+//*****************************************************************************
+#define ESI_TSM_STATE_DAC_DISABLE 0x0
+#define ESI_TSM_STATE_DAC_ENABLE ESIDAC
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//tsmStop parameter in ESI_TSM_StateParams
+//
+//*****************************************************************************
+#define ESI_TSM_STATE_CONTINUE 0x0
+#define ESI_TSM_STATE_STOP ESISTOP
+
+//*****************************************************************************
+//
+//The following are values that can be passed to
+//tsmClkSrc parameter in ESI_TSM_StateParams
+//
+//*****************************************************************************
+#define ESI_TSM_STATE_HIGH_FREQ_CLK 0x0
+#define ESI_TSM_STATE_ACLK ESICLK
+
+//*****************************************************************************
+//
+//Values between these min and max can be pased to
+//duration parameter in ESI_TSM_StateParams
+//
+//*****************************************************************************
+#define ESI_TSM_STATE_DURATION_MIN 0x00
+#define ESI_TSM_STATE_DURATION_MAX 0x1F
+
+typedef struct ESI_TSM_StateParams
+{
+ uint16_t inputChannelSelect;
+ uint16_t LCDampingSelect;
+ uint16_t excitationSelect;
+ uint16_t comparatorSelect;
+ uint16_t highFreqClkOn_or_compAutoZeroCycle;
+ uint16_t outputLatchSelect;
+ uint16_t testCycleSelect;
+ uint16_t dacSelect;
+ uint16_t tsmStop;
+ uint16_t tsmClkSrc;
+ uint16_t duration;
+} ESI_TSM_StateParams;
+
+void ESI_setTSMstateReg(ESI_TSM_StateParams *params,
+ uint8_t stateRegNum);
+
+uint16_t ESIgetInterruptVectorRegister(void);
+
+//*****************************************************************************
+//
+//The following values can be be used to form the interrupt mask for
+//ESI_enableInterrupt and ESI_disableInterrupt
+//
+//*****************************************************************************
+#define ESI_INTERRUPT_AFE1_ESIOUTX \
+ ESIIE0
+#define ESI_INTERRUPT_ESISTOP ESIIE1
+#define ESI_INTERRUPT_ESISTART ESIIE2
+#define ESI_INTERRUPT_ESICNT1 ESIIE3
+#define ESI_INTERRUPT_ESICNT2 ESIIE4
+#define ESI_INTERRUPT_Q6_BIT_SET ESIIE5
+#define ESI_INTERRUPT_Q7_BIT_SET ESIIE6
+#define ESI_INTERRUPT_ESICNT0_COUNT_INTERVAL ESIIE7
+#define ESI_INTERRUPT_AFE2_ESIOUTX \
+ ESIIE8
+
+void ESI_enableInterrupt(uint16_t interruptMask);
+void ESI_disableInterrupt(uint16_t interruptMask);
+
+//*****************************************************************************
+//
+//Return values for ESI_getInterruptStatus
+//
+//*****************************************************************************
+#define ESI_INTERRUPT_FLAG_AFE1_ESIOUTX ESIIFG0
+#define ESI_INTERRUPT_FLAG_ESISTOP ESIIFG1
+#define ESI_INTERRUPT_FLAG_ESISTART ESIIFG2
+#define ESI_INTERRUPT_FLAG_ESICNT1 ESIIFG3
+#define ESI_INTERRUPT_FLAG_ESICNT2 ESIIFG4
+#define ESI_INTERRUPT_FLAG_Q6_BIT_SET ESIIFG5
+#define ESI_INTERRUPT_FLAG_Q7_BIT_SET ESIIFG6
+#define ESI_INTERRUPT_FLAG_ESICNT0_COUNT_INTERVAL ESIIFG7
+#define ESI_INTERRUPT_FLAG_AFE2_ESIOUTX ESIIFG8
+
+uint16_t ESI_getInterruptStatus(uint16_t interruptMask);
+void ESI_clearInterrupt(uint16_t interruptMask);
+
+//*****************************************************************************
+//
+//Values for ifg0Src in ESI_setIFG0Source
+//
+//*****************************************************************************
+#define ESI_IFG0_SET_WHEN_ESIOUT0_SET ESIIFGSET1_0
+#define ESI_IFG0_SET_WHEN_ESIOUT0_RESET ESIIFGSET1_1
+#define ESI_IFG0_SET_WHEN_ESIOUT1_SET ESIIFGSET1_2
+#define ESI_IFG0_SET_WHEN_ESIOUT1_RESET ESIIFGSET1_3
+#define ESI_IFG0_SET_WHEN_ESIOUT2_SET ESIIFGSET1_4
+#define ESI_IFG0_SET_WHEN_ESIOUT2_RESET ESIIFGSET1_5
+#define ESI_IFG0_SET_WHEN_ESIOUT3_SET ESIIFGSET1_6
+#define ESI_IFG0_SET_WHEN_ESIOUT3_RESET ESIIFGSET1_7
+
+void ESI_setIFG0Source(uint16_t ifg0Src);
+
+//*****************************************************************************
+//
+//Values for ifg8Src in ESI_setIFG8Source
+//
+//*****************************************************************************
+#define ESI_IFG8_SET_WHEN_ESIOUT4_SET ESIIFGSET2_0
+#define ESI_IFG8_SET_WHEN_ESIOUT4_RESET ESIIFGSET2_1
+#define ESI_IFG8_SET_WHEN_ESIOUT5_SET ESIIFGSET2_2
+#define ESI_IFG8_SET_WHEN_ESIOUT5_RESET ESIIFGSET2_3
+#define ESI_IFG8_SET_WHEN_ESIOUT6_SET ESIIFGSET2_4
+#define ESI_IFG8_SET_WHEN_ESIOUT6_RESET ESIIFGSET2_5
+#define ESI_IFG8_SET_WHEN_ESIOUT7_SET ESIIFGSET2_6
+#define ESI_IFG8_SET_WHEN_ESIOUT7_RESET ESIIFGSET2_7
+
+void ESI_setIFG8Source(uint16_t ifg8Src);
+
+//*****************************************************************************
+//
+//Values for ifg7Src in ESI_setIFG7Source
+//
+//*****************************************************************************
+#define ESI_IFG7_SOURCE_EVERY_COUNT_OF_CNT0 ESIIS0_0
+#define ESI_IFG7_SOURCE_CNT0_MOD4 ESIIS0_1
+#define ESI_IFG7_SOURCE_CNT0_MOD256 ESIIS0_2
+#define ESI_IFG7_SOURCE_CNT0_ROLLOVER ESIIS0_3
+
+void ESI_setIFG7Source(uint16_t ifg7Src);
+
+//*****************************************************************************
+//
+//Values for ifg4Src in ESI_setIFG4Source
+//
+//*****************************************************************************
+#define ESI_IFG4_SOURCE_EVERY_COUNT_OF_CNT2 ESIIS2_0
+#define ESI_IFG4_SOURCE_CNT2_MOD4 ESIIS2_1
+#define ESI_IFG4_SOURCE_CNT2_MOD256 ESIIS2_2
+#define ESI_IFG4_SOURCE_CNT2_ROLLOVER ESIIS2_3
+
+void ESI_setIFG4Source(uint16_t ifg4Src);
+
+void ESI_setPSMCounter1UpperThreshold(uint16_t threshold);
+void ESI_setPSMCounter1LowerThreshold(uint16_t threshold);
+
+//*****************************************************************************
+//
+// Set correct DAC values for LC sensors
+//
+//*****************************************************************************
+void ESI_LC_DAC_calibration(uint8_t selected_channel);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+#endif