CSEN - Capacitive Sense#

Capacitive Sense (CSEN) Peripheral API.

Provides functions to control the capacitive sense peripheral of Silicon Labs' 32-bit MCUs and SoCs. The CSEN includes a capacitance-to-digital circuit that measures capacitance on selected inputs. Measurements are performed using either a Successive Approximation Register (SAR) or a Delta Modulator (DM) analog to digital converter.

The CSEN can be configured to measure capacitance on a single port pin or to automatically measure multiple port pins in succession using scan mode. Also, several port pins can be shorted together to measure the combined capacitance.

The CSEN includes an accumulator, which can be configured to average multiple conversions on the selected input. Additionally, an Exponential Moving Average (EMA) calculator is included to provide data smoothing. A comparator is also included and can be used to terminate a continuous conversion when the configured threshold condition is met.

The following example shows how to initialize and start a single conversion on one input:

/* CSEN is a HFPERCLK peripheral. */
CMU_ClockEnable(cmuClock_HFPER, true);
CMU_ClockEnable(cmuClock_CSEN_HF, true);

/* Initialize with default settings. */
CSEN_Init_TypeDef csenInit = CSEN_INIT_DEFAULT;
CSEN_Init(CSEN, &csenInit);

/* Select the input pin and initialize the conversion mode. */
CSEN_InitMode_TypeDef csenInitMode = CSEN_INITMODE_DEFAULT;
csenInitMode.singleSel = csenSingleSelAPORT1XCH0;
CSEN_InitMode(CSEN, &csenInitMode);

/* Enable CSEN and manually start the conversion. */
CSEN_Enable(CSEN);
CSEN_Start(CSEN);

Modules#

CSEN_Init_TypeDef

CSEN_InitMode_TypeDef

Enumerations#

enum
csenCmpModeDisabled = 0
csenCmpModeGreater = CSEN_CTRL_CMPEN | CSEN_CTRL_CMPPOL_GT
csenCmpModeLessOrEqual = CSEN_CTRL_CMPEN | CSEN_CTRL_CMPPOL_LTE
csenCmpModeEMAWindow = CSEN_CTRL_EMACMPEN
}

Comparator Mode.

enum
csenConvSelSAR = CSEN_CTRL_CONVSEL_SAR
csenConvSelSARChop = CSEN_CTRL_CONVSEL_SAR | CSEN_CTRL_CHOPEN_ENABLE
csenConvSelDM = CSEN_CTRL_CONVSEL_DM
csenConvSelDMChop = CSEN_CTRL_CONVSEL_DM | CSEN_CTRL_CHOPEN_ENABLE
}

Converter Select.

enum
csenSampleModeBonded = CSEN_CTRL_CM_SGL | CSEN_CTRL_MCEN_ENABLE
csenSampleModeSingle = CSEN_CTRL_CM_SGL
csenSampleModeScan = CSEN_CTRL_CM_SCAN
csenSampleModeContBonded = CSEN_CTRL_CM_CONTSGL | CSEN_CTRL_MCEN_ENABLE
csenSampleModeContSingle = CSEN_CTRL_CM_CONTSGL
csenSampleModeContScan = CSEN_CTRL_CM_CONTSCAN
}

Sample Mode.

enum
csenTrigSelPRS = _CSEN_CTRL_STM_PRS
csenTrigSelTimer = _CSEN_CTRL_STM_TIMER
csenTrigSelStart = _CSEN_CTRL_STM_START
}

Starts Trigger Select.

enum
csenAccMode1 = _CSEN_CTRL_ACU_ACC1
csenAccMode2 = _CSEN_CTRL_ACU_ACC2
csenAccMode4 = _CSEN_CTRL_ACU_ACC4
csenAccMode8 = _CSEN_CTRL_ACU_ACC8
csenAccMode16 = _CSEN_CTRL_ACU_ACC16
csenAccMode32 = _CSEN_CTRL_ACU_ACC32
csenAccMode64 = _CSEN_CTRL_ACU_ACC64
}

Accumulator Mode Select.

enum
csenSARRes10 = _CSEN_CTRL_SARCR_CLK10
csenSARRes12 = _CSEN_CTRL_SARCR_CLK12
csenSARRes14 = _CSEN_CTRL_SARCR_CLK14
csenSARRes16 = _CSEN_CTRL_SARCR_CLK16
}

Successive Approximation (SAR) Conversion Resolution.

enum
csenDMRes10 = _CSEN_DMCFG_CRMODE_DM10
csenDMRes12 = _CSEN_DMCFG_CRMODE_DM12
csenDMRes14 = _CSEN_DMCFG_CRMODE_DM14
csenDMRes16 = _CSEN_DMCFG_CRMODE_DM16
}

