MCUXpresso SDK API Reference Manual  Rev. 0
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages

Overview

This section describes the programming interface of the TSI Peripheral driver.

Function groups

TSI initialization & configuration

This function group initializes the default configuration of the peripheral.

TSI functional Operation

This function group implements the TSI functional APIs, including interrupts enable/disable, trigger method selection, and retrieve conversion counter value.

Typical use case

TSI Operation

TSI_InitSelfCapMode(TSI0, user_config);
TSI_SetMeasuredChannelNumber(TSI0, channelMask);
TSI_EnableSoftwareTriggerScan(TSI0);
while(1)
{
}

Data Structures

struct  tsi_calibration_data_t
 TSI calibration data storage. More...
 
struct  tsi_common_config_t
 TSI common configuration structure. More...
 
struct  tsi_selfCap_config_t
 TSI configuration structure for self-cap mode. More...
 
struct  tsi_mutualCap_config_t
 TSI configuration structure for mutual-cap mode. More...
 

Macros

#define FSL_TSI_DRIVER_VERSION   (MAKE_VERSION(2, 1, 0))
 TSI driver version. More...
 
#define ALL_FLAGS_MASK   (TSI_GENCS_EOSF_MASK | TSI_GENCS_OUTRGF_MASK)
 TSI status flags macro collection.
 

Enumerations

enum  tsi_main_clock_selection_t {
  kTSI_MainClockSlection_0 = 0U,
  kTSI_MainClockSlection_1 = 1U,
  kTSI_MainClockSlection_2 = 2U,
  kTSI_MainClockSlection_3 = 3U
}
 TSI main clock selection. More...
 
enum  tsi_sensing_mode_selection_t {
  kTSI_SensingModeSlection_Self = 0U,
  kTSI_SensingModeSlection_Mutual = 1U
}
 TSI sensing mode selection. More...
 
enum  tsi_dvolt_option_t {
  kTSI_DvoltOption_0 = 0U,
  kTSI_DvoltOption_1 = 1U,
  kTSI_DvoltOption_2 = 2U,
  kTSI_DvoltOption_3 = 3U
}
 TSI DVOLT settings. More...
 
enum  tsi_sensitivity_xdn_option_t {
  kTSI_SensitivityXdnOption_0 = 0U,
  kTSI_SensitivityXdnOption_1 = 1U,
  kTSI_SensitivityXdnOption_2 = 2U,
  kTSI_SensitivityXdnOption_3 = 3U,
  kTSI_SensitivityXdnOption_4 = 4U,
  kTSI_SensitivityXdnOption_5 = 5U,
  kTSI_SensitivityXdnOption_6 = 6U,
  kTSI_SensitivityXdnOption_7 = 7U
}
 TSI sensitivity ajustment (XDN option). More...
 
enum  tsi_sensitivity_ctrim_option_t {
  kTSI_SensitivityCtrimOption_0 = 0U,
  kTSI_SensitivityCtrimOption_1 = 1U,
  kTSI_SensitivityCtrimOption_2 = 2U,
  kTSI_SensitivityCtrimOption_3 = 3U,
  kTSI_SensitivityCtrimOption_4 = 4U,
  kTSI_SensitivityCtrimOption_5 = 5U,
  kTSI_SensitivityCtrimOption_6 = 6U,
  kTSI_SensitivityCtrimOption_7 = 7U
}
 TSI sensitivity ajustment (CTRIM option). More...
 
enum  tsi_current_multiple_input_t {
  kTSI_CurrentMultipleInputValue_0 = 0U,
  kTSI_CurrentMultipleInputValue_1 = 1U
}
 TSI current ajustment (Input current multiple). More...
 
enum  tsi_current_multiple_charge_t {
  kTSI_CurrentMultipleChargeValue_0 = 0U,
  kTSI_CurrentMultipleChargeValue_1 = 1U,
  kTSI_CurrentMultipleChargeValue_2 = 2U,
  kTSI_CurrentMultipleChargeValue_3 = 3U,
  kTSI_CurrentMultipleChargeValue_4 = 4U,
  kTSI_CurrentMultipleChargeValue_5 = 5U,
  kTSI_CurrentMultipleChargeValue_6 = 6U,
  kTSI_CurrentMultipleChargeValue_7 = 7U
}
 TSI current ajustment (Charge/Discharge current multiple). More...
 
enum  tsi_mutual_pre_current_t {
  kTSI_MutualPreCurrent_1uA = 0U,
  kTSI_MutualPreCurrent_2uA = 1U,
  kTSI_MutualPreCurrent_3uA = 2U,
  kTSI_MutualPreCurrent_4uA = 3U,
  kTSI_MutualPreCurrent_5uA = 4U,
  kTSI_MutualPreCurrent_6uA = 5U,
  kTSI_MutualPreCurrent_7uA = 6U,
  kTSI_MutualPreCurrent_8uA = 7U
}
 TSI current used in vref generator. More...
 
enum  tsi_mutual_pre_resistor_t {
  kTSI_MutualPreResistor_1k = 0U,
  kTSI_MutualPreResistor_2k = 1U,
  kTSI_MutualPreResistor_3k = 2U,
  kTSI_MutualPreResistor_4k = 3U,
  kTSI_MutualPreResistor_5k = 4U,
  kTSI_MutualPreResistor_6k = 5U,
  kTSI_MutualPreResistor_7k = 6U,
  kTSI_MutualPreResistor_8k = 7U
}
 TSI resistor used in pre-charge. More...
 
enum  tsi_mutual_sense_resistor_t {
  kTSI_MutualSenseResistor_2k5 = 0U,
  kTSI_MutualSenseResistor_5k = 1U,
  kTSI_MutualSenseResistor_7k5 = 2U,
  kTSI_MutualSenseResistor_10k = 3U,
  kTSI_MutualSenseResistor_12k5 = 4U,
  kTSI_MutualSenseResistor_15k = 5U,
  kTSI_MutualSenseResistor_17k5 = 6U,
  kTSI_MutualSenseResistor_20k = 7U,
  kTSI_MutualSenseResistor_22k5 = 8U,
  kTSI_MutualSenseResistor_25k = 9U,
  kTSI_MutualSenseResistor_27k5 = 10U,
  kTSI_MutualSenseResistor_30k = 11U,
  kTSI_MutualSenseResistor_32k5 = 12U,
  kTSI_MutualSenseResistor_35k = 13U,
  kTSI_MutualSenseResistor_37k5 = 14U,
  kTSI_MutualSenseResistor_40k = 15U
}
 TSI resistor used in I-sense generator. More...
 
enum  tsi_mutual_tx_channel_t {
  kTSI_MutualTxChannel_0 = 0U,
  kTSI_MutualTxChannel_1 = 1U,
  kTSI_MutualTxChannel_2 = 2U,
  kTSI_MutualTxChannel_3 = 3U,
  kTSI_MutualTxChannel_4 = 4U,
  kTSI_MutualTxChannel_5 = 5U
}
 TSI TX channel selection in mutual-cap mode. More...
 
enum  tsi_mutual_rx_channel_t {
  kTSI_MutualRxChannel_6 = 0U,
  kTSI_MutualRxChannel_7 = 1U,
  kTSI_MutualRxChannel_8 = 2U,
  kTSI_MutualRxChannel_9 = 3U,
  kTSI_MutualRxChannel_10 = 4U,
  kTSI_MutualRxChannel_11 = 5U
}
 TSI RX channel selection in mutual-cap mode. More...
 