Delta Modulator (DM) Conversion Resolution.

enum
csenPCPrescaleDiv1 = _CSEN_TIMCTRL_PCPRESC_DIV1
csenPCPrescaleDiv2 = _CSEN_TIMCTRL_PCPRESC_DIV2
csenPCPrescaleDiv4 = _CSEN_TIMCTRL_PCPRESC_DIV4
csenPCPrescaleDiv8 = _CSEN_TIMCTRL_PCPRESC_DIV8
csenPCPrescaleDiv16 = _CSEN_TIMCTRL_PCPRESC_DIV16
csenPCPrescaleDiv32 = _CSEN_TIMCTRL_PCPRESC_DIV32
csenPCPrescaleDiv64 = _CSEN_TIMCTRL_PCPRESC_DIV64
csenPCPrescaleDiv128 = _CSEN_TIMCTRL_PCPRESC_DIV128
}

Period counter clock pre-scaler.

enum
csenEMASampleW1 = _CSEN_EMACTRL_EMASAMPLE_W1
csenEMASampleW2 = _CSEN_EMACTRL_EMASAMPLE_W2
csenEMASampleW4 = _CSEN_EMACTRL_EMASAMPLE_W4
csenEMASampleW8 = _CSEN_EMACTRL_EMASAMPLE_W8
csenEMASampleW16 = _CSEN_EMACTRL_EMASAMPLE_W16
csenEMASampleW32 = _CSEN_EMACTRL_EMASAMPLE_W32
csenEMASampleW64 = _CSEN_EMACTRL_EMASAMPLE_W64
}

Exponential Moving Average sample weight.

enum
csenResetPhaseSel0 = 0
csenResetPhaseSel1 = 1
csenResetPhaseSel2 = 2
csenResetPhaseSel3 = 3
csenResetPhaseSel4 = 4
csenResetPhaseSel5 = 5
csenResetPhaseSel6 = 6
csenResetPhaseSel7 = 7
}

Reset Phase Timing Select (units are microseconds).

enum
csenDriveSelFull = 0
csenDriveSel1 = 1
csenDriveSel2 = 2
csenDriveSel3 = 3
csenDriveSel4 = 4
csenDriveSel5 = 5
csenDriveSel6 = 6
csenDriveSel7 = 7
}

Drive Strength Select.

enum
csenGainSel1X = 0
csenGainSel2X = 1
csenGainSel3X = 2
csenGainSel4X = 3
csenGainSel5X = 4
csenGainSel6X = 5
csenGainSel7X = 6
csenGainSel8X = 7
}

Gain Select.

enum
csenPRSSELCh0 = _CSEN_PRSSEL_PRSSEL_PRSCH0
csenPRSSELCh1 = _CSEN_PRSSEL_PRSSEL_PRSCH1
csenPRSSELCh2 = _CSEN_PRSSEL_PRSSEL_PRSCH2
csenPRSSELCh3 = _CSEN_PRSSEL_PRSSEL_PRSCH3
csenPRSSELCh4 = _CSEN_PRSSEL_PRSSEL_PRSCH4
csenPRSSELCh5 = _CSEN_PRSSEL_PRSSEL_PRSCH5
csenPRSSELCh6 = _CSEN_PRSSEL_PRSSEL_PRSCH6
csenPRSSELCh7 = _CSEN_PRSSEL_PRSSEL_PRSCH7
}

Peripheral Reflex System signal used to trigger conversion.

enum
csenInputSelDefault = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_DEFAULT
csenInputSelAPORT1CH0TO7 = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_APORT1CH0TO7
csenInputSelAPORT1CH8TO15 = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_APORT1CH8TO15
csenInputSelAPORT1CH16TO23 = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_APORT1CH16TO23
csenInputSelAPORT1CH24TO31 = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_APORT1CH24TO31
csenInputSelAPORT3CH0TO7 = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_APORT3CH0TO7
csenInputSelAPORT3CH8TO15 = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_APORT3CH8TO15
csenInputSelAPORT3CH16TO23 = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_APORT3CH16TO23
csenInputSelAPORT3CH24TO31 = _CSEN_SCANINPUTSEL0_INPUT0TO7SEL_APORT3CH24TO31
}

APORT channel to CSEN input selection.

enum
csenSingleSelDefault = _CSEN_SINGLECTRL_SINGLESEL_DEFAULT
csenSingleSelAPORT1XCH0 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH0
csenSingleSelAPORT1YCH1 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH1
csenSingleSelAPORT1XCH2 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH2
csenSingleSelAPORT1YCH3 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH3
csenSingleSelAPORT1XCH4 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH4
csenSingleSelAPORT1YCH5 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH5
csenSingleSelAPORT1XCH6 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH6
csenSingleSelAPORT1YCH7 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH7
csenSingleSelAPORT1XCH8 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH8
csenSingleSelAPORT1YCH9 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH9
csenSingleSelAPORT1XCH10 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH10
csenSingleSelAPORT1YCH11 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH11
csenSingleSelAPORT1XCH12 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH12
csenSingleSelAPORT1YCH13 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH13
csenSingleSelAPORT1XCH14 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH14
csenSingleSelAPORT1YCH15 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH15
csenSingleSelAPORT1XCH16 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH16
csenSingleSelAPORT1YCH17 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH17
csenSingleSelAPORT1XCH18 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH18
csenSingleSelAPORT1YCH19 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH19
csenSingleSelAPORT1XCH20 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH20
csenSingleSelAPORT1YCH21 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH21
csenSingleSelAPORT1XCH22 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH22
csenSingleSelAPORT1YCH23 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH23
csenSingleSelAPORT1XCH24 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH24
csenSingleSelAPORT1YCH25 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH25
csenSingleSelAPORT1XCH26 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH26
csenSingleSelAPORT1YCH27 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH27
csenSingleSelAPORT1XCH28 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH28
csenSingleSelAPORT1YCH29 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH29
csenSingleSelAPORT1XCH30 = _CSEN_SINGLECTRL_SINGLESEL_APORT1XCH30
csenSingleSelAPORT1YCH31 = _CSEN_SINGLECTRL_SINGLESEL_APORT1YCH31
csenSingleSelAPORT3XCH0 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH0
csenSingleSelAPORT3YCH1 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH1
csenSingleSelAPORT3XCH2 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH2
csenSingleSelAPORT3YCH3 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH3
csenSingleSelAPORT3XCH4 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH4
csenSingleSelAPORT3YCH5 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH5
csenSingleSelAPORT3XCH6 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH6
csenSingleSelAPORT3YCH7 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH7
csenSingleSelAPORT3XCH8 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH8
csenSingleSelAPORT3YCH9 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH9
csenSingleSelAPORT3XCH10 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH10
csenSingleSelAPORT3YCH11 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH11
csenSingleSelAPORT3XCH12 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH12
csenSingleSelAPORT3YCH13 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH13
csenSingleSelAPORT3XCH14 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH14
csenSingleSelAPORT3YCH15 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH15
csenSingleSelAPORT3XCH16 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH16
csenSingleSelAPORT3YCH17 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH17
csenSingleSelAPORT3XCH18 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH18
csenSingleSelAPORT3YCH19 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH19
csenSingleSelAPORT3XCH20 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH20
csenSingleSelAPORT3YCH21 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH21
csenSingleSelAPORT3XCH22 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH22
csenSingleSelAPORT3YCH23 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH23
csenSingleSelAPORT3XCH24 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH24
csenSingleSelAPORT3YCH25 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH25
csenSingleSelAPORT3XCH26 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH26
csenSingleSelAPORT3YCH27 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH27
csenSingleSelAPORT3XCH28 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH28
csenSingleSelAPORT3YCH29 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH29
csenSingleSelAPORT3XCH30 = _CSEN_SINGLECTRL_SINGLESEL_APORT3XCH30
csenSingleSelAPORT3YCH31 = _CSEN_SINGLECTRL_SINGLESEL_APORT3YCH31
}

APORT channel to CSEN single input selection.

Functions#

uint32_t
CSEN_DataGet(CSEN_TypeDef *csen)

Get the last conversion result.

uint32_t
CSEN_EMAGet(CSEN_TypeDef *csen)

Get the last exponential moving average.

void
CSEN_EMASet(CSEN_TypeDef *csen, uint32_t ema)

Set the exponential moving average initial value.

void
CSEN_Disable(CSEN_TypeDef *csen)

Disable CSEN.

void
CSEN_Enable(CSEN_TypeDef *csen)

Enable CSEN.

void
CSEN_DMBaselineSet(CSEN_TypeDef *csen, uint32_t up, uint32_t down)

Set the DM integrator initial value.

void
CSEN_Init(CSEN_TypeDef *csen, const CSEN_Init_TypeDef *init)

Initialize CSEN.

void
CSEN_InitMode(CSEN_TypeDef *csen, const CSEN_InitMode_TypeDef *init)

Initialize a CSEN measurement mode.