enum  tsi_mutual_sense_boost_current_t {
  kTSI_MutualSenseBoostCurrent_0uA = 0U,
  kTSI_MutualSenseBoostCurrent_2uA = 1U,
  kTSI_MutualSenseBoostCurrent_4uA = 2U,
  kTSI_MutualSenseBoostCurrent_6uA = 3U,
  kTSI_MutualSenseBoostCurrent_8uA = 4U,
  kTSI_MutualSenseBoostCurrent_10uA = 5U,
  kTSI_MutualSenseBoostCurrent_12uA = 6U,
  kTSI_MutualSenseBoostCurrent_14uA = 7U,
  kTSI_MutualSenseBoostCurrent_16uA = 8U,
  kTSI_MutualSenseBoostCurrent_18uA = 9U,
  kTSI_MutualSenseBoostCurrent_20uA = 10U,
  kTSI_MutualSenseBoostCurrent_22uA = 11U,
  kTSI_MutualSenseBoostCurrent_24uA = 12U,
  kTSI_MutualSenseBoostCurrent_26uA = 13U,
  kTSI_MutualSenseBoostCurrent_28uA = 14U,
  kTSI_MutualSenseBoostCurrent_30uA = 15U,
  kTSI_MutualSenseBoostCurrent_32uA = 16U,
  kTSI_MutualSenseBoostCurrent_34uA = 17U,
  kTSI_MutualSenseBoostCurrent_36uA = 18U,
  kTSI_MutualSenseBoostCurrent_38uA = 19U,
  kTSI_MutualSenseBoostCurrent_40uA = 20U,
  kTSI_MutualSenseBoostCurrent_42uA = 21U,
  kTSI_MutualSenseBoostCurrent_44uA = 22U,
  kTSI_MutualSenseBoostCurrent_46uA = 23U,
  kTSI_MutualSenseBoostCurrent_48uA = 24U,
  kTSI_MutualSenseBoostCurrent_50uA = 25U,
  kTSI_MutualSenseBoostCurrent_52uA = 26U,
  kTSI_MutualSenseBoostCurrent_54uA = 27U,
  kTSI_MutualSenseBoostCurrent_56uA = 28U,
  kTSI_MutualSenseBoostCurrent_58uA = 29U,
  kTSI_MutualSenseBoostCurrent_60uA = 30U,
  kTSI_MutualSenseBoostCurrent_62uA = 31U
}
 TSI sensitivity boost current settings. More...
 
enum  tsi_mutual_tx_drive_mode_t {
  kTSI_MutualTxDriveModeOption_0 = 0U,
  kTSI_MutualTxDriveModeOption_1 = 1U
}
 TSI TX drive mode control. More...
 
enum  tsi_mutual_pmos_current_left_t {
  kTSI_MutualPmosCurrentMirrorLeft_4 = 0U,
  kTSI_MutualPmosCurrentMirrorLeft_8 = 1U,
  kTSI_MutualPmosCurrentMirrorLeft_12 = 2U,
  kTSI_MutualPmosCurrentMirrorLeft_16 = 3U,
  kTSI_MutualPmosCurrentMirrorLeft_20 = 4U,
  kTSI_MutualPmosCurrentMirrorLeft_24 = 5U,
  kTSI_MutualPmosCurrentMirrorLeft_28 = 6U,
  kTSI_MutualPmosCurrentMirrorLeft_32 = 7U
}
 TSI Pmos current mirror selection on the left side. More...
 
enum  tsi_mutual_pmos_current_right_t {
  kTSI_MutualPmosCurrentMirrorRight_1 = 0U,
  kTSI_MutualPmosCurrentMirrorRight_2 = 1U,
  kTSI_MutualPmosCurrentMirrorRight_3 = 2U,
  kTSI_MutualPmosCurrentMirrorRight_4 = 3U
}
 TSI Pmos current mirror selection on the right side. More...
 
enum  tsi_mutual_nmos_current_t {
  kTSI_MutualNmosCurrentMirror_1 = 0U,
  kTSI_MutualNmosCurrentMirror_2 = 1U,
  kTSI_MutualNmosCurrentMirror_3 = 2U,
  kTSI_MutualNmosCurrentMirror_4 = 3U
}
 TSI Nmos current mirror selection. More...
 
enum  tsi_sinc_cutoff_div_t {
  kTSI_SincCutoffDiv_0 = 0U,
  kTSI_SincCutoffDiv_2 = 1U,
  kTSI_SincCutoffDiv_4 = 2U,
  kTSI_SincCutoffDiv_8 = 3U,
  kTSI_SincCutoffDiv_16 = 4U,
  kTSI_SincCutoffDiv_32 = 5U,
  kTSI_SincCutoffDiv_64 = 6U,
  kTSI_SincCutoffDiv_128 = 7U
}
 TSI SINC cutoff divider setting. More...
 
enum  tsi_sinc_filter_order_t {
  kTSI_SincFilterOrder_1 = 0U,
  kTSI_SincFilterOrder_2 = 1U
}
 TSI SINC filter order setting. More...
 
enum  tsi_sinc_decimation_value_t {
  kTSI_SincDecimationValue_1 = 0U,
  kTSI_SincDecimationValue_2 = 1U,
  kTSI_SincDecimationValue_3 = 2U,
  kTSI_SincDecimationValue_4 = 3U,
  kTSI_SincDecimationValue_5 = 4U,
  kTSI_SincDecimationValue_6 = 5U,
  kTSI_SincDecimationValue_7 = 6U,
  kTSI_SincDecimationValue_8 = 7U,
  kTSI_SincDecimationValue_9 = 8U,
  kTSI_SincDecimationValue_10 = 9U,
  kTSI_SincDecimationValue_11 = 10U,
  kTSI_SincDecimationValue_12 = 11U,
  kTSI_SincDecimationValue_13 = 12U,
  kTSI_SincDecimationValue_14 = 13U,
  kTSI_SincDecimationValue_15 = 14U,
  kTSI_SincDecimationValue_16 = 15U,
  kTSI_SincDecimationValue_17 = 16U,
  kTSI_SincDecimationValue_18 = 17U,
  kTSI_SincDecimationValue_19 = 18U,
  kTSI_SincDecimationValue_20 = 19U,
  kTSI_SincDecimationValue_21 = 20U,
  kTSI_SincDecimationValue_22 = 21U,
  kTSI_SincDecimationValue_23 = 22U,
  kTSI_SincDecimationValue_24 = 23U,
  kTSI_SincDecimationValue_25 = 24U,
  kTSI_SincDecimationValue_26 = 25U,
  kTSI_SincDecimationValue_27 = 26U,
  kTSI_SincDecimationValue_28 = 27U,
  kTSI_SincDecimationValue_29 = 28U,
  kTSI_SincDecimationValue_30 = 29U,
  kTSI_SincDecimationValue_31 = 30U,
  kTSI_SincDecimationValue_32 = 31U
}
 TSI SINC decimation value setting. More...
 
enum  tsi_ssc_charge_num_t {
  kTSI_SscChargeNumValue_1 = 0U,
  kTSI_SscChargeNumValue_2 = 1U,
  kTSI_SscChargeNumValue_3 = 2U,
  kTSI_SscChargeNumValue_4 = 3U,
  kTSI_SscChargeNumValue_5 = 4U,
  kTSI_SscChargeNumValue_6 = 5U,
  kTSI_SscChargeNumValue_7 = 6U,
  kTSI_SscChargeNumValue_8 = 7U,
  kTSI_SscChargeNumValue_9 = 8U,
  kTSI_SscChargeNumValue_10 = 9U,
  kTSI_SscChargeNumValue_11 = 10U,
  kTSI_SscChargeNumValue_12 = 11U,
  kTSI_SscChargeNumValue_13 = 12U,
  kTSI_SscChargeNumValue_14 = 13U,
  kTSI_SscChargeNumValue_15 = 14U,
  kTSI_SscChargeNumValue_16 = 15U
}
 TSI SSC output bit0's period setting(SSC0[CHARGE_NUM]) More...
 
enum  tsi_ssc_nocharge_num_t {
  kTSI_SscNoChargeNumValue_1 = 0U,
  kTSI_SscNoChargeNumValue_2 = 1U,
  kTSI_SscNoChargeNumValue_3 = 2U,
  kTSI_SscNoChargeNumValue_4 = 3U,
  kTSI_SscNoChargeNumValue_5 = 4U,
  kTSI_SscNoChargeNumValue_6 = 5U,
  kTSI_SscNoChargeNumValue_7 = 6U,
  kTSI_SscNoChargeNumValue_8 = 7U,
  kTSI_SscNoChargeNumValue_9 = 8U,
  kTSI_SscNoChargeNumValue_10,
  kTSI_SscNoChargeNumValue_11,
  kTSI_SscNoChargeNumValue_12,
  kTSI_SscNoChargeNumValue_13,
  kTSI_SscNoChargeNumValue_14,
  kTSI_SscNoChargeNumValue_15,
  kTSI_SscNoChargeNumValue_16
}
 TSI SSC output bit1's period setting(SSC0[BASE_NOCHARGE_NUM]) More...
 