void
CSEN_Reset(CSEN_TypeDef *csen)

Reset CSEN to same state that it was in after a hardware reset.

void
CSEN_IntClear(CSEN_TypeDef *csen, uint32_t flags)

Clear one or more pending CSEN interrupts.

void
CSEN_IntDisable(CSEN_TypeDef *csen, uint32_t flags)

Disable one or more CSEN interrupts.

void
CSEN_IntEnable(CSEN_TypeDef *csen, uint32_t flags)

Enable one or more CSEN interrupts.

uint32_t
CSEN_IntGet(CSEN_TypeDef *csen)

Get pending CSEN interrupt flags.

uint32_t
CSEN_IntGetEnabled(CSEN_TypeDef *csen)

Get enabled and pending CSEN interrupt flags.

void
CSEN_IntSet(CSEN_TypeDef *csen, uint32_t flags)

Set one or more pending CSEN interrupts from SW.

bool
CSEN_IsBusy(CSEN_TypeDef *csen)

Return CSEN conversion busy status.

void
CSEN_Start(CSEN_TypeDef *csen)

Start a scan sequence and/or a single conversion.

Macros#

#define

CSEN default initialization.

#define

CSEN default mode initialization.

Enumeration Documentation#

CSEN_CmpMode_TypeDef#

CSEN_CmpMode_TypeDef

Comparator Mode.

Selects the operation of the digital comparator.

Enumerator
csenCmpModeDisabled

Comparator is disabled.

csenCmpModeGreater

Comparator trips when the result is greater than the threshold.

csenCmpModeLessOrEqual

Comparator trips when the result is less than or equal to the threshold.

csenCmpModeEMAWindow

Comparator trips when the EMA is within the threshold window.


Definition at line 79 of file platform/emlib/inc/em_csen.h

CSEN_ConvSel_TypeDef#

CSEN_ConvSel_TypeDef

Converter Select.

Determines the converter operational mode.

Enumerator
csenConvSelSAR

Successive Approximation (SAR) converter.

csenConvSelSARChop

Successive Approximation (SAR) converter with low frequency attenuation.

csenConvSelDM

Delta Modulation (DM) converter.

csenConvSelDMChop

Delta Modulation (DM) converter with low frequency attenuation.


Definition at line 94 of file platform/emlib/inc/em_csen.h

CSEN_SampleMode_TypeDef#

CSEN_SampleMode_TypeDef

Sample Mode.

Determines how inputs are sampled for a conversion.

Enumerator
csenSampleModeBonded

Converts multiple inputs shorted together and stop.

csenSampleModeSingle

Converts one input and stop.

csenSampleModeScan

Converts multiple inputs one at a time and stop.

csenSampleModeContBonded

Continuously converts multiple inputs shorted together.

csenSampleModeContSingle

Continuously converts one input.

csenSampleModeContScan

Continuously converts multiple inputs one at a time.


Definition at line 109 of file platform/emlib/inc/em_csen.h

CSEN_TrigSel_TypeDef#

CSEN_TrigSel_TypeDef

Starts Trigger Select.

Enumerator
csenTrigSelPRS

PRS system.

csenTrigSelTimer

CSEN PC timer.

csenTrigSelStart

Start bit.


Definition at line 130 of file platform/emlib/inc/em_csen.h

CSEN_AccMode_TypeDef#

CSEN_AccMode_TypeDef

Accumulator Mode Select.

Enumerator
csenAccMode1

Accumulate 1 sample.

csenAccMode2

Accumulate 2 samples.

csenAccMode4

Accumulate 4 samples.

csenAccMode8

Accumulate 8 samples.

csenAccMode16

Accumulate 16 samples.

csenAccMode32

Accumulate 32 samples.

csenAccMode64

Accumulate 64 samples.


Definition at line 137 of file platform/emlib/inc/em_csen.h

CSEN_SARRes_TypeDef#

CSEN_SARRes_TypeDef

Successive Approximation (SAR) Conversion Resolution.

Enumerator
csenSARRes10

10-bit resolution.

csenSARRes12

12-bit resolution.

csenSARRes14

14-bit resolution.

csenSARRes16

16-bit resolution.


Definition at line 148 of file platform/emlib/inc/em_csen.h

CSEN_DMRes_TypeDef#

CSEN_DMRes_TypeDef

Delta Modulator (DM) Conversion Resolution.

Enumerator
csenDMRes10

10-bit resolution.

csenDMRes12

12-bit resolution.

csenDMRes14

14-bit resolution.

csenDMRes16

16-bit resolution.


Definition at line 156 of file platform/emlib/inc/em_csen.h

CSEN_PCPrescale_TypeDef#

CSEN_PCPrescale_TypeDef

Period counter clock pre-scaler.

See the reference manual for source clock information.

Enumerator
csenPCPrescaleDiv1

Divide by 1.

csenPCPrescaleDiv2

Divide by 2.

csenPCPrescaleDiv4

Divide by 4.

csenPCPrescaleDiv8

Divide by 8.

csenPCPrescaleDiv16

Divide by 16.

csenPCPrescaleDiv32

Divide by 32.

csenPCPrescaleDiv64

Divide by 64.

csenPCPrescaleDiv128

Divide by 128.


Definition at line 165 of file platform/emlib/inc/em_csen.h

CSEN_EMASample_TypeDef#

CSEN_EMASample_TypeDef

Exponential Moving Average sample weight.

Enumerator
csenEMASampleW1

Weight 1.

csenEMASampleW2

Weight 2.

csenEMASampleW4

Weight 4.

csenEMASampleW8

Weight 8.

csenEMASampleW16

Weight 16.

csenEMASampleW32

Weight 32.

csenEMASampleW64

Weight 64.


Definition at line 177 of file platform/emlib/inc/em_csen.h

CSEN_ResetPhaseSel_TypeDef#

CSEN_ResetPhaseSel_TypeDef

Reset Phase Timing Select (units are microseconds).

Enumerator
csenResetPhaseSel0

Reset phase time = 0.75 usec.

csenResetPhaseSel1

Reset phase time = 1.00 usec.

csenResetPhaseSel2

Reset phase time = 1.20 usec.

csenResetPhaseSel3

Reset phase time = 1.50 usec.

csenResetPhaseSel4

Reset phase time = 2.00 usec.

csenResetPhaseSel5

Reset phase time = 3.00 usec.

csenResetPhaseSel6

Reset phase time = 6.00 usec.

csenResetPhaseSel7

Reset phase time = 12.0 usec.


Definition at line 188 of file platform/emlib/inc/em_csen.h

CSEN_DriveSel_TypeDef#

CSEN_DriveSel_TypeDef

Drive Strength Select.

Scales the output current.

Enumerator
csenDriveSelFull

Drive strength = fully on.

csenDriveSel1

Drive strength = 1/8 full scale.

csenDriveSel2

Drive strength = 1/4 full scale.

csenDriveSel3

Drive strength = 3/8 full scale.

csenDriveSel4

Drive strength = 1/2 full scale.

csenDriveSel5

Drive strength = 5/8 full scale.

csenDriveSel6

Drive strength = 3/4 full scale.

csenDriveSel7

Drive strength = 7/8 full scale.


Definition at line 200 of file platform/emlib/inc/em_csen.h

CSEN_GainSel_TypeDef#

CSEN_GainSel_TypeDef

Gain Select.

See reference manual for information on each setting.

Enumerator
csenGainSel1X

Gain = 1x.

csenGainSel2X

Gain = 2x.

csenGainSel3X

Gain = 3x.

csenGainSel4X

Gain = 4x.

csenGainSel5X

Gain = 5x.

csenGainSel6X

Gain = 6x.

csenGainSel7X

Gain = 7x.

csenGainSel8X

Gain = 8x.


Definition at line 212 of file platform/emlib/inc/em_csen.h

CSEN_PRSSel_TypeDef#

CSEN_PRSSel_TypeDef

Peripheral Reflex System signal used to trigger conversion.

Enumerator
csenPRSSELCh0

PRS channel 0.

csenPRSSELCh1

PRS channel 1.

csenPRSSELCh2

PRS channel 2.

csenPRSSELCh3

PRS channel 3.

csenPRSSELCh4

PRS channel 4.

csenPRSSELCh5

PRS channel 5.

csenPRSSELCh6

PRS channel 6.

csenPRSSELCh7

PRS channel 7.


Definition at line 224 of file platform/emlib/inc/em_csen.h

CSEN_InputSel_TypeDef#

CSEN_InputSel_TypeDef

APORT channel to CSEN input selection.

Enumerator
csenInputSelDefault
csenInputSelAPORT1CH0TO7
csenInputSelAPORT1CH8TO15
csenInputSelAPORT1CH16TO23
csenInputSelAPORT1CH24TO31
csenInputSelAPORT3CH0TO7
csenInputSelAPORT3CH8TO15
csenInputSelAPORT3CH16TO23
csenInputSelAPORT3CH24TO31

Definition at line 248 of file platform/emlib/inc/em_csen.h

CSEN_SingleSel_TypeDef#

CSEN_SingleSel_TypeDef