enum  tsi_ssc_prbs_outsel_t {
  kTSI_SscPrbsOutsel_2 = 2U,
  kTSI_SscPrbsOutsel_3 = 3U,
  kTSI_SscPrbsOutsel_4 = 4U,
  kTSI_SscPrbsOutsel_5 = 5U,
  kTSI_SscPrbsOutsel_6 = 6U,
  kTSI_SscPrbsOutsel_7 = 7U,
  kTSI_SscPrbsOutsel_8 = 8U,
  kTSI_SscPrbsOutsel_9 = 9U,
  kTSI_SscPrbsOutsel_10 = 10U,
  kTSI_SscPrbsOutsel_11 = 11U,
  kTSI_SscPrbsOutsel_12 = 12U,
  kTSI_SscPrbsOutsel_13 = 13U,
  kTSI_SscPrbsOutsel_14 = 14U,
  kTSI_SscPrbsOutsel_15 = 15U
}
 TSI SSC outsel choosing the length of the PRBS (Pseudo-RandomBinarySequence) method setting(SSC0[TSI_SSC0_PRBS_OUTSEL]) More...
 
enum  tsi_status_flags_t {
  kTSI_EndOfScanFlag = TSI_GENCS_EOSF_MASK,
  kTSI_OutOfRangeFlag = (int)TSI_GENCS_OUTRGF_MASK
}
 TSI status flags. More...
 
enum  tsi_interrupt_enable_t {
  kTSI_GlobalInterruptEnable = 1U,
  kTSI_OutOfRangeInterruptEnable = 2U,
  kTSI_EndOfScanInterruptEnable = 4U
}
 TSI feature interrupt source. More...
 
enum  tsi_ssc_mode_t {
  kTSI_ssc_prbs_method = 0U,
  kTSI_ssc_up_down_counter = 1U,
  kTSI_ssc_dissable = 2U
}
 TSI SSC mode selection. More...
 
enum  tsi_ssc_prescaler_t {
  kTSI_ssc_div_by_1 = 0x0U,
  kTSI_ssc_div_by_2 = 0x1U,
  kTSI_ssc_div_by_4 = 0x3U,
  kTSI_ssc_div_by_8 = 0x7U,
  kTSI_ssc_div_by_16 = 0xfU,
  kTSI_ssc_div_by_32 = 0x1fU,
  kTSI_ssc_div_by_64 = 0x3fU,
  kTSI_ssc_div_by_128 = 0x7fU,
  kTSI_ssc_div_by_256 = 0xffU
}
 TSI main clock selection. More...
 

Functions

void TSI_InitSelfCapMode (TSI_Type *base, const tsi_selfCap_config_t *config)
 Initialize hardware to Self-cap mode. More...
 
void TSI_InitMutualCapMode (TSI_Type *base, const tsi_mutualCap_config_t *config)
 Initialize hardware to Mutual-cap mode. More...
 
void TSI_Deinit (TSI_Type *base)
 De-initialize hardware. More...
 
void TSI_GetSelfCapModeDefaultConfig (tsi_selfCap_config_t *userConfig)
 Get TSI self-cap mode user configure structure. More...
 
void TSI_GetMutualCapModeDefaultConfig (tsi_mutualCap_config_t *userConfig)
 Get TSI mutual-cap mode default user configure structure. More...
 
void TSI_SelfCapCalibrate (TSI_Type *base, tsi_calibration_data_t *calBuff)
 Hardware base counter value for calibration. More...
 
void TSI_EnableInterrupts (TSI_Type *base, uint32_t mask)
 Enables TSI interrupt requests. More...
 
void TSI_DisableInterrupts (TSI_Type *base, uint32_t mask)
 Disables TSI interrupt requests. More...
 
static uint32_t TSI_GetStatusFlags (TSI_Type *base)
 Get interrupt flag. More...
 
void TSI_ClearStatusFlags (TSI_Type *base, uint32_t mask)
 Clear interrupt flag. More...
 
static uint32_t TSI_GetScanTriggerMode (TSI_Type *base)
 Get TSI scan trigger mode. More...
 
static bool TSI_IsScanInProgress (TSI_Type *base)
 Get scan in progress flag. More...
 
static void TSI_EnableModule (TSI_Type *base, bool enable)
 Enables the TSI Module or not. More...
 
static void TSI_EnableLowPower (TSI_Type *base, bool enable)
 Sets the TSI low power STOP mode enable or not. More...
 
static void TSI_EnableHardwareTriggerScan (TSI_Type *base, bool enable)
 Enable the hardware trigger scan or not. More...
 
static void TSI_StartSoftwareTrigger (TSI_Type *base)
 Start one sotware trigger measurement (trigger a new measurement). More...
 
static void TSI_SetSelfCapMeasuredChannel (TSI_Type *base, uint8_t channel)
 Set the measured channel number for self-cap mode. More...
 
static uint8_t TSI_GetSelfCapMeasuredChannel (TSI_Type *base)
 Get the current measured channel number, in self-cap mode. More...
 
static void TSI_EnableDmaTransfer (TSI_Type *base, bool enable)
 Enable DMA transfer or not. More...
 
static void TSI_EnableEndOfScanDmaTransferOnly (TSI_Type *base, bool enable)
 Decide whether to enable End of Scan DMA transfer request only. More...
 
static uint16_t TSI_GetCounter (TSI_Type *base)
 Gets the conversion counter value. More...
 
static void TSI_SetLowThreshold (TSI_Type *base, uint16_t low_threshold)
 Set the TSI wake-up channel low threshold. More...
 
static void TSI_SetHighThreshold (TSI_Type *base, uint16_t high_threshold)
 Set the TSI wake-up channel high threshold. More...
 
static void TSI_SetMainClock (TSI_Type *base, tsi_main_clock_selection_t mainClock)
 Set the main clock of the TSI module. More...
 
static void TSI_SetSensingMode (TSI_Type *base, tsi_sensing_mode_selection_t mode)
 Set the sensing mode of the TSI module. More...
 
static tsi_sensing_mode_selection_t TSI_GetSensingMode (TSI_Type *base)
 Get the sensing mode of the TSI module. More...
 
static void TSI_SetDvolt (TSI_Type *base, tsi_dvolt_option_t dvolt)
 Set the DVOLT settings. More...
 
static void TSI_EnableNoiseCancellation (TSI_Type *base, bool enableCancellation)
 Enable self-cap mode noise cancellation function or not. More...
 
static void TSI_SetMutualCapTxChannel (TSI_Type *base, tsi_mutual_tx_channel_t txChannel)
 Set the mutual-cap mode TX channel. More...
 
static tsi_mutual_tx_channel_t TSI_GetTxMutualCapMeasuredChannel (TSI_Type *base)
 Get the current measured TX channel number, in mutual-cap mode. More...
 
static void TSI_SetMutualCapRxChannel (TSI_Type *base, tsi_mutual_rx_channel_t rxChannel)
 Set the mutual-cap mode RX channel. More...
 
static tsi_mutual_rx_channel_t TSI_GetRxMutualCapMeasuredChannel (TSI_Type *base)
 Get the current measured RX channel number, in mutual-cap mode. More...
 
static void TSI_SetSscMode (TSI_Type *base, tsi_ssc_mode_t mode)
 Set the SSC clock mode of the TSI module. More...
 
static void TSI_SetSscPrescaler (TSI_Type *base, tsi_ssc_prescaler_t prescaler)
 Set the SSC prescaler of the TSI module. More...
 

Data Structure Documentation

struct tsi_calibration_data_t

Data Fields

uint16_t calibratedData [FSL_FEATURE_TSI_CHANNEL_COUNT]
 TSI calibration data storage buffer.
 
struct tsi_common_config_t

This structure contains the common settings for TSI self-cap or mutual-cap mode, configurations including the TSI module main clock, sensing mode, DVOLT options, SINC and SSC configurations.

Data Fields

tsi_main_clock_selection_t mainClock
 Set main clock. More...
 
tsi_sensing_mode_selection_t mode
 Choose sensing mode. More...
 
tsi_dvolt_option_t dvolt
 DVOLT option value. More...
 
tsi_sinc_cutoff_div_t cutoff
 Cutoff divider. More...
 
tsi_sinc_filter_order_t order
 SINC filter order. More...
 
tsi_sinc_decimation_value_t decimation
 SINC decimation value. More...
 
tsi_ssc_charge_num_t chargeNum
 SSC High Width (t1), SSC output bit0's period setting. More...
 
tsi_ssc_prbs_outsel_t prbsOutsel
 SSC High Random Width (t2), length of PRBS(Pseudo-RandomBinarySequence),SSC output bit2's period setting. More...
 
tsi_ssc_nocharge_num_t noChargeNum
 SSC Low Width (t3), SSC output bit1's period setting. More...
 