APORT channel to CSEN single input selection.

Enumerator
csenSingleSelDefault
csenSingleSelAPORT1XCH0
csenSingleSelAPORT1YCH1
csenSingleSelAPORT1XCH2
csenSingleSelAPORT1YCH3
csenSingleSelAPORT1XCH4
csenSingleSelAPORT1YCH5
csenSingleSelAPORT1XCH6
csenSingleSelAPORT1YCH7
csenSingleSelAPORT1XCH8
csenSingleSelAPORT1YCH9
csenSingleSelAPORT1XCH10
csenSingleSelAPORT1YCH11
csenSingleSelAPORT1XCH12
csenSingleSelAPORT1YCH13
csenSingleSelAPORT1XCH14
csenSingleSelAPORT1YCH15
csenSingleSelAPORT1XCH16
csenSingleSelAPORT1YCH17
csenSingleSelAPORT1XCH18
csenSingleSelAPORT1YCH19
csenSingleSelAPORT1XCH20
csenSingleSelAPORT1YCH21
csenSingleSelAPORT1XCH22
csenSingleSelAPORT1YCH23
csenSingleSelAPORT1XCH24
csenSingleSelAPORT1YCH25
csenSingleSelAPORT1XCH26
csenSingleSelAPORT1YCH27
csenSingleSelAPORT1XCH28
csenSingleSelAPORT1YCH29
csenSingleSelAPORT1XCH30
csenSingleSelAPORT1YCH31
csenSingleSelAPORT3XCH0
csenSingleSelAPORT3YCH1
csenSingleSelAPORT3XCH2
csenSingleSelAPORT3YCH3
csenSingleSelAPORT3XCH4
csenSingleSelAPORT3YCH5
csenSingleSelAPORT3XCH6
csenSingleSelAPORT3YCH7
csenSingleSelAPORT3XCH8
csenSingleSelAPORT3YCH9
csenSingleSelAPORT3XCH10
csenSingleSelAPORT3YCH11
csenSingleSelAPORT3XCH12
csenSingleSelAPORT3YCH13
csenSingleSelAPORT3XCH14
csenSingleSelAPORT3YCH15
csenSingleSelAPORT3XCH16
csenSingleSelAPORT3YCH17
csenSingleSelAPORT3XCH18
csenSingleSelAPORT3YCH19
csenSingleSelAPORT3XCH20
csenSingleSelAPORT3YCH21
csenSingleSelAPORT3XCH22
csenSingleSelAPORT3YCH23
csenSingleSelAPORT3XCH24
csenSingleSelAPORT3YCH25
csenSingleSelAPORT3XCH26
csenSingleSelAPORT3YCH27
csenSingleSelAPORT3XCH28
csenSingleSelAPORT3YCH29
csenSingleSelAPORT3XCH30
csenSingleSelAPORT3YCH31

Definition at line 261 of file platform/emlib/inc/em_csen.h

Function Documentation#

CSEN_DataGet#

uint32_t CSEN_DataGet (CSEN_TypeDef *csen)

Get the last conversion result.

Parameters
[in]csen

Pointer to a CSEN peripheral register block.

Note

  • Check the conversion busy flag before calling this function. In addition, the result width and format depend on the parameters passed to the CSEN_InitMode() function.

Returns

  • Result data from last conversion.


Definition at line 514 of file platform/emlib/inc/em_csen.h

CSEN_EMAGet#

uint32_t CSEN_EMAGet (CSEN_TypeDef *csen)

Get the last exponential moving average.

Parameters
[in]csen

Pointer to a CSEN peripheral register block.

Note

  • Confirm that CSEN is idle before calling this function.

Returns

  • Exponential moving average from last conversion.


Definition at line 532 of file platform/emlib/inc/em_csen.h

CSEN_EMASet#

void CSEN_EMASet (CSEN_TypeDef *csen, uint32_t ema)

Set the exponential moving average initial value.

Parameters
[in]csen

Pointer to a CSEN peripheral register block.

[in]ema

Initial value for the exponential moving average.

Note

  • Call this function before starting a conversion.


Definition at line 550 of file platform/emlib/inc/em_csen.h

CSEN_Disable#

void CSEN_Disable (CSEN_TypeDef *csen)

Disable CSEN.

Parameters
[in]csen

Pointer to a CSEN peripheral register block.


Definition at line 562 of file platform/emlib/inc/em_csen.h

CSEN_Enable#

void CSEN_Enable (CSEN_TypeDef *csen)

Enable CSEN.

Parameters
[in]csen

Pointer to a CSEN peripheral register block.


Definition at line 574 of file platform/emlib/inc/em_csen.h

CSEN_DMBaselineSet#

void CSEN_DMBaselineSet (CSEN_TypeDef *csen, uint32_t up, uint32_t down)

Set the DM integrator initial value.

Parameters
[in]csen

A pointer to the CSEN peripheral register block.

[in]up

An initial value for the ramp-up integrator.

[in]down

An initial value for the ramp-down integrator. Has no effect if low-frequency attenuation is not configured.

Sets the initial value of the integrator(s) for the Delta Modulation (DM) converter. The initial value for the ramp-down integrator has no effect if the low-frequency attenuation was not selected by the mode initialization function CSEN_InitMode().

Note

  • Confirm CSEN is idle before calling this function.


Definition at line 81 of file platform/emlib/src/em_csen.c

CSEN_Init#

void CSEN_Init (CSEN_TypeDef *csen, const CSEN_Init_TypeDef *init)

Initialize CSEN.

Parameters
[in]csen

A pointer to the CSEN peripheral register block.

[in]init

A pointer to the CSEN initialization structure.

Initializes common functionality for all measurement types. In addition, measurement mode must be configured. See CSEN_InitMode().

Note

  • This function will stop any ongoing conversion and disable CSEN.


Definition at line 107 of file platform/emlib/src/em_csen.c

CSEN_InitMode#

void CSEN_InitMode (CSEN_TypeDef *csen, const CSEN_InitMode_TypeDef *init)

Initialize a CSEN measurement mode.

Parameters
[in]csen

A pointer to the CSEN peripheral register block.

[in]init

A pointer to the CSEN measurement mode initialization structure.

Used to configure any type of measurement mode. After the measurement has been configured, calling CSEN_Enable() will enable CSEN and allow it to start a conversion from the selected trigger source. To manually start a conversion, use CSEN_Start(). To check if a conversion is in progress, use CSEN_IsBusy(), or alternatively use the interrupt flags returned by CSEN_IntGet() to detect when a conversion is completed.

Note

  • This function will stop any ongoing conversion and disable CSEN.


Definition at line 174 of file platform/emlib/src/em_csen.c

CSEN_Reset#

void CSEN_Reset (CSEN_TypeDef *csen)

Reset CSEN to same state that it was in after a hardware reset.

Parameters
[in]csen

A pointer to the CSEN peripheral register block.


Definition at line 250 of file platform/emlib/src/em_csen.c

CSEN_IntClear#

void CSEN_IntClear (CSEN_TypeDef *csen, uint32_t flags)

Clear one or more pending CSEN interrupts.

Parameters
[in]csen

Pointer to a CSEN peripheral register block.

[in]flags

Pending CSEN interrupt source to clear. Use a bitwise logic OR combination of valid interrupt flags for the CSEN module (CSEN_IF_nnn).


Definition at line 595 of file platform/emlib/inc/em_csen.h

CSEN_IntDisable#

void CSEN_IntDisable (CSEN_TypeDef *csen, uint32_t flags)

Disable one or more CSEN interrupts.

Parameters
[in]csen

Pointer to a CSEN peripheral register block.

[in]flags

CSEN interrupt sources to disable. Use a bitwise logic OR combination of valid interrupt flags for the CSEN module (CSEN_IF_nnn).


Definition at line 611 of file platform/emlib/inc/em_csen.h

CSEN_IntEnable#

void CSEN_IntEnable (CSEN_TypeDef *csen, uint32_t flags)

Enable one or more CSEN interrupts.

Parameters
[in]csen

Pointer to a CSEN peripheral register block.

[in]flags

CSEN interrupt sources to enable. Use a bitwise logic OR combination of valid interrupt flags for the CSEN module (CSEN_IF_nnn).

Note

  • Depending on the use case, a pending interrupt may already be set prior to enabling the interrupt. Consider using CSEN_IntClear() prior to enabling if such a pending interrupt should be ignored.


Definition at line 632 of file platform/emlib/inc/em_csen.h

CSEN_IntGet#

uint32_t CSEN_IntGet (CSEN_TypeDef *csen)

Get pending CSEN interrupt flags.

Parameters
[in]csen

Pointer to a CSEN peripheral register block.

Note

  • The event bits are not cleared by the use of this function.

Returns

  • CSEN interrupt sources pending. A bitwise logic OR combination of valid interrupt flags for the CSEN module (CSEN_IF_nnn).


Definition at line 651 of file platform/emlib/inc/em_csen.h

CSEN_IntGetEnabled#

uint32_t CSEN_IntGetEnabled (CSEN_TypeDef *csen)