tsi_ssc_mode_t ssc_mode
 Clock mode selection (basic - from main clock by divider,advanced - using SSC(Switching Speed Clock) by three configurable intervals. More...
 
tsi_ssc_prescaler_t ssc_prescaler
 Set clock divider for basic mode. More...
 

Field Documentation

tsi_main_clock_selection_t tsi_common_config_t::mainClock
tsi_sensing_mode_selection_t tsi_common_config_t::mode
tsi_dvolt_option_t tsi_common_config_t::dvolt
tsi_sinc_cutoff_div_t tsi_common_config_t::cutoff
tsi_sinc_filter_order_t tsi_common_config_t::order
tsi_sinc_decimation_value_t tsi_common_config_t::decimation
tsi_ssc_charge_num_t tsi_common_config_t::chargeNum
tsi_ssc_prbs_outsel_t tsi_common_config_t::prbsOutsel
tsi_ssc_nocharge_num_t tsi_common_config_t::noChargeNum
tsi_ssc_mode_t tsi_common_config_t::ssc_mode
tsi_ssc_prescaler_t tsi_common_config_t::ssc_prescaler
struct tsi_selfCap_config_t

This structure contains the settings for the most common TSI self-cap configurations including the TSI module charge currents, sensitivity configuration and so on.

Data Fields

tsi_common_config_t commonConfig
 Common settings. More...
 
bool enableSensitivity
 Enable sensitivity boost of self-cap or not. More...
 
bool enableShield
 Enable shield of self-cap mode or not. More...
 
tsi_sensitivity_xdn_option_t xdn
 Sensitivity XDN option. More...
 
tsi_sensitivity_ctrim_option_t ctrim
 Sensitivity CTRIM option. More...
 
tsi_current_multiple_input_t inputCurrent
 Input current multiple. More...
 
tsi_current_multiple_charge_t chargeCurrent
 Charge/Discharge current multiple. More...
 

Field Documentation

tsi_common_config_t tsi_selfCap_config_t::commonConfig
bool tsi_selfCap_config_t::enableSensitivity
bool tsi_selfCap_config_t::enableShield
tsi_sensitivity_xdn_option_t tsi_selfCap_config_t::xdn
tsi_sensitivity_ctrim_option_t tsi_selfCap_config_t::ctrim
tsi_current_multiple_input_t tsi_selfCap_config_t::inputCurrent
tsi_current_multiple_charge_t tsi_selfCap_config_t::chargeCurrent
struct tsi_mutualCap_config_t

This structure contains the settings for the most common TSI mutual-cap configurations including the TSI module generator settings, sensitivity related current settings and so on.

Data Fields

tsi_common_config_t commonConfig
 Common settings. More...
 
tsi_mutual_pre_current_t preCurrent
 Vref generator current. More...
 
tsi_mutual_pre_resistor_t preResistor
 Vref generator resistor. More...
 
tsi_mutual_sense_resistor_t senseResistor
 I-sense generator resistor. More...
 
tsi_mutual_sense_boost_current_t boostCurrent
 Sensitivity boost current setting. More...
 
tsi_mutual_tx_drive_mode_t txDriveMode
 TX drive mode control setting. More...
 
tsi_mutual_pmos_current_left_t pmosLeftCurrent
 Pmos current mirror on the left side. More...
 
tsi_mutual_pmos_current_right_t pmosRightCurrent
 Pmos current mirror on the right side. More...
 
bool enableNmosMirror
 Enable Nmos current mirror setting or not. More...
 
tsi_mutual_nmos_current_t nmosCurrent
 Nmos current mirror setting. More...
 

Field Documentation

tsi_common_config_t tsi_mutualCap_config_t::commonConfig
tsi_mutual_pre_current_t tsi_mutualCap_config_t::preCurrent
tsi_mutual_pre_resistor_t tsi_mutualCap_config_t::preResistor
tsi_mutual_sense_resistor_t tsi_mutualCap_config_t::senseResistor
tsi_mutual_sense_boost_current_t tsi_mutualCap_config_t::boostCurrent
tsi_mutual_tx_drive_mode_t tsi_mutualCap_config_t::txDriveMode
tsi_mutual_pmos_current_left_t tsi_mutualCap_config_t::pmosLeftCurrent
tsi_mutual_pmos_current_right_t tsi_mutualCap_config_t::pmosRightCurrent
bool tsi_mutualCap_config_t::enableNmosMirror
tsi_mutual_nmos_current_t tsi_mutualCap_config_t::nmosCurrent

Macro Definition Documentation

#define FSL_TSI_DRIVER_VERSION   (MAKE_VERSION(2, 1, 0))

Version 2.1.0

Enumeration Type Documentation

These constants set the tsi main clock.

Enumerator
kTSI_MainClockSlection_0 

Set TSI main clock frequency to 20.72MHz.

kTSI_MainClockSlection_1 

Set TSI main clock frequency to 16.65MHz.

kTSI_MainClockSlection_2 

Set TSI main clock frequency to 13.87MHz.

kTSI_MainClockSlection_3 

Set TSI main clock frequency to 11.91MHz.

These constants set the tsi sensing mode.

Enumerator
kTSI_SensingModeSlection_Self 

Set TSI sensing mode to self-cap mode.

kTSI_SensingModeSlection_Mutual 

Set TSI sensing mode to mutual-cap mode.

These bits indicate the comparator vp, vm and dvolt voltage.

Enumerator
kTSI_DvoltOption_0 

DVOLT value option 0, the value may differ on different platforms.

kTSI_DvoltOption_1 

DVOLT value option 1, the value may differ on different platforms.

kTSI_DvoltOption_2 

DVOLT value option 2, the value may differ on different platforms.

kTSI_DvoltOption_3 

DVOLT value option 3, the value may differ on different platforms.

These constants define the tsi sensitivity ajustment in self-cap mode, when TSI_MODE[S_SEN] = 1.

Enumerator
kTSI_SensitivityXdnOption_0 

Adjust sensitivity in self-cap mode, 1/16.

kTSI_SensitivityXdnOption_1 

Adjust sensitivity in self-cap mode, 1/8.

kTSI_SensitivityXdnOption_2 

Adjust sensitivity in self-cap mode, 1/4.

kTSI_SensitivityXdnOption_3 

Adjust sensitivity in self-cap mode, 1/2.

kTSI_SensitivityXdnOption_4 

Adjust sensitivity in self-cap mode, 1/1.

kTSI_SensitivityXdnOption_5 

Adjust sensitivity in self-cap mode, 2/1.

kTSI_SensitivityXdnOption_6 

Adjust sensitivity in self-cap mode, 4/1.

kTSI_SensitivityXdnOption_7 

Adjust sensitivity in self-cap mode, 8/1.

These constants define the tsi sensitivity ajustment in self-cap mode, when TSI_MODE[S_SEN] = 1.

Enumerator
kTSI_SensitivityCtrimOption_0 

Adjust sensitivity in self-cap mode, 2.5p.

kTSI_SensitivityCtrimOption_1 

Adjust sensitivity in self-cap mode, 5.0p.

kTSI_SensitivityCtrimOption_2 

Adjust sensitivity in self-cap mode, 7.5p.

kTSI_SensitivityCtrimOption_3 

Adjust sensitivity in self-cap mode, 10.0p.

kTSI_SensitivityCtrimOption_4 

Adjust sensitivity in self-cap mode, 12.5p.

kTSI_SensitivityCtrimOption_5 

Adjust sensitivity in self-cap mode, 15.0p.

kTSI_SensitivityCtrimOption_6 

Adjust sensitivity in self-cap mode, 17.5p.

kTSI_SensitivityCtrimOption_7 

Adjust sensitivity in self-cap mode, 20.0p.

These constants set the tsi input current multiple in self-cap mode.

Enumerator
kTSI_CurrentMultipleInputValue_0 

Adjust input current multiple in self-cap mode, 1/8.

kTSI_CurrentMultipleInputValue_1 

Adjust input current multiple in self-cap mode, 1/4.

These constants set the tsi charge/discharge current multiple in self-cap mode.

Enumerator
kTSI_CurrentMultipleChargeValue_0 

Adjust charge/discharge current multiple in self-cap mode, 1/16.

kTSI_CurrentMultipleChargeValue_1 

Adjust charge/discharge current multiple in self-cap mode, 1/8.

kTSI_CurrentMultipleChargeValue_2 

Adjust charge/discharge current multiple in self-cap mode, 1/4.

kTSI_CurrentMultipleChargeValue_3 

Adjust charge/discharge current multiple in self-cap mode, 1/2.

kTSI_CurrentMultipleChargeValue_4 

Adjust charge/discharge current multiple in self-cap mode, 1/1.

kTSI_CurrentMultipleChargeValue_5 

Adjust charge/discharge current multiple in self-cap mode, 2/1.

kTSI_CurrentMultipleChargeValue_6 

Adjust charge/discharge current multiple in self-cap mode, 4/1.

kTSI_CurrentMultipleChargeValue_7 

Adjust charge/discharge current multiple in self-cap mode, 8/1.

These constants Choose the current used in vref generator.

Enumerator
kTSI_MutualPreCurrent_1uA 

Vref generator current is 1uA, used in mutual-cap mode.

kTSI_MutualPreCurrent_2uA 

Vref generator current is 2uA, used in mutual-cap mode.

kTSI_MutualPreCurrent_3uA 

Vref generator current is 3uA, used in mutual-cap mode.

kTSI_MutualPreCurrent_4uA 

Vref generator current is 4uA, used in mutual-cap mode.

kTSI_MutualPreCurrent_5uA 

Vref generator current is 5uA, used in mutual-cap mode.

kTSI_MutualPreCurrent_6uA 

Vref generator current is 6uA, used in mutual-cap mode.

kTSI_MutualPreCurrent_7uA 

Vref generator current is 7uA, used in mutual-cap mode.

kTSI_MutualPreCurrent_8uA 

Vref generator current is 8uA, used in mutual-cap mode.

These constants Choose the resistor used in pre-charge.

Enumerator
kTSI_MutualPreResistor_1k 

Vref generator resistor is 1k, used in mutual-cap mode.

kTSI_MutualPreResistor_2k 

Vref generator resistor is 2k, used in mutual-cap mode.

kTSI_MutualPreResistor_3k 

Vref generator resistor is 3k, used in mutual-cap mode.

kTSI_MutualPreResistor_4k 

Vref generator resistor is 4k, used in mutual-cap mode.

kTSI_MutualPreResistor_5k 

Vref generator resistor is 5k, used in mutual-cap mode.

kTSI_MutualPreResistor_6k 

Vref generator resistor is 6k, used in mutual-cap mode.

kTSI_MutualPreResistor_7k 

Vref generator resistor is 7k, used in mutual-cap mode.

kTSI_MutualPreResistor_8k 

Vref generator resistor is 8k, used in mutual-cap mode.

These constants Choose the resistor used in I-sense generator.

Enumerator
kTSI_MutualSenseResistor_2k5 

I-sense resistor is 2.5k , used in mutual-cap mode.

kTSI_MutualSenseResistor_5k 

I-sense resistor is 5.0k , used in mutual-cap mode.

kTSI_MutualSenseResistor_7k5 

I-sense resistor is 7.5k , used in mutual-cap mode.

kTSI_MutualSenseResistor_10k 

I-sense resistor is 10.0k, used in mutual-cap mode.

kTSI_MutualSenseResistor_12k5 

I-sense resistor is 12.5k, used in mutual-cap mode.

kTSI_MutualSenseResistor_15k 

I-sense resistor is 15.0k, used in mutual-cap mode.

kTSI_MutualSenseResistor_17k5 

I-sense resistor is 17.5k, used in mutual-cap mode.

kTSI_MutualSenseResistor_20k 

I-sense resistor is 20.0k, used in mutual-cap mode.

kTSI_MutualSenseResistor_22k5 

I-sense resistor is 22.5k, used in mutual-cap mode.

kTSI_MutualSenseResistor_25k 

I-sense resistor is 25.0k, used in mutual-cap mode.

kTSI_MutualSenseResistor_27k5 

I-sense resistor is 27.5k, used in mutual-cap mode.

kTSI_MutualSenseResistor_30k 

I-sense resistor is 30.0k, used in mutual-cap mode.

kTSI_MutualSenseResistor_32k5 

I-sense resistor is 32.5k, used in mutual-cap mode.

kTSI_MutualSenseResistor_35k 

I-sense resistor is 35.0k, used in mutual-cap mode.

kTSI_MutualSenseResistor_37k5 

I-sense resistor is 37.5k, used in mutual-cap mode.

kTSI_MutualSenseResistor_40k 

I-sense resistor is 40.0k, used in mutual-cap mode.

These constants Choose the TX channel used in mutual-cap mode.

Enumerator
kTSI_MutualTxChannel_0 

Select channel 0 as tx0, used in mutual-cap mode.

kTSI_MutualTxChannel_1 

Select channel 1 as tx1, used in mutual-cap mode.

kTSI_MutualTxChannel_2 

Select channel 2 as tx2, used in mutual-cap mode.

kTSI_MutualTxChannel_3 

Select channel 3 as tx3, used in mutual-cap mode.

kTSI_MutualTxChannel_4 

Select channel 4 as tx4, used in mutual-cap mode.

kTSI_MutualTxChannel_5 

Select channel 5 as tx5, used in mutual-cap mode.

These constants Choose the RX channel used in mutual-cap mode.

Enumerator
kTSI_MutualRxChannel_6 

Select channel 6 as rx6, used in mutual-cap mode.

kTSI_MutualRxChannel_7 

Select channel 7 as rx7, used in mutual-cap mode.

kTSI_MutualRxChannel_8 

Select channel 8 as rx8, used in mutual-cap mode.

kTSI_MutualRxChannel_9 

Select channel 9 as rx9, used in mutual-cap mode.

kTSI_MutualRxChannel_10 

Select channel 10 as rx10, used in mutual-cap mode.

kTSI_MutualRxChannel_11 

Select channel 11 as rx11, used in mutual-cap mode.

These constants set the sensitivity boost current.

Enumerator
kTSI_MutualSenseBoostCurrent_0uA 

Sensitivity boost current is 0uA , used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_2uA 

Sensitivity boost current is 2uA , used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_4uA 

Sensitivity boost current is 4uA , used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_6uA 

Sensitivity boost current is 6uA , used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_8uA 

Sensitivity boost current is 8uA , used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_10uA 

Sensitivity boost current is 10uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_12uA 

Sensitivity boost current is 12uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_14uA 

Sensitivity boost current is 14uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_16uA 

Sensitivity boost current is 16uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_18uA 

Sensitivity boost current is 18uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_20uA 

Sensitivity boost current is 20uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_22uA 

Sensitivity boost current is 22uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_24uA 

Sensitivity boost current is 24uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_26uA 

Sensitivity boost current is 26uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_28uA 

Sensitivity boost current is 28uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_30uA 

Sensitivity boost current is 30uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_32uA 

Sensitivity boost current is 32uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_34uA 

Sensitivity boost current is 34uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_36uA 

Sensitivity boost current is 36uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_38uA 

Sensitivity boost current is 38uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_40uA 

Sensitivity boost current is 40uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_42uA 

Sensitivity boost current is 42uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_44uA 

Sensitivity boost current is 44uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_46uA 

Sensitivity boost current is 46uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_48uA 

Sensitivity boost current is 48uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_50uA 

Sensitivity boost current is 50uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_52uA 

Sensitivity boost current is 52uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_54uA 

Sensitivity boost current is 54uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_56uA 

Sensitivity boost current is 56uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_58uA 

Sensitivity boost current is 58uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_60uA 

Sensitivity boost current is 60uA, used in mutual-cap mode.

kTSI_MutualSenseBoostCurrent_62uA 

Sensitivity boost current is 62uA, used in mutual-cap mode.

These constants Choose the TX drive mode control setting.

Enumerator
kTSI_MutualTxDriveModeOption_0 

TX drive mode is -5v ~ +5v, used in mutual-cap mode.

kTSI_MutualTxDriveModeOption_1 

TX drive mode is 0v ~ +5v, used in mutual-cap mode.

These constants set the Pmos current mirror on the left side used in mutual-cap mode.

Enumerator
kTSI_MutualPmosCurrentMirrorLeft_4 

Set Pmos current mirror left value as 4, used in mutual-cap mode.

kTSI_MutualPmosCurrentMirrorLeft_8 

Set Pmos current mirror left value as 8, used in mutual-cap mode.

kTSI_MutualPmosCurrentMirrorLeft_12 

Set Pmos current mirror left value as 12, used in mutual-cap mode.

kTSI_MutualPmosCurrentMirrorLeft_16 

Set Pmos current mirror left value as 16, used in mutual-cap mode.

kTSI_MutualPmosCurrentMirrorLeft_20 

Set Pmos current mirror left value as 20, used in mutual-cap mode.

kTSI_MutualPmosCurrentMirrorLeft_24 

Set Pmos current mirror left value as 24, used in mutual-cap mode.

kTSI_MutualPmosCurrentMirrorLeft_28 

Set Pmos current mirror left value as 28, used in mutual-cap mode.

kTSI_MutualPmosCurrentMirrorLeft_32 

Set Pmos current mirror left value as 32, used in mutual-cap mode.

These constants set the Pmos current mirror on the right side used in mutual-cap mode.

Enumerator
kTSI_MutualPmosCurrentMirrorRight_1 

Set Pmos current mirror right value as 1, used in mutual-cap mode.

kTSI_MutualPmosCurrentMirrorRight_2 

Set Pmos current mirror right value as 2, used in mutual-cap mode.

kTSI_MutualPmosCurrentMirrorRight_3 

Set Pmos current mirror right value as 3, used in mutual-cap mode.

kTSI_MutualPmosCurrentMirrorRight_4 

Set Pmos current mirror right value as 4, used in mutual-cap mode.

These constants set the Nmos current mirror used in mutual-cap mode.

Enumerator
kTSI_MutualNmosCurrentMirror_1 

Set Nmos current mirror value as 1, used in mutual-cap mode.

kTSI_MutualNmosCurrentMirror_2 

Set Nmos current mirror value as 2, used in mutual-cap mode.

kTSI_MutualNmosCurrentMirror_3 

Set Nmos current mirror value as 3, used in mutual-cap mode.

kTSI_MutualNmosCurrentMirror_4 

Set Nmos current mirror value as 4, used in mutual-cap mode.

These bits set the SINC cutoff divider.

Enumerator
kTSI_SincCutoffDiv_0 

Set SINC cutoff divider as 0.

kTSI_SincCutoffDiv_2 

Set SINC cutoff divider as 2.

kTSI_SincCutoffDiv_4 

Set SINC cutoff divider as 4.

kTSI_SincCutoffDiv_8 

Set SINC cutoff divider as 8.

kTSI_SincCutoffDiv_16 

Set SINC cutoff divider as 16.

kTSI_SincCutoffDiv_32 

Set SINC cutoff divider as 32.

kTSI_SincCutoffDiv_64 

Set SINC cutoff divider as 64.

kTSI_SincCutoffDiv_128 

Set SINC cutoff divider as 128.

These bits set the SINC filter order.

Enumerator
kTSI_SincFilterOrder_1 

Use 1 order SINC filter.

kTSI_SincFilterOrder_2 

Use 1 order SINC filter.

These bits set the SINC decimation value.

Enumerator
kTSI_SincDecimationValue_1 

The TSI_DATA[TSICH] bits is the counter value of 1 triger period.

kTSI_SincDecimationValue_2 

The TSI_DATA[TSICH] bits is the counter value of 2 triger period.

kTSI_SincDecimationValue_3 

The TSI_DATA[TSICH] bits is the counter value of 3 triger period.

kTSI_SincDecimationValue_4 

The TSI_DATA[TSICH] bits is the counter value of 4 triger period.

kTSI_SincDecimationValue_5 

The TSI_DATA[TSICH] bits is the counter value of 5 triger period.

kTSI_SincDecimationValue_6 

The TSI_DATA[TSICH] bits is the counter value of 6 triger period.

kTSI_SincDecimationValue_7 

The TSI_DATA[TSICH] bits is the counter value of 7 triger period.

kTSI_SincDecimationValue_8 

The TSI_DATA[TSICH] bits is the counter value of 8 triger period.

kTSI_SincDecimationValue_9 

The TSI_DATA[TSICH] bits is the counter value of 9 triger period.

kTSI_SincDecimationValue_10 

The TSI_DATA[TSICH] bits is the counter value of 10 triger period.

kTSI_SincDecimationValue_11 

The TSI_DATA[TSICH] bits is the counter value of 11 triger period.

kTSI_SincDecimationValue_12 

The TSI_DATA[TSICH] bits is the counter value of 12 triger period.

kTSI_SincDecimationValue_13 

The TSI_DATA[TSICH] bits is the counter value of 13 triger period.

kTSI_SincDecimationValue_14 

The TSI_DATA[TSICH] bits is the counter value of 14 triger period.

kTSI_SincDecimationValue_15 

The TSI_DATA[TSICH] bits is the counter value of 15 triger period.

kTSI_SincDecimationValue_16 

The TSI_DATA[TSICH] bits is the counter value of 16 triger period.

kTSI_SincDecimationValue_17 

The TSI_DATA[TSICH] bits is the counter value of 17 triger period.

kTSI_SincDecimationValue_18 

The TSI_DATA[TSICH] bits is the counter value of 18 triger period.

kTSI_SincDecimationValue_19 

The TSI_DATA[TSICH] bits is the counter value of 19 triger period.

kTSI_SincDecimationValue_20 

The TSI_DATA[TSICH] bits is the counter value of 20 triger period.

kTSI_SincDecimationValue_21 

The TSI_DATA[TSICH] bits is the counter value of 21 triger period.

kTSI_SincDecimationValue_22 

The TSI_DATA[TSICH] bits is the counter value of 22 triger period.

kTSI_SincDecimationValue_23 

The TSI_DATA[TSICH] bits is the counter value of 23 triger period.

kTSI_SincDecimationValue_24 

The TSI_DATA[TSICH] bits is the counter value of 24 triger period.

kTSI_SincDecimationValue_25 

The TSI_DATA[TSICH] bits is the counter value of 25 triger period.

kTSI_SincDecimationValue_26 

The TSI_DATA[TSICH] bits is the counter value of 26 triger period.

kTSI_SincDecimationValue_27 

The TSI_DATA[TSICH] bits is the counter value of 27 triger period.

kTSI_SincDecimationValue_28 

The TSI_DATA[TSICH] bits is the counter value of 28 triger period.

kTSI_SincDecimationValue_29 

The TSI_DATA[TSICH] bits is the counter value of 29 triger period.

kTSI_SincDecimationValue_30 

The TSI_DATA[TSICH] bits is the counter value of 30 triger period.

kTSI_SincDecimationValue_31 

The TSI_DATA[TSICH] bits is the counter value of 31 triger period.

kTSI_SincDecimationValue_32 

The TSI_DATA[TSICH] bits is the counter value of 32 triger period.

These bits set the SSC output bit0's period setting.

Enumerator
kTSI_SscChargeNumValue_1 

The SSC output bit 0's period will be 1 clock cycle of system clock.

kTSI_SscChargeNumValue_2 

The SSC output bit 0's period will be 2 clock cycle of system clock.

kTSI_SscChargeNumValue_3 

The SSC output bit 0's period will be 3 clock cycle of system clock.

kTSI_SscChargeNumValue_4 

The SSC output bit 0's period will be 4 clock cycle of system clock.

kTSI_SscChargeNumValue_5 

The SSC output bit 0's period will be 5 clock cycle of system clock.

kTSI_SscChargeNumValue_6 

The SSC output bit 0's period will be 6 clock cycle of system clock.

kTSI_SscChargeNumValue_7 

The SSC output bit 0's period will be 7 clock cycle of system clock.

kTSI_SscChargeNumValue_8 

The SSC output bit 0's period will be 8 clock cycle of system clock.

kTSI_SscChargeNumValue_9 

The SSC output bit 0's period will be 9 clock cycle of system clock.

kTSI_SscChargeNumValue_10 

The SSC output bit 0's period will be 10 clock cycle of system clock.

kTSI_SscChargeNumValue_11 

The SSC output bit 0's period will be 11 clock cycle of system clock.

kTSI_SscChargeNumValue_12 

The SSC output bit 0's period will be 12 clock cycle of system clock.

kTSI_SscChargeNumValue_13 

The SSC output bit 0's period will be 13 clock cycle of system clock.

kTSI_SscChargeNumValue_14 

The SSC output bit 0's period will be 14 clock cycle of system clock.

kTSI_SscChargeNumValue_15 

The SSC output bit 0's period will be 15 clock cycle of system clock.

kTSI_SscChargeNumValue_16 

The SSC output bit 0's period will be 16 clock cycle of system clock.

These bits set the SSC output bit1's period setting.

Enumerator
kTSI_SscNoChargeNumValue_1 

The SSC output bit 1's basic period will be 1 clock cycle of system clock.

kTSI_SscNoChargeNumValue_2 

The SSC output bit 1's basic period will be 2 clock cycle of system clock.

kTSI_SscNoChargeNumValue_3 

The SSC output bit 1's basic period will be 3 clock cycle of system clock.

kTSI_SscNoChargeNumValue_4 

The SSC output bit 1's basic period will be 4 clock cycle of system clock.

kTSI_SscNoChargeNumValue_5 

The SSC output bit 1's basic period will be 5 clock cycle of system clock.

kTSI_SscNoChargeNumValue_6 

The SSC output bit 1's basic period will be 6 clock cycle of system clock.

kTSI_SscNoChargeNumValue_7 

The SSC output bit 1's basic period will be 7 clock cycle of system clock.

kTSI_SscNoChargeNumValue_8 

The SSC output bit 1's basic period will be 8 clock cycle of system clock.

kTSI_SscNoChargeNumValue_9 

The SSC output bit 1's basic period will be 9 clock cycle of system clock.

kTSI_SscNoChargeNumValue_10 

The SSC output bit 1's basic period will be 10 clock cycle of system clock.

kTSI_SscNoChargeNumValue_11 

The SSC output bit 1's basic period will be 11 clock cycle of system clock.

kTSI_SscNoChargeNumValue_12 

The SSC output bit 1's basic period will be 12 clock cycle of system clock.

kTSI_SscNoChargeNumValue_13 

The SSC output bit 1's basic period will be 13 clock cycle of system clock.

kTSI_SscNoChargeNumValue_14 

The SSC output bit 1's basic period will be 14 clock cycle of system clock.

kTSI_SscNoChargeNumValue_15 

The SSC output bit 1's basic period will be 15 clock cycle of system clock.

kTSI_SscNoChargeNumValue_16 

The SSC output bit 1's basic period will be 16 clock cycle of system clock.

These bits set the SSC PRBS length.

Enumerator
kTSI_SscPrbsOutsel_2 

The length of the PRBS is 2.

kTSI_SscPrbsOutsel_3 

The length of the PRBS is 3.

kTSI_SscPrbsOutsel_4 

The length of the PRBS is 4.

kTSI_SscPrbsOutsel_5 

The length of the PRBS is 5.

kTSI_SscPrbsOutsel_6 

The length of the PRBS is 6.

kTSI_SscPrbsOutsel_7 

The length of the PRBS is 7.

kTSI_SscPrbsOutsel_8 

The length of the PRBS is 8.

kTSI_SscPrbsOutsel_9 

The length of the PRBS is 9.

kTSI_SscPrbsOutsel_10 

The length of the PRBS is 10.

kTSI_SscPrbsOutsel_11 

The length of the PRBS is 11.

kTSI_SscPrbsOutsel_12 

The length of the PRBS is 12.

kTSI_SscPrbsOutsel_13 

The length of the PRBS is 13.

kTSI_SscPrbsOutsel_14 

The length of the PRBS is 14.

kTSI_SscPrbsOutsel_15 

The length of the PRBS is 15.

Enumerator
kTSI_EndOfScanFlag 

End-Of-Scan flag.

kTSI_OutOfRangeFlag 

Out-Of-Range flag.

Enumerator
kTSI_GlobalInterruptEnable 

TSI module global interruptt.

kTSI_OutOfRangeInterruptEnable 

Out-Of-Range interrupt.

kTSI_EndOfScanInterruptEnable 

End-Of-Scan interrupt.

These constants set the SSC mode.

Enumerator
kTSI_ssc_prbs_method 

Using PRBS method generating SSC output bit.

kTSI_ssc_up_down_counter 

Using up-down counter generating SSC output bit.

kTSI_ssc_dissable 

SSC function is disabled.

These constants set select the divider ratio for the clock used for generating the SSC output bit.

Enumerator
kTSI_ssc_div_by_1 

Set SSC divider to 00000000 div1(2^0)

kTSI_ssc_div_by_2 

Set SSC divider to 00000001 div2(2^1)

kTSI_ssc_div_by_4 

Set SSC divider to 00000011 div4(2^2)

kTSI_ssc_div_by_8 

Set SSC divider to 00000111 div8(2^3)

kTSI_ssc_div_by_16 

Set SSC divider to 00001111 div16(2^4)

kTSI_ssc_div_by_32 

Set SSC divider to 00011111 div32(2^5)

kTSI_ssc_div_by_64 

Set SSC divider to 00111111 div64(2^6)

kTSI_ssc_div_by_128 

Set SSC divider to 01111111 div128(2^7)

kTSI_ssc_div_by_256 

Set SSC divider to 11111111 div256(2^8)

Function Documentation

void TSI_InitSelfCapMode ( TSI_Type *  base,
const tsi_selfCap_config_t config 
)

Initialize the peripheral to the targeted state specified by parameter config, such as sets sensitivity adjustment, current settings.

Parameters
baseTSI peripheral base address.
configPointer to TSI self-cap configuration structure.
Returns
none
void TSI_InitMutualCapMode ( TSI_Type *  base,
const tsi_mutualCap_config_t config 
)

Initialize the peripheral to the targeted state specified by parameter config, such as sets Vref generator setting, sensitivity boost settings, Pmos/Nmos settings.

Parameters
baseTSI peripheral base address.
configPointer to TSI mutual-cap configuration structure.
Returns
none
void TSI_Deinit ( TSI_Type *  base)

De-initialize the peripheral to default state.

Parameters
baseTSI peripheral base address.
Returns
none
void TSI_GetSelfCapModeDefaultConfig ( tsi_selfCap_config_t userConfig)

This interface sets userConfig structure to a default value. The configuration structure only includes the settings for the whole TSI. The user configure is set to a value:

userConfig->commonConfig.mainClock = kTSI_MainClockSlection_0;
userConfig->commonConfig.mode = kTSI_SensingModeSlection_Self;
userConfig->commonConfig.dvolt = kTSI_DvoltOption_2;
userConfig->commonConfig.cutoff = kTSI_SincCutoffDiv_0;
userConfig->commonConfig.order = kTSI_SincFilterOrder_1;
userConfig->commonConfig.decimation = kTSI_SincDecimationValue_8;
userConfig->commonConfig.chargeNum = kTSI_SscChargeNumValue_3;
userConfig->commonConfig.prbsOutsel = kTSI_SscPrbsOutsel_2;
userConfig->commonConfig.noChargeNum = kTSI_SscNoChargeNumValue_2;
userConfig->commonConfig.ssc_mode = kTSI_ssc_prbs_method;
userConfig->commonConfig.ssc_prescaler = kTSI_ssc_div_by_1;
userConfig->enableSensitivity = true;
userConfig->enableShield = false;
userConfig->xdn = kTSI_SensitivityXdnOption_1;
userConfig->ctrim = kTSI_SensitivityCtrimOption_7;
userConfig->inputCurrent = kTSI_CurrentMultipleInputValue_0;
userConfig->chargeCurrent = kTSI_CurrentMultipleChargeValue_1;
Parameters
userConfigPointer to TSI user configure structure.
void TSI_GetMutualCapModeDefaultConfig ( tsi_mutualCap_config_t userConfig)

This interface sets userConfig structure to a default value. The configuration structure only includes the settings for the whole TSI. The user configure is set to a value:

userConfig->commonConfig.mainClock = kTSI_MainClockSlection_1;
userConfig->commonConfig.mode = kTSI_SensingModeSlection_Mutual;
userConfig->commonConfig.dvolt = kTSI_DvoltOption_0;
userConfig->commonConfig.cutoff = kTSI_SincCutoffDiv_0;
userConfig->commonConfig.order = kTSI_SincFilterOrder_1;
userConfig->commonConfig.decimation = kTSI_SincDecimationValue_8;
userConfig->commonConfig.chargeNum = kTSI_SscChargeNumValue_4;
userConfig->commonConfig.prbsOutsel = kTSI_SscPrbsOutsel_2;
userConfig->commonConfig.noChargeNum = kTSI_SscNoChargeNumValue_5;
userConfig->commonConfig.ssc_mode = kTSI_ssc_prbs_method;
userConfig->commonConfig.ssc_prescaler = kTSI_ssc_div_by_1;
userConfig->preCurrent = kTSI_MutualPreCurrent_4uA;
userConfig->preResistor = kTSI_MutualPreResistor_4k;
userConfig->senseResistor = kTSI_MutualSenseResistor_10k;
userConfig->boostCurrent = kTSI_MutualSenseBoostCurrent_0uA;
userConfig->txDriveMode = kTSI_MutualTxDriveModeOption_0;
userConfig->pmosLeftCurrent = kTSI_MutualPmosCurrentMirrorLeft_32;
userConfig->pmosRightCurrent = kTSI_MutualPmosCurrentMirrorRight_1;
userConfig->enableNmosMirror = true;
userConfig->nmosCurrent = kTSI_MutualNmosCurrentMirror_1;
Parameters
userConfigPointer to TSI user configure structure.
void TSI_SelfCapCalibrate ( TSI_Type *  base,
tsi_calibration_data_t calBuff 
)

Calibrate the peripheral to fetch the initial counter value of the enabled channels. This API is mostly used at initial application setup, it shall be called after the TSI_Init API, then user can use the calibrated counter values to setup applications(such as to determine under which counter value we can confirm a touch event occurrs).

Parameters
baseTSI peripheral base address.
calBuffData buffer that store the calibrated counter value.
Returns
none
Note
This API is mainly used for self-cap mode;
The calibration work in mutual-cap mode shall be done in applications due to different board layout.
void TSI_EnableInterrupts ( TSI_Type *  base,
uint32_t  mask 
)
Parameters
baseTSI peripheral base address.
maskinterrupt source The parameter can be combination of the following source if defined:
  • kTSI_GlobalInterruptEnable
  • kTSI_EndOfScanInterruptEnable
  • kTSI_OutOfRangeInterruptEnable
void TSI_DisableInterrupts ( TSI_Type *  base,
uint32_t  mask 
)
Parameters
baseTSI peripheral base address.
maskinterrupt source The parameter can be combination of the following source if defined:
  • kTSI_GlobalInterruptEnable
  • kTSI_EndOfScanInterruptEnable
  • kTSI_OutOfRangeInterruptEnable
static uint32_t TSI_GetStatusFlags ( TSI_Type *  base)
inlinestatic

This function get tsi interrupt flags.

Parameters
baseTSI peripheral base address.
Returns
The mask of these status flags combination.
void TSI_ClearStatusFlags ( TSI_Type *  base,
uint32_t  mask 
)

This function clear tsi interrupt flag, automatically cleared flags can not be cleared by this function.

Parameters
baseTSI peripheral base address.
maskThe status flags to clear.
static uint32_t TSI_GetScanTriggerMode ( TSI_Type *  base)
inlinestatic
Parameters
baseTSI peripheral base address.
Returns
Scan trigger mode.
static bool TSI_IsScanInProgress ( TSI_Type *  base)
inlinestatic
Parameters
baseTSI peripheral base address.
Returns
True - scan is in progress. False - scan is not in progress.
static void TSI_EnableModule ( TSI_Type *  base,
bool  enable 
)
inlinestatic
Parameters
baseTSI peripheral base address.
enableChoose whether to enable or disable module;
  • true Enable TSI module;
  • false Disable TSI module;
Returns
none.
static void TSI_EnableLowPower ( TSI_Type *  base,
bool  enable 
)
inlinestatic
   This enables TSI module function in low power modes.
Parameters
baseTSI peripheral base address.
enableChoose to enable or disable STOP mode.
  • true Enable module in STOP mode;
  • false Disable module in STOP mode;
Returns
none.
static void TSI_EnableHardwareTriggerScan ( TSI_Type *  base,
bool  enable 
)
inlinestatic
Parameters
baseTSI peripheral base address.
enableChoose to enable hardware trigger or software trigger scan.
  • true Enable hardware trigger scan;
  • false Enable software trigger scan;
Returns
none.
static void TSI_StartSoftwareTrigger ( TSI_Type *  base)
inlinestatic
Parameters
baseTSI peripheral base address.
Returns
none.
static void TSI_SetSelfCapMeasuredChannel ( TSI_Type *  base,
uint8_t  channel 
)
inlinestatic
Parameters
baseTSI peripheral base address.
channelChannel number 0 ... 24.
Returns
none.
Note
This API can only be used in self-cap mode!
static uint8_t TSI_GetSelfCapMeasuredChannel ( TSI_Type *  base)
inlinestatic
Parameters
baseTSI peripheral base address.
Returns
uint8_t Channel number 0 ... 24.
Note
This API can only be used in self-cap mode!
static void TSI_EnableDmaTransfer ( TSI_Type *  base,
bool  enable 
)
inlinestatic
Parameters
baseTSI peripheral base address.
enableChoose to enable DMA transfer or not.
  • true Enable DMA transfer;
  • false Disable DMA transfer;
Returns
none.
static void TSI_EnableEndOfScanDmaTransferOnly ( TSI_Type *  base,
bool  enable 
)
inlinestatic
Parameters
baseTSI peripheral base address.
enableChoose whether to enable End of Scan DMA transfer request only.
  • true Enable End of Scan DMA transfer request only;
  • false Both End-of-Scan and Out-of-Range can generate DMA transfer request.
Returns
none.
static uint16_t TSI_GetCounter ( TSI_Type *  base)
inlinestatic
Parameters
baseTSI peripheral base address.
Returns
Accumulated scan counter value ticked by the reference clock.
static void TSI_SetLowThreshold ( TSI_Type *  base,
uint16_t  low_threshold 
)
inlinestatic
Parameters
baseTSI peripheral base address.
low_thresholdLow counter threshold.
Returns
none.
static void TSI_SetHighThreshold ( TSI_Type *  base,
uint16_t  high_threshold 
)
inlinestatic
Parameters
baseTSI peripheral base address.
high_thresholdHigh counter threshold.
Returns
none.
static void TSI_SetMainClock ( TSI_Type *  base,
tsi_main_clock_selection_t  mainClock 
)
inlinestatic
Parameters
baseTSI peripheral base address.
mainClockclock option value.
Returns
none.
static void TSI_SetSensingMode ( TSI_Type *  base,
tsi_sensing_mode_selection_t  mode 
)
inlinestatic
Parameters
baseTSI peripheral base address.
modeMode value.
Returns
none.
static tsi_sensing_mode_selection_t TSI_GetSensingMode ( TSI_Type *  base)
inlinestatic
Parameters
baseTSI peripheral base address.
modeMode value.
Returns
Currently selected sensing mode.
static void TSI_SetDvolt ( TSI_Type *  base,
tsi_dvolt_option_t  dvolt 
)
inlinestatic
Parameters
baseTSI peripheral base address.
dvoltThe voltage rails.
Returns
none.
static void TSI_EnableNoiseCancellation ( TSI_Type *  base,
bool  enableCancellation 
)
inlinestatic
Parameters
baseTSI peripheral base address.
enableCancellationChoose whether to enable noise cancellation in self-cap mode
  • true Enable noise cancellation;
  • false Disable noise cancellation;
Returns
none.
static void TSI_SetMutualCapTxChannel ( TSI_Type *  base,
tsi_mutual_tx_channel_t  txChannel 
)
inlinestatic
Parameters
baseTSI peripheral base address.
txChannelMutual-cap mode TX channel number
Returns
none.
static tsi_mutual_tx_channel_t TSI_GetTxMutualCapMeasuredChannel ( TSI_Type *  base)
inlinestatic
Parameters
baseTSI peripheral base address;
Returns
Tx Channel number 0 ... 5;
Note
This API can only be used in mutual-cap mode!
static void TSI_SetMutualCapRxChannel ( TSI_Type *  base,
tsi_mutual_rx_channel_t  rxChannel 
)
inlinestatic
Parameters
baseTSI peripheral base address.
rxChannelMutual-cap mode RX channel number
Returns
none.
static tsi_mutual_rx_channel_t TSI_GetRxMutualCapMeasuredChannel ( TSI_Type *  base)
inlinestatic
Parameters
baseTSI peripheral base address;
Returns
Rx Channel number 6 ... 11;
Note
This API can only be used in mutual-cap mode!
static void TSI_SetSscMode ( TSI_Type *  base,
tsi_ssc_mode_t  mode 
)
inlinestatic
Parameters
baseTSI peripheral base address.
modeSSC mode option value.
Returns
none.
static void TSI_SetSscPrescaler ( TSI_Type *  base,
tsi_ssc_prescaler_t  prescaler 
)
inlinestatic
Parameters
baseTSI peripheral base address.
prescalerSSC prescaler option value.
Returns
none.