Get enabled and pending CSEN interrupt flags.

Parameters
[in]csen

Pointer to a CSEN peripheral register block.

Useful for handling more interrupt sources in the same interrupt handler.

Note

  • Interrupt flags are not cleared by the use of this function.

Returns

  • Pending and enabled CSEN interrupt sources. The return value is the bitwise AND combination of

    • the OR combination of enabled interrupt sources in CSENx_IEN_nnn register (CSENx_IEN_nnn) and

    • the OR combination of valid interrupt flags of the CSEN module (CSENx_IF_nnn).


Definition at line 675 of file platform/emlib/inc/em_csen.h

CSEN_IntSet#

void CSEN_IntSet (CSEN_TypeDef *csen, uint32_t flags)

Set one or more pending CSEN interrupts from SW.

Parameters
[in]csen

Pointer to a CSEN peripheral register block.

[in]flags

CSEN interrupt sources to set to pending. Use a bitwise logic OR combination of valid interrupt flags for the CSEN module (CSEN_IF_nnn).


Definition at line 698 of file platform/emlib/inc/em_csen.h

CSEN_IsBusy#

bool CSEN_IsBusy (CSEN_TypeDef *csen)

Return CSEN conversion busy status.

Parameters
[in]csen

Pointer to a CSEN peripheral register block.

Returns

  • True if CSEN conversion is in progress.


Definition at line 713 of file platform/emlib/inc/em_csen.h

CSEN_Start#

void CSEN_Start (CSEN_TypeDef *csen)

Start a scan sequence and/or a single conversion.

Parameters
[in]csen

Pointer to a CSEN peripheral register block.


Definition at line 725 of file platform/emlib/inc/em_csen.h

Macro Definition Documentation#

CSEN_INIT_DEFAULT#

#define CSEN_INIT_DEFAULT
Value:
{ \
false, /* Charge pump low accuracy mode. */ \
false, /* Use external kelvin connection. */ \
false, /* Disable keep warm. */ \
0, /* 0+3 cycle warm-up time. */ \
0, /* Period counter reload. */ \
csenPCPrescaleDiv1, /* Period counter prescale. */ \
csenPRSSELCh0, /* PRS channel 0. */ \
csenInputSelAPORT1CH0TO7, /* input0To7 -> aport1ch0to7 */ \
csenInputSelAPORT1CH8TO15, /* input8To15 -> aport1ch8to15 */ \
csenInputSelAPORT1CH16TO23, /* input16To23 -> aport1ch16to23 */ \
csenInputSelAPORT1CH24TO31, /* input24To31 -> aport1ch24to31 */ \
csenInputSelAPORT3CH0TO7, /* input32To39 -> aport3ch0to7 */ \
csenInputSelAPORT3CH8TO15, /* input40To47 -> aport3ch8to15 */ \
csenInputSelAPORT3CH16TO23, /* input48To55 -> aport3ch16to23 */ \
csenInputSelAPORT3CH24TO31, /* input56To63 -> aport3ch24to31 */ \
}

CSEN default initialization.


Definition at line 368 of file platform/emlib/inc/em_csen.h

CSEN_INITMODE_DEFAULT#

#define CSEN_INITMODE_DEFAULT
Value:
{ \
csenSampleModeSingle, /* Sample one input and stop. */ \
csenTrigSelStart, /* Use start bit to trigger. */ \
false, /* Disable DMA. */ \
false, /* Average the accumulated result. */ \
csenAccMode1, /* Accumulate 1 sample. */ \
csenEMASampleW1, /* Disable the EMA. */ \
csenCmpModeDisabled, /* Disable the comparator. */ \
0, /* Comparator threshold not used. */ \
csenSingleSelDefault, /* Disconnect the single input. */ \
0, /* Disable inputs 0 to 31. */ \
0, /* Disable inputs 32 to 63. */ \
false, /* Do not ground inactive inputs. */ \
csenConvSelSAR, /* Use the SAR converter. */ \
csenSARRes10, /* Set SAR resolution to 10 bits. */ \
csenDMRes10, /* Set DM resolution to 10 bits. */ \
0, /* Set DM conv/cycle to default. */ \
0, /* Set DM cycles to default. */ \
0, /* Set DM initial delta to default. */ \
false, /* Use DM auto delta reduction. */ \
csenResetPhaseSel0, /* Use shortest reset phase time. */ \
csenDriveSelFull, /* Use full output current. */ \
csenGainSel8X, /* Use highest converter gain. */ \
}

CSEN default mode initialization.


Definition at line 469 of file platform/emlib/inc/em_csen.h