LESENSE - Low Energy Sensor#

Low Energy Sensor (LESENSE) Peripheral API.

This module contains functions to control the LESENSE peripheral of Silicon Labs 32-bit MCUs and SoCs. LESENSE is a low-energy sensor interface capable of autonomously collecting and processing data from multiple sensors even when in EM2.

Modules#

LESENSE_CoreCtrlDesc_TypeDef

LESENSE_TimeCtrlDesc_TypeDef

LESENSE_PerCtrlDesc_TypeDef

LESENSE_DecCtrlDesc_TypeDef

LESENSE_Init_TypeDef

LESENSE_ChDesc_TypeDef

LESENSE_ChAll_TypeDef

LESENSE_AltExDesc_TypeDef

LESENSE_ConfAltEx_TypeDef

LESENSE_DecStCond_TypeDef

LESENSE_DecStDesc_TypeDef

LESENSE_DecStAll_TypeDef

Enumerations#

enum
lesenseClkDiv_1 = 0
lesenseClkDiv_2 = 1
lesenseClkDiv_4 = 2
lesenseClkDiv_8 = 3
lesenseClkDiv_16 = 4
lesenseClkDiv_32 = 5
lesenseClkDiv_64 = 6
lesenseClkDiv_128 = 7
}

Clock divisors for controlling the prescaling factor of the period counter.

enum
lesenseScanStartPeriodic = LESENSE_CTRL_SCANMODE_PERIODIC
lesenseScanStartOneShot = LESENSE_CTRL_SCANMODE_ONESHOT
lesenseScanStartPRS = LESENSE_CTRL_SCANMODE_PRS
}

Scan modes.

enum
lesensePRSCh0 = 0
lesensePRSCh1 = 1
lesensePRSCh2 = 2
lesensePRSCh3 = 3
lesensePRSCh4 = 4
lesensePRSCh5 = 5
lesensePRSCh6 = 6
lesensePRSCh7 = 7
}

PRS sources.

enum
lesenseAltExMapALTEX = _LESENSE_CTRL_ALTEXMAP_ALTEX
lesenseAltExMapCH = _LESENSE_CTRL_ALTEXMAP_CH
}

Locations of the alternate excitation function.

enum
lesenseBufTrigHalf = LESENSE_CTRL_BUFIDL_HALFFULL
lesenseBufTrigFull = LESENSE_CTRL_BUFIDL_FULL
}

Result buffer interrupt and DMA trigger levels.

enum
lesenseDMAWakeUpDisable = LESENSE_CTRL_DMAWU_DISABLE
lesenseDMAWakeUpBufValid = LESENSE_CTRL_DMAWU_BUFDATAV
lesenseDMAWakeUpBufLevel = LESENSE_CTRL_DMAWU_BUFLEVEL
}

Modes of operation for DMA wakeup from EM2.

enum
lesenseBiasModeDutyCycle = LESENSE_BIASCTRL_BIASMODE_DUTYCYCLE
lesenseBiasModeHighAcc = LESENSE_BIASCTRL_BIASMODE_HIGHACC
lesenseBiasModeDontTouch = LESENSE_BIASCTRL_BIASMODE_DONTTOUCH
}

Bias modes.

enum
lesenseScanConfDirMap = LESENSE_CTRL_SCANCONF_DIRMAP
lesenseScanConfInvMap = LESENSE_CTRL_SCANCONF_INVMAP
lesenseScanConfToggle = LESENSE_CTRL_SCANCONF_TOGGLE
lesenseScanConfDecDef = LESENSE_CTRL_SCANCONF_DECDEF
}

Scan configuration.

enum
lesenseDACIfData = _LESENSE_PERCTRL_DACCH0DATA_DACDATA
lesenseThres = _LESENSE_PERCTRL_DACCH0DATA_THRES
}

DAC CHx data control configuration.

enum
lesenseACMPModeDisable = _LESENSE_PERCTRL_ACMP0MODE_DISABLE
lesenseACMPModeMux = _LESENSE_PERCTRL_ACMP0MODE_MUX
lesenseACMPModeMuxThres = _LESENSE_PERCTRL_ACMP0MODE_MUXTHRES
}

ACMPx control configuration.

enum
lesenseWarmupModeNormal = LESENSE_PERCTRL_WARMUPMODE_NORMAL
lesenseWarmupModeACMP = LESENSE_PERCTRL_WARMUPMODE_KEEPACMPWARM
lesenseWarmupModeDAC = LESENSE_PERCTRL_WARMUPMODE_KEEPDACWARM
lesenseWarmupModeKeepWarm = LESENSE_PERCTRL_WARMUPMODE_KEEPACMPDACWARM
}

Warm up modes.

enum
lesenseDecInputSensorSt = LESENSE_DECCTRL_INPUT_SENSORSTATE
lesenseDecInputPRS = LESENSE_DECCTRL_INPUT_PRS
}

Decoder input source configuration.

enum
lesenseSampleModeCounter = 0x0 << _LESENSE_CH_INTERACT_SAMPLE_SHIFT
lesenseSampleModeACMP = LESENSE_CH_INTERACT_SAMPLE_ACMP
lesenseSampleModeADC = LESENSE_CH_INTERACT_SAMPLE_ADC
lesenseSampleModeADCDiff = LESENSE_CH_INTERACT_SAMPLE_ADCDIFF
}

Compare source selection for sensor sampling.

enum
lesenseSetIntNone = LESENSE_CH_INTERACT_SETIF_NONE
lesenseSetIntLevel = LESENSE_CH_INTERACT_SETIF_LEVEL
lesenseSetIntPosEdge = LESENSE_CH_INTERACT_SETIF_POSEDGE
lesenseSetIntNegEdge = LESENSE_CH_INTERACT_SETIF_NEGEDGE
lesenseSetIntBothEdges = LESENSE_CH_INTERACT_SETIF_BOTHEDGES
}

Interrupt generation setup for CHx interrupt flag.

enum
lesenseChPinExDis = LESENSE_CH_INTERACT_EXMODE_DISABLE
lesenseChPinExHigh = LESENSE_CH_INTERACT_EXMODE_HIGH
lesenseChPinExLow = LESENSE_CH_INTERACT_EXMODE_LOW
lesenseChPinExDACOut = LESENSE_CH_INTERACT_EXMODE_DACOUT
}

Channel pin mode for the excitation phase of the scan sequence.

enum
lesenseChPinIdleDis = _LESENSE_IDLECONF_CH0_DISABLE
lesenseChPinIdleHigh = _LESENSE_IDLECONF_CH0_HIGH
lesenseChPinIdleLow = _LESENSE_IDLECONF_CH0_LOW
lesenseChPinIdleDACC = _LESENSE_IDLECONF_CH0_DAC
}

Channel pin mode for the idle phase of scan sequence.

enum
lesenseClkLF = _LESENSE_CH_INTERACT_EXCLK_LFACLK
lesenseClkHF = _LESENSE_CH_INTERACT_EXCLK_AUXHFRCO
}

Clock used for excitation and sample delay timing.

enum
lesenseCompModeLess = LESENSE_CH_EVAL_COMP_LESS
lesenseCompModeGreaterOrEq = LESENSE_CH_EVAL_COMP_GE
}

Compare modes for counter comparison.

enum
lesenseEvalModeThreshold = _LESENSE_CH_EVAL_MODE_THRES
lesenseEvalModeSlidingWindow = _LESENSE_CH_EVAL_MODE_SLIDINGWIN
lesenseEvalModeStepDetection = _LESENSE_CH_EVAL_MODE_STEPDET
}

Sensor evaluation modes.

enum
lesenseAltExPinIdleDis = _LESENSE_ALTEXCONF_IDLECONF0_DISABLE
lesenseAltExPinIdleHigh = _LESENSE_ALTEXCONF_IDLECONF0_HIGH
lesenseAltExPinIdleLow = _LESENSE_ALTEXCONF_IDLECONF0_LOW
}

Idle phase configuration of the alternate excitation channels.

enum
lesenseTransActNone = LESENSE_ST_TCONFA_PRSACT_NONE
lesenseTransActPRS0 = LESENSE_ST_TCONFA_PRSACT_PRS0
lesenseTransActPRS1 = LESENSE_ST_TCONFA_PRSACT_PRS1
lesenseTransActPRS01 = LESENSE_ST_TCONFA_PRSACT_PRS01
lesenseTransActPRS2 = LESENSE_ST_TCONFA_PRSACT_PRS2
lesenseTransActPRS02 = LESENSE_ST_TCONFA_PRSACT_PRS02
lesenseTransActPRS12 = LESENSE_ST_TCONFA_PRSACT_PRS12
lesenseTransActPRS012 = LESENSE_ST_TCONFA_PRSACT_PRS012
lesenseTransActUp = LESENSE_ST_TCONFA_PRSACT_UP
lesenseTransActDown = LESENSE_ST_TCONFA_PRSACT_DOWN
lesenseTransActUpAndPRS2 = LESENSE_ST_TCONFA_PRSACT_UPANDPRS2
lesenseTransActDownAndPRS2 = LESENSE_ST_TCONFA_PRSACT_DOWNANDPRS2
}

Transition action modes.

Functions#

void
LESENSE_Init(const LESENSE_Init_TypeDef *init, bool reqReset)

Initialize the LESENSE module.

void

Reset the LESENSE module.

uint32_t
LESENSE_ScanFreqSet(uint32_t refFreq, uint32_t scanFreq)

Set the scan frequency for periodic scanning.

void
LESENSE_ScanModeSet(LESENSE_ScanMode_TypeDef scanMode, bool start)

Set scan mode of the LESENSE channels.

void
LESENSE_StartDelaySet(uint8_t startDelay)

Set the start delay of the sensor interaction on each channel.

void
LESENSE_ClkDivSet(LESENSE_ChClk_TypeDef clk, LESENSE_ClkPresc_TypeDef clkDiv)

Set the clock division for LESENSE timers.

void
LESENSE_ChannelAllConfig(const LESENSE_ChAll_TypeDef *confChAll)

Configure all (16) LESENSE sensor channels.

void
LESENSE_ChannelConfig(const LESENSE_ChDesc_TypeDef *confCh, uint32_t chIdx)

Configure a single LESENSE sensor channel.

void
LESENSE_ChannelEnable(uint8_t chIdx, bool enaScanCh, bool enaPin)

Enable/disable LESENSE scan channel and the pin assigned to it.

void
LESENSE_ChannelEnableMask(uint16_t chMask, uint16_t pinMask)

Enable/disable LESENSE scan channel and the pin assigned to it.

void
LESENSE_ChannelTimingSet(uint8_t chIdx, uint8_t exTime, uint8_t sampleDelay, uint16_t measDelay)

Set LESENSE channel timing parameters.

void
LESENSE_ChannelThresSet(uint8_t chIdx, uint16_t acmpThres, uint16_t cntThres)

Set LESENSE channel threshold parameters.

void
LESENSE_ChannelSlidingWindow(uint8_t chIdx, uint32_t windowSize, uint32_t initValue)

Configure a Sliding Window evaluation mode for a specific channel.

void
LESENSE_ChannelStepDetection(uint8_t chIdx, uint32_t stepSize, uint32_t initValue)

Configure the step detection evaluation mode for a specific channel.

void
LESENSE_WindowSizeSet(uint32_t windowSize)

Set the window size for all LESENSE channels.

void
LESENSE_StepSizeSet(uint32_t stepSize)

Set the step size for all LESENSE channels.

void
LESENSE_AltExConfig(const LESENSE_ConfAltEx_TypeDef *confAltEx)

Configure the LESENSE alternate excitation modes.

void
LESENSE_DecoderStateAllConfig(const LESENSE_DecStAll_TypeDef *confDecStAll)

Configure all LESENSE decoder states.

void
LESENSE_DecoderStateConfig(const LESENSE_DecStDesc_TypeDef *confDecSt, uint32_t decSt)

Configure a single LESENSE decoder state.

void
LESENSE_DecoderStateSet(uint32_t decSt)

Set the LESENSE decoder state.

uint32_t

Get the current state of the LESENSE decoder.

void
LESENSE_DecoderPrsOut(bool enable, uint32_t decMask, uint32_t decVal)

Enable or disable the PRS output from the LESENSE decoder.

void

Start scanning sensors.

void

Stop scanning sensors.

void

Start the LESENSE decoder.

void

Clear the result buffer.

void

Stop LESENSE decoder.

uint32_t

Get the current status of LESENSE.

void
LESENSE_StatusWait(uint32_t flag)

Wait until status of LESENSE is equal to what was requested.

uint32_t

Get the currently active channel index.

uint32_t

Get the latest scan comparison result (1 bit / channel).

uint32_t

Get the oldest unread data from the result buffer.

uint32_t

Get data from the result data buffer.

uint32_t

Get the current state of the LESENSE sensor.

void
LESENSE_IntClear(uint32_t flags)

Clear one or more pending LESENSE interrupts.

void
LESENSE_IntEnable(uint32_t flags)

Enable one or more LESENSE interrupts.

void
LESENSE_IntDisable(uint32_t flags)

Disable one or more LESENSE interrupts.

void
LESENSE_IntSet(uint32_t flags)

Set one or more pending LESENSE interrupts from SW.

uint32_t

Get pending LESENSE interrupt flags.

uint32_t

Get enabled and pending LESENSE interrupt flags.

Macros#

#define
LESENSE_NUM_DECODER_STATES (_LESENSE_DECSTATE_DECSTATE_MASK + 1)

Number of decoder states supported by current device.

#define

Number of LESENSE channels.

#define

Default configuration for LESENSE_CtrlDesc_TypeDef structure.

#define

Default configuration for LESENSE_TimeCtrlDesc_TypeDef structure.

#define

Default configuration for LESENSE_PerCtrl_TypeDef structure.

#define

Default configuration for LESENSE_PerCtrl_TypeDef structure.

#define

Default configuration for LESENSE_Init_TypeDef structure.

#define

Default configuration for the scan channel.

#define

Default configuration for all the sensor channels.

#define

Default configuration for the alternate excitation channel.

#define

Default configuration for all the alternate excitation channels.

#define

Default configuration for the decoder state condition.

#define

Default configuration for all decoder states.

Enumeration Documentation#

LESENSE_ClkPresc_TypeDef#

LESENSE_ClkPresc_TypeDef

Clock divisors for controlling the prescaling factor of the period counter.

Note: These enumeration values are used for different clock division related configuration parameters (hfPresc, lfPresc, pcPresc).

Enumerator
lesenseClkDiv_1

Divide clock by 1.

lesenseClkDiv_2

Divide clock by 2.

lesenseClkDiv_4

Divide clock by 4.

lesenseClkDiv_8

Divide clock by 8.

lesenseClkDiv_16

Divide clock by 16.

lesenseClkDiv_32

Divide clock by 32.

lesenseClkDiv_64

Divide clock by 64.

lesenseClkDiv_128

Divide clock by 128.


Definition at line 65 of file platform/emlib/inc/em_lesense.h

LESENSE_ScanMode_TypeDef#

LESENSE_ScanMode_TypeDef

Scan modes.

Enumerator
lesenseScanStartPeriodic

New scan is started each time the period counter overflows.

lesenseScanStartOneShot

Single scan is performed when LESENSE_ScanStart() is called.

lesenseScanStartPRS

New scan is triggered by pulse on PRS channel.


Definition at line 78 of file platform/emlib/inc/em_lesense.h

LESENSE_PRSSel_TypeDef#

LESENSE_PRSSel_TypeDef

PRS sources.

Note: These enumeration values are being used for different PRS related configuration parameters.

Enumerator
lesensePRSCh0

PRS channel 0.

lesensePRSCh1

PRS channel 1.

lesensePRSCh2

PRS channel 2.

lesensePRSCh3

PRS channel 3.

lesensePRSCh4

PRS channel 4.

lesensePRSCh5

PRS channel 5.

lesensePRSCh6

PRS channel 6.

lesensePRSCh7

PRS channel 7.


Definition at line 104 of file platform/emlib/inc/em_lesense.h

LESENSE_AltExMap_TypeDef#

LESENSE_AltExMap_TypeDef

Locations of the alternate excitation function.

Enumerator
lesenseAltExMapALTEX

Alternate excitation is mapped to the LES_ALTEX pins.

lesenseAltExMapCH

Alternative excitation is mapped to the pin of LESENSE channel (X+8 mod 16) where X is the active channel.


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

LESENSE_BufTrigLevel_TypeDef#

LESENSE_BufTrigLevel_TypeDef

Result buffer interrupt and DMA trigger levels.

Enumerator
lesenseBufTrigHalf

DMA and interrupt flags are set when the result buffer is half-full.

lesenseBufTrigFull

DMA and interrupt flags set when the result buffer is full.


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

LESENSE_DMAWakeUp_TypeDef#

LESENSE_DMAWakeUp_TypeDef

Modes of operation for DMA wakeup from EM2.

Enumerator
lesenseDMAWakeUpDisable

No DMA wakeup from EM2.

lesenseDMAWakeUpBufValid

DMA wakeup from EM2 when data is valid in the result buffer.

lesenseDMAWakeUpBufLevel

DMA wakeup from EM2 when the result buffer is full/half-full, depending on RESBIDL configuration in the LESENSE_CTRL register (selected by the resBufTrigLevel in LESENSE_ResBufTrigLevel_TypeDef descriptor structure).


Definition at line 167 of file platform/emlib/inc/em_lesense.h

LESENSE_BiasMode_TypeDef#

LESENSE_BiasMode_TypeDef

Bias modes.

Enumerator
lesenseBiasModeDutyCycle

Duty cycle bias module between low power and high accuracy mode.

lesenseBiasModeHighAcc

Bias module is always in high accuracy mode.

lesenseBiasModeDontTouch

Bias module is controlled by EMU and not affected by the LESENSE.


Definition at line 191 of file platform/emlib/inc/em_lesense.h

LESENSE_ScanConfSel_TypeDef#

LESENSE_ScanConfSel_TypeDef

Scan configuration.

Enumerator
lesenseScanConfDirMap

Channel configuration registers (CHx_CONF) used are directly mapped to the channel number.

lesenseScanConfInvMap

Channel configuration registers used are CHx+8_CONF for channels 0-7 and CHx-8_CONF for channels 8-15.

lesenseScanConfToggle

Channel configuration registers used toggles between CHX_SCANCONF and CHX+8_SCANCONF when channel x triggers.

lesenseScanConfDecDef

Decoder state defines the channel configuration register (CHx_CONF) to be used.


Definition at line 205 of file platform/emlib/inc/em_lesense.h

LESENSE_ControlDACData_TypeDef#

LESENSE_ControlDACData_TypeDef

DAC CHx data control configuration.

Enumerator
lesenseDACIfData

DAC channel x data is defined by the DAC_CHxDATA register.

lesenseThres

DAC channel x data is defined by the THRES in LESENSE_CHx_INTERACT.


Definition at line 243 of file platform/emlib/inc/em_lesense.h

LESENSE_ControlACMP_TypeDef#

LESENSE_ControlACMP_TypeDef

ACMPx control configuration.

Enumerator
lesenseACMPModeDisable

LESENSE does not control ACMPx.

lesenseACMPModeMux

LESENSE controls input mux of ACMPx.

lesenseACMPModeMuxThres

LESENSE controls input mux of and threshold value of ACMPx.


Definition at line 315 of file platform/emlib/inc/em_lesense.h

LESENSE_WarmupMode_TypeDef#

LESENSE_WarmupMode_TypeDef

Warm up modes.

ACMP and DAC duty cycle mode configuration.

Enumerator
lesenseWarmupModeNormal

ACMPs and DACs are shut down when LESENSE is idle.

lesenseWarmupModeACMP

ACMPs are kept powered up when LESENSE is idle.

lesenseWarmupModeDAC

DAC is kept powered up when LESENSE is idle.

lesenseWarmupModeKeepWarm

ACMPs and DAC are kept powered up when LESENSE is idle.


Definition at line 333 of file platform/emlib/inc/em_lesense.h

LESENSE_DecInput_TypeDef#

LESENSE_DecInput_TypeDef

Decoder input source configuration.

Enumerator
lesenseDecInputSensorSt

SENSORSTATE register is used as input to the decoder.

lesenseDecInputPRS

PRS channels are used as input to the decoder.


Definition at line 350 of file platform/emlib/inc/em_lesense.h

LESENSE_ChSampleMode_TypeDef#

LESENSE_ChSampleMode_TypeDef

Compare source selection for sensor sampling.

Enumerator
lesenseSampleModeCounter

Counter output will be used in comparison.

lesenseSampleModeACMP

ACMP output will be used in comparison.

lesenseSampleModeADC

ADC output will be used in comparison.

lesenseSampleModeADCDiff

Differential ADC output will be used in comparison.


Definition at line 362 of file platform/emlib/inc/em_lesense.h

LESENSE_ChIntMode_TypeDef#

LESENSE_ChIntMode_TypeDef

Interrupt generation setup for CHx interrupt flag.

Enumerator
lesenseSetIntNone

No interrupt is generated.

lesenseSetIntLevel

Set interrupt flag if the sensor triggers.

lesenseSetIntPosEdge

Set interrupt flag on positive edge of the sensor state.

lesenseSetIntNegEdge

Set interrupt flag on negative edge of the sensor state.

lesenseSetIntBothEdges

Set interrupt flag on both edges of the sensor state.


Definition at line 383 of file platform/emlib/inc/em_lesense.h

LESENSE_ChPinExMode_TypeDef#

LESENSE_ChPinExMode_TypeDef

Channel pin mode for the excitation phase of the scan sequence.

Enumerator
lesenseChPinExDis

Channel pin is disabled.

lesenseChPinExHigh

Channel pin is configured as push-pull, driven HIGH.

lesenseChPinExLow

Channel pin is configured as push-pull, driven LOW.

lesenseChPinExDACOut

DAC output (only available on channel 0, 1, 2, 3, 12, 13, 14 and 15)


Definition at line 403 of file platform/emlib/inc/em_lesense.h

LESENSE_ChPinIdleMode_TypeDef#

LESENSE_ChPinIdleMode_TypeDef

Channel pin mode for the idle phase of scan sequence.

Enumerator
lesenseChPinIdleDis

Channel pin is disabled in idle phase.

lesenseChPinIdleHigh

Channel pin is configured as push-pull, driven HIGH in idle phase.

lesenseChPinIdleLow

Channel pin is configured as push-pull, driven LOW in idle phase.

lesenseChPinIdleDACC

Channel pin is connected to DAC output in idle phase.


Definition at line 419 of file platform/emlib/inc/em_lesense.h

LESENSE_ChClk_TypeDef#

LESENSE_ChClk_TypeDef

Clock used for excitation and sample delay timing.

Enumerator
lesenseClkLF

LFACLK (LF clock) is used.

lesenseClkHF

AUXHFRCO (HF clock) is used.


Definition at line 467 of file platform/emlib/inc/em_lesense.h

LESENSE_ChCompMode_TypeDef#

LESENSE_ChCompMode_TypeDef

Compare modes for counter comparison.

Enumerator
lesenseCompModeLess

Comparison evaluates to 1 if sensor data is less than the counter threshold, or if ACMP output is 0.

lesenseCompModeGreaterOrEq

Comparison evaluates to 1 if sensor data is greater than, or equal to the counter threshold, or if the ACMP output is 1.


Definition at line 477 of file platform/emlib/inc/em_lesense.h

LESENSE_ChEvalMode_TypeDef#

LESENSE_ChEvalMode_TypeDef

Sensor evaluation modes.

Enumerator
lesenseEvalModeThreshold

Threshold comparison evaluation mode.

lesenseEvalModeSlidingWindow

Sliding window evaluation mode.

lesenseEvalModeStepDetection

Step detection evaluation mode.


Definition at line 501 of file platform/emlib/inc/em_lesense.h

LESENSE_AltExPinIdle_TypeDef#

LESENSE_AltExPinIdle_TypeDef

Idle phase configuration of the alternate excitation channels.

Enumerator
lesenseAltExPinIdleDis

ALTEX output is disabled in idle phase.

lesenseAltExPinIdleHigh

ALTEX output is high in idle phase.

lesenseAltExPinIdleLow

ALTEX output is low in idle phase.


Definition at line 549 of file platform/emlib/inc/em_lesense.h

LESENSE_StTransAct_TypeDef#

LESENSE_StTransAct_TypeDef

Transition action modes.

Enumerator
lesenseTransActNone

No PRS pulses generated (if PRSCOUNT == 0).

lesenseTransActPRS0

Generate pulse on LESPRS0 (if PRSCOUNT == 0).

lesenseTransActPRS1

Generate pulse on LESPRS1 (if PRSCOUNT == 0).

lesenseTransActPRS01

Generate pulse on LESPRS0 and LESPRS1 (if PRSCOUNT == 0).

lesenseTransActPRS2

Generate pulse on LESPRS2 (for both PRSCOUNT == 0 and PRSCOUNT == 1).

lesenseTransActPRS02

Generate pulse on LESPRS0 and LESPRS2 (if PRSCOUNT == 0).

lesenseTransActPRS12

Generate pulse on LESPRS1 and LESPRS2 (if PRSCOUNT == 0).

lesenseTransActPRS012

Generate pulse on LESPRS0, LESPRS1 and LESPRS2 (if PRSCOUNT == 0).

lesenseTransActUp

Count up (if PRSCOUNT == 1).

lesenseTransActDown

Count down (if PRSCOUNT == 1).

lesenseTransActUpAndPRS2

Count up and generate pulse on LESPRS2 (if PRSCOUNT == 1).

lesenseTransActDownAndPRS2

Count down and generate pulse on LESPRS2 (if PRSCOUNT == 1).


Definition at line 566 of file platform/emlib/inc/em_lesense.h

Function Documentation#

LESENSE_Init#

void LESENSE_Init (const LESENSE_Init_TypeDef *init, bool reqReset)

Initialize the LESENSE module.

Parameters
[in]init

The LESENSE initialization structure.

[in]reqReset

Request to call LESENSE_Reset() first to initialize all LESENSE registers with default values.

This function configures the main parameters of the LESENSE interface. See the initialization parameter type definition (LESENSE_Init_TypeDef) for more details.

Note

  • LESENSE_Init() is designed to initialize LESENSE once in an operation cycle. Be aware of the effects of reconfiguration if using this function from multiple sources in your code. This function has not been designed to be re-entrant. Requesting reset by setting reqReset to true is required in each reset or power-on cycle to configure the default values of the RAM mapped LESENSE registers. Notice that GPIO pins used by the LESENSE module must be properly configured by the user explicitly for the LESENSE to work as intended. (When configuring pins, one should remember to consider the sequence of configuration to avoid unintended pulses/glitches on output pins.)


Definition at line 117 of file platform/emlib/src/em_lesense.c

LESENSE_Reset#

void LESENSE_Reset (void)

Reset the LESENSE module.

Parameters
N/A

Use this function to reset LESENSE registers.

Note

  • Resetting LESENSE registers is required in each reset or power-on cycle to configure the default values of the RAM mapped LESENSE registers. LESENSE_Reset() can be called on initialization by setting the reqReset parameter to true in LESENSE_Init(). Starting from Series 2 Config 3 (xG23 and higher), this function leaves LESENSE in the disabled state.


Definition at line 1658 of file platform/emlib/src/em_lesense.c

LESENSE_ScanFreqSet#

uint32_t LESENSE_ScanFreqSet (uint32_t refFreq, uint32_t scanFreq)

Set the scan frequency for periodic scanning.

Parameters
[in]refFreq

Select reference LFACLK clock frequency in Hz. If set to 0, the current clock frequency is being used as a reference.

[in]scanFreq

Set the desired scan frequency in Hz.

This function only applies to LESENSE if a period counter is used as a trigger for scan start. The calculation is based on the following formula: Fscan = LFACLKles / ((1+PCTOP)*2^PCPRESC)

Note

  • Note that the calculation does not necessarily result in the requested scan frequency due to integer division. Check the return value for the resulted scan frequency.

Returns

  • Frequency in Hz calculated and set by this function. Users can use this to compare the requested and set values.


Definition at line 291 of file platform/emlib/src/em_lesense.c

LESENSE_ScanModeSet#

void LESENSE_ScanModeSet (LESENSE_ScanMode_TypeDef scanMode, bool start)

Set scan mode of the LESENSE channels.

Parameters
[in]scanMode

Select the location to map LESENSE alternate excitation channels.

  • lesenseScanStartPeriodic - A new scan is started each time the period counter overflows.

  • lesenseScanStartOneShot - A single scan is performed when LESENSE_ScanStart() is called.

  • lesenseScanStartPRS - A new scan is triggered by pulse on the PRS channel.

[in]start

If true, LESENSE_ScanStart() is immediately issued after configuration.

This function configures how the scan start is triggered. It can be used for re-configuring the scan mode while running the application but it is also used by LESENSE_Init() for initialization.

Note

  • Users can configure the scan mode by LESENSE_Init() function, but only with a significant overhead. This simple function serves the purpose of controlling this parameter after the channel has been configured. Be aware of the effects of the non-atomic Read-Modify-Write cycle.


Definition at line 405 of file platform/emlib/src/em_lesense.c

LESENSE_StartDelaySet#

void LESENSE_StartDelaySet (uint8_t startDelay)

Set the start delay of the sensor interaction on each channel.

Parameters
[in]startDelay

A number of LFACLK cycles to delay. A valid range: 0-3 (2 bit).

This function sets the start delay of the sensor interaction on each channel. It can be used for adjusting the start delay while running the application but it is also used by LESENSE_Init() for initialization.

Note

  • Users can configure the start delay by LESENSE_Init() function, but only with a significant overhead. This simple function serves the purpose of controlling this parameter after the channel has been configured. Be aware of the effects of the non-atomic Read-Modify-Write cycle.


Definition at line 477 of file platform/emlib/src/em_lesense.c

LESENSE_ClkDivSet#

void LESENSE_ClkDivSet (LESENSE_ChClk_TypeDef clk, LESENSE_ClkPresc_TypeDef clkDiv)

Set the clock division for LESENSE timers.

Parameters
[in]clk

Select the clock to prescale.

  • lesenseClkHF - set AUXHFRCO clock divisor for HF timer.

  • lesenseClkLF - set LFACLKles clock divisor for LF timer.

[in]clkDiv

The clock divisor value. A valid range depends on the clk value.

Use this function to configure the clock division for the LESENSE timers used for excitation timing. The division setting is global but the clock source can be selected for each channel using LESENSE_ChannelConfig() function. See documentation for more details.

Note

  • If AUXHFRCO is used for excitation timing, LFACLK can't exceed 500 kHz. LFACLK can't exceed 50 kHz if the ACMP threshold level (ACMPTHRES) is not equal for all channels.


Definition at line 543 of file platform/emlib/src/em_lesense.c

LESENSE_ChannelAllConfig#

void LESENSE_ChannelAllConfig (const LESENSE_ChAll_TypeDef *confChAll)

Configure all (16) LESENSE sensor channels.

Parameters
[in]confChAll

A configuration structure for all (16) LESENSE sensor channels.

This function configures all sensor channels of the LESENSE interface. See the configuration parameter type definition (LESENSE_ChAll_TypeDef) for more details.

Note

  • Channels can be configured individually using LESENSE_ChannelConfig() function. Notice that pins used by the LESENSE module must be properly configured by the user explicitly for LESENSE to work as intended. (When configuring pins, consider the sequence of the configuration to avoid unintended pulses/glitches on output pins.)


Definition at line 625 of file platform/emlib/src/em_lesense.c

LESENSE_ChannelConfig#

void LESENSE_ChannelConfig (const LESENSE_ChDesc_TypeDef *confCh, uint32_t chIdx)

Configure a single LESENSE sensor channel.

Parameters
[in]confCh

A configuration structure for a single LESENSE sensor channel.

[in]chIdx

A channel index to configure (0-15).

This function configures a single sensor channel of the LESENSE interface. See the configuration parameter type definition (LESENSE_ChDesc_TypeDef) for more details.

Note

  • This function has been designed to minimize the effects of sensor channel reconfiguration while LESENSE is in operation. However, be aware of these effects and the right timing to call this function. Parameter useAltEx must be true in the channel configuration to use alternate excitation pins.


Definition at line 658 of file platform/emlib/src/em_lesense.c

LESENSE_ChannelEnable#

void LESENSE_ChannelEnable (uint8_t chIdx, bool enaScanCh, bool enaPin)

Enable/disable LESENSE scan channel and the pin assigned to it.

Parameters
[in]chIdx

An identifier of the scan channel. A valid range: 0-15.

[in]enaScanCh

Enable/disable the selected scan channel by setting this parameter to true/false respectively.

[in]enaPin

Enable/disable the pin assigned to the channel selected by chIdx.

Use this function to enable/disable a selected LESENSE scan channel and the pin assigned to it.

Note

  • Users can enable/disable scan channels and the channel pin with the LESENSE_ChannelConfig() function, but only with a significant overhead. This simple function controls these parameters after the channel has been configured.


Definition at line 900 of file platform/emlib/src/em_lesense.c

LESENSE_ChannelEnableMask#

void LESENSE_ChannelEnableMask (uint16_t chMask, uint16_t pinMask)

Enable/disable LESENSE scan channel and the pin assigned to it.

Parameters
[in]chMask

Set the corresponding bit to 1 to enable, 0 to disable the selected scan channel.

[in]pinMask

Set the corresponding bit to 1 to enable, 0 to disable the pin on selected channel.

Use this function to enable/disable LESENSE scan channels and the pins assigned to them using a mask.

Note

  • Users can enable/disable scan channels and channel pins by using the LESENSE_ChannelAllConfig() function, but only with a significant overhead. This simple function controls these parameters after the channel has been configured.


Definition at line 936 of file platform/emlib/src/em_lesense.c

LESENSE_ChannelTimingSet#

void LESENSE_ChannelTimingSet (uint8_t chIdx, uint8_t exTime, uint8_t sampleDelay, uint16_t measDelay)

Set LESENSE channel timing parameters.

Parameters
[in]chIdx

An identifier of the scan channel. A valid range is 0-15.

[in]exTime

An excitation time on chIdx. The excitation will last exTime+1 excitation clock cycles. A valid range is 0-63 (6 bits).

[in]sampleDelay

Sample delay on chIdx. Sampling will occur after sampleDelay+1 sample clock cycles. A valid range is 0-127 (7 bits).

[in]measDelay

A measure delay on chIdx. Sensor measuring is delayed for measDelay+1 excitation clock cycles. A valid range is 0-127 (7 bits).

Use this function to set timing parameters on a selected LESENSE channel.

Note

  • Users can configure the channel timing parameters with the LESENSE_ChannelConfig() function, but only with a significant overhead. This simple function controls these parameters after the channel has been configured.


Definition at line 972 of file platform/emlib/src/em_lesense.c

LESENSE_ChannelThresSet#

void LESENSE_ChannelThresSet (uint8_t chIdx, uint16_t acmpThres, uint16_t cntThres)

Set LESENSE channel threshold parameters.

Parameters
[in]chIdx

An identifier of the scan channel. A valid range is 0-15.

[in]acmpThres

ACMP threshold.

  • If perCtrl.dacCh0Data or perCtrl.dacCh1Data is set to lesenseDACIfData, acmpThres defines the 12-bit DAC data in the corresponding data register of the DAC interface (DACn_CH0DATA and DACn_CH1DATA). In this case, the valid range is 0-4095 (12 bits).

  • If perCtrl.dacCh0Data or perCtrl.dacCh1Data is set to lesenseACMPThres, acmpThres defines the 6-bit Vdd scaling factor of ACMP negative input (VDDLEVEL in ACMP_INPUTSEL register). In this case, the valid range is 0-63 (6 bits).

[in]cntThres

A decision threshold for counter comparison. A valid range is 0-65535 (16 bits).

Use this function to set threshold parameters on a selected LESENSE channel.

Note

  • Users can configure the channel threshold parameters with the LESENSE_ChannelConfig() function, but only with a significant overhead. This simple function serves controls these parameters after the channel has been configured.


Definition at line 1052 of file platform/emlib/src/em_lesense.c

LESENSE_ChannelSlidingWindow#

void LESENSE_ChannelSlidingWindow (uint8_t chIdx, uint32_t windowSize, uint32_t initValue)

Configure a Sliding Window evaluation mode for a specific channel.

Parameters
[in]chIdx

An identifier of the scan channel. A valid range is 0-15.

[in]windowSize

A window size to be used on all channels.

[in]initValue

The initial sensor value for the channel.

This function will configure the evaluation mode, the initial sensor measurement (COMPTHRES), and the window size. For other channel-related configuration, see the LESENSE_ChannelConfig() function.

Warnings

  • Note that the step size and window size configuration are global to all LESENSE channels and use the same register field in the hardware. This means that any windowSize configuration passed to this function will apply for all channels and override all other stepSize/windowSize configurations.


Definition at line 1143 of file platform/emlib/src/em_lesense.c

LESENSE_ChannelStepDetection#

void LESENSE_ChannelStepDetection (uint8_t chIdx, uint32_t stepSize, uint32_t initValue)

Configure the step detection evaluation mode for a specific channel.

Parameters
[in]chIdx

An identifier of the scan channel. A valid range is 0-15.

[in]stepSize

A step size to be used on all channels.

[in]initValue

The initial sensor value for the channel.

This function will configure the evaluation mode, the initial sensor measurement (COMPTHRES) and the window size. For other channel-related configuration, see the LESENSE_ChannelConfig() function.

Warnings

  • Note that the step size and window size configuration are global to all LESENSE channels and use the same register field in the hardware. This means that any stepSize configuration passed to this function will apply for all channels and override all other stepSize/windowSize configurations.


Definition at line 1218 of file platform/emlib/src/em_lesense.c

LESENSE_WindowSizeSet#

void LESENSE_WindowSizeSet (uint32_t windowSize)

Set the window size for all LESENSE channels.

Parameters
[in]windowSize

The window size to use for all channels.

The window size is used by all channels that are configured as lesenseEvalModeSlidingWindow.

Warnings

  • The window size configuration is using the same register field as the step detection size. As a result, the window size configuration will have an effect on channels configured with the lesenseEvalModeStepDetection evaluation mode as well.


Definition at line 1283 of file platform/emlib/src/em_lesense.c

LESENSE_StepSizeSet#

void LESENSE_StepSizeSet (uint32_t stepSize)

Set the step size for all LESENSE channels.

Parameters
[in]stepSize

The step size to use for all channels.

The step size is configured using the same register field as used to configure window size. Therefore, calling this function will overwrite any previously configured window size as done by the LESENSE_WindowSizeSet() function.


Definition at line 1326 of file platform/emlib/src/em_lesense.c

LESENSE_AltExConfig#

void LESENSE_AltExConfig (const LESENSE_ConfAltEx_TypeDef *confAltEx)

Configure the LESENSE alternate excitation modes.

Parameters
[in]confAltEx

A configuration structure for LESENSE alternate excitation pins.

This function configures the alternate excitation channels of the LESENSE interface. See the configuration parameter type definition (LESENSE_ConfAltEx_TypeDef) for more details.

Note

  • The useAltEx parameter must be true in the channel configuration structure (LESENSE_ChDesc_TypeDef) to use alternate excitation pins on the channel.


Definition at line 805 of file platform/emlib/src/em_lesense.c

LESENSE_DecoderStateAllConfig#

void LESENSE_DecoderStateAllConfig (const LESENSE_DecStAll_TypeDef *confDecStAll)

Configure all LESENSE decoder states.

Parameters
[in]confDecStAll

A configuration structure for all (16 or 32) LESENSE decoder states.

This function configures all the decoder states of the LESENSE interface. See the configuration parameter type definition (LESENSE_DecStAll_TypeDef) for more details.

Note

  • Decoder states can be configured individually using LESENSE_DecoderStateConfig() function. Starting from Series 2 Config 3 (xG23 and higher), this function configures a transition ARC instead of a decoder state.


Definition at line 1350 of file platform/emlib/src/em_lesense.c

LESENSE_DecoderStateConfig#

void LESENSE_DecoderStateConfig (const LESENSE_DecStDesc_TypeDef *confDecSt, uint32_t decSt)

Configure a single LESENSE decoder state.

Parameters
[in]confDecSt

A configuration structure for a single LESENSE decoder state.

[in]decSt

A decoder state index to configure (0-15) or (0-31) depending on the device.

This function configures a single decoder state of the LESENSE interface. See the configuration parameter type definition (LESENSE_DecStDesc_TypeDef) for more details.

Note

  • Starting from Series 2 Config 3 (xG23 and higher), this function configures a transition ARC instead of a decoder state.


Definition at line 1388 of file platform/emlib/src/em_lesense.c

LESENSE_DecoderStateSet#

void LESENSE_DecoderStateSet (uint32_t decSt)

Set the LESENSE decoder state.

Parameters
[in]decSt

A decoder state to set as the current state. A valid range is 0-15 or 0-31, depending on the device.

This function can be used for setting the initial state of the LESENSE decoder.

Note

  • Make sure the LESENSE decoder state is initialized by this function before enabling the decoder!


Definition at line 1476 of file platform/emlib/src/em_lesense.c

LESENSE_DecoderStateGet#

uint32_t LESENSE_DecoderStateGet (void)

Get the current state of the LESENSE decoder.

Parameters
N/A

Returns

  • This function returns the value of the LESENSE_DECSTATE register that represents the current state of the LESENSE decoder.


Definition at line 1492 of file platform/emlib/src/em_lesense.c

LESENSE_DecoderPrsOut#

void LESENSE_DecoderPrsOut (bool enable, uint32_t decMask, uint32_t decVal)

Enable or disable the PRS output from the LESENSE decoder.

Parameters
[in]enable

Enable/disable the PRS output from the LESENSE decoder. True to enable and false to disable.

[in]decMask

A decoder state compare value mask.

[in]decVal

A decoder state comparison value.


Definition at line 1512 of file platform/emlib/src/em_lesense.c

LESENSE_ScanStart#

void LESENSE_ScanStart (void)

Start scanning sensors.

Parameters
N/A

Note

  • This function will wait for any pending previous write operation to the CMD register to complete before accessing the CMD register. It will also wait for the write operation to the CMD register to complete before returning. Each write operation to the CMD register may take up to 3 LF clock cycles, so expect some delay. The user may implement a separate function to write multiple command bits in the CMD register in one single operation to optimize an application.


Definition at line 1533 of file platform/emlib/src/em_lesense.c

LESENSE_ScanStop#

void LESENSE_ScanStop (void)

Stop scanning sensors.

Parameters
N/A

Note

  • This function will wait for any pending previous write operation to the CMD register to complete before accessing the CMD register. It will also wait for the write operation to the CMD register to complete before returning. Each write operation to the CMD register may take up to 3 LF clock cycles, so the user should expect some delay. The user may implement a separate function to write multiple command bits in the CMD register in one single operation in order to optimize an application.

  • If issued during a scan, the command takes effect after scan completion.


Definition at line 1565 of file platform/emlib/src/em_lesense.c

LESENSE_DecoderStart#

void LESENSE_DecoderStart (void)

Start the LESENSE decoder.

Parameters
N/A

Note

  • This function will wait for any pending previous write operation to the CMD register to complete before accessing the CMD register. It will also wait for the write operation to the CMD register to complete before returning. Each write operation to the CMD register may take up to 3 LF clock cycles, so expect some delay. The user may implement a separate function to write multiple command bits in the CMD register in one single operation to optimize an application.


Definition at line 1594 of file platform/emlib/src/em_lesense.c

LESENSE_ResultBufferClear#

void LESENSE_ResultBufferClear (void)

Clear the result buffer.

Parameters
N/A

Note

  • This function will wait for any pending previous write operation to the CMD register to complete before accessing the CMD register. It will also wait for the write operation to the CMD register to complete before returning. Each write operation to the CMD register may take up to 3 LF clock cycles, so expect some delay. The user may implement a separate function to write multiple command bits in the CMD register in one single operation to optimize an application.


Definition at line 1623 of file platform/emlib/src/em_lesense.c

LESENSE_DecoderStop#

void LESENSE_DecoderStop (void)

Stop LESENSE decoder.

Parameters
N/A

Disables LESENSE decoder by setting the command to LESENSE_DECCTRL register.


Definition at line 1548 of file platform/emlib/inc/em_lesense.h

LESENSE_StatusGet#

uint32_t LESENSE_StatusGet (void)

Get the current status of LESENSE.

Parameters
N/A

Returns

  • Returns the value of the LESENSE_STATUS register that contains the OR combination of the following status bits for EFR series 0/1:

    • LESENSE_STATUS_BUFDATAV - Result data valid. Set when data is available in result buffer. Cleared when buffer is empty.

    • LESENSE_STATUS_BUFFULL - Result buffer full. Set when result buffer is full.

    • LESENSE_STATUS_BUFHALFFULL - Result buffer half full. Set when result buffer is half full.

    • LESENSE_STATUS_RUNNING - LESENSE is active.

    • LESENSE_STATUS_SCANACTIVE - LESENSE is currently interfacing sensors.

    The OR combination of the following status bits for EFR series 2:

    • LESENSE_STATUS_RESFIFOV - Result Fifo valid. Set when data is available in result Fifo. Cleared when Fifo is empty.

    • LESENSE_STATUS_RESFIFOFULL - Result Fifo full. Set when result Fifo is full.

    • LESENSE_STATUS_RUNNING - LESENSE is active.

    • LESENSE_STATUS_SCANACTIVE - LESENSE is currently interfacing sensors.

    • LESENSE_STATUS_FLUSHING - Fifo flushing

    • LESENSE_STATUS_READBUSY - Fifo Read busy


Definition at line 1584 of file platform/emlib/inc/em_lesense.h

LESENSE_StatusWait#

void LESENSE_StatusWait (uint32_t flag)

Wait until status of LESENSE is equal to what was requested.

Parameters
[in]flag

The OR combination of the following status bits for EFR series 0/1:

  • LESENSE_STATUS_BUFDATAV - Result data valid. Set when data is available in result buffer. Cleared when buffer is empty.

  • LESENSE_STATUS_BUFHALFFULL - Result buffer half full. Set when result buffer is half full.

  • LESENSE_STATUS_BUFFULL - Result buffer full. Set when result buffer is full.

  • LESENSE_STATUS_RUNNING - LESENSE is active.

  • LESENSE_STATUS_SCANACTIVE - LESENSE is currently interfacing sensors.

  • LESENSE_STATUS_DACACTIVE - The DAC interface is currently active.

The OR combination of the following status bits for EFR series 2:

  • LESENSE_STATUS_RESFIFOV - Result FIFO valid. Set when data is available in result FIFO. Cleared when FIFO is empty.

  • LESENSE_STATUS_RESFIFOFULL - Result FIFO full. Set when result FIFO is full.

  • LESENSE_STATUS_RUNNING - LESENSE is active.

  • LESENSE_STATUS_SCANACTIVE - LESENSE is currently interfacing sensors.

  • LESENSE_STATUS_FLUSHING - FIFO flushing

  • LESENSE_STATUS_READBUSY - FIFO Read busy

Polls LESENSE_STATUS register and waits until requested combination of flags are set.


Definition at line 1619 of file platform/emlib/inc/em_lesense.h

LESENSE_ChannelActiveGet#

uint32_t LESENSE_ChannelActiveGet (void)

Get the currently active channel index.

Parameters
N/A

Returns

  • Returns the value of the LESENSE_CHINDEX register that contains the index of currently active channel (0-15).


Definition at line 1633 of file platform/emlib/inc/em_lesense.h

LESENSE_ScanResultGet#

uint32_t LESENSE_ScanResultGet (void)

Get the latest scan comparison result (1 bit / channel).

Parameters
N/A

Returns

  • Returns the value of the LESENSE_SCANRES register that contains the comparison result of last scan on all channels. Bit x is set if a comparison triggered on channel x, which means that LESENSE counter met the comparison criteria set in LESENSE_CHx_EVAL by COMPMODE and CNTTHRES.


Definition at line 1649 of file platform/emlib/inc/em_lesense.h

LESENSE_ScanResultDataGet#

uint32_t LESENSE_ScanResultDataGet (void)

Get the oldest unread data from the result buffer.

Parameters
N/A

Note

  • Make sure that the STORERES bit is set in LESENSE_CHx_EVAL, or the STRSCANRES bit is set in LESENSE_CTRL; otherwise, returns the undefined value.

Returns

  • Returns the value of LESENSE_RESDATA register that contains the oldest unread counter result from result buffer.


Definition at line 1667 of file platform/emlib/inc/em_lesense.h

LESENSE_ScanResultDataBufferGet#

uint32_t LESENSE_ScanResultDataBufferGet (uint32_t idx)

Get data from the result data buffer.

Parameters
[in]idx

Result data buffer index. Valid range: 0-15.

Note

  • Make sure that the STORERES bit is set in LESENSE_CHx_EVAL, or the STRSCANRES bit is set in LESENSE_CTRL; otherwise, returns the undefined value.

Returns

  • Returns the selected word from the result data buffer.


Definition at line 1692 of file platform/emlib/inc/em_lesense.h

LESENSE_SensorStateGet#

uint32_t LESENSE_SensorStateGet (void)

Get the current state of the LESENSE sensor.

Parameters
N/A

Returns

  • Returns the value of LESENSE_SENSORSTATE register that represents the current state of the LESENSE sensor.


Definition at line 1707 of file platform/emlib/inc/em_lesense.h

LESENSE_IntClear#

void LESENSE_IntClear (uint32_t flags)

Clear one or more pending LESENSE interrupts.

Parameters
[in]flags

Pending LESENSE interrupt sources to clear. Use a set of interrupt flags OR-ed together to clear multiple interrupt sources of LESENSE module (LESENSE_IF_nnn).


Definition at line 1741 of file platform/emlib/inc/em_lesense.h

LESENSE_IntEnable#

void LESENSE_IntEnable (uint32_t flags)

Enable one or more LESENSE interrupts.

Parameters
[in]flags

LESENSE interrupt sources to enable. Use a set of interrupt flags OR-ed together to enable multiple interrupt sources of LESENSE module (LESENSE_IF_nnn).


Definition at line 1759 of file platform/emlib/inc/em_lesense.h

LESENSE_IntDisable#

void LESENSE_IntDisable (uint32_t flags)

Disable one or more LESENSE interrupts.

Parameters
[in]flags

LESENSE interrupt sources to disable. Use a set of interrupt flags OR-ed together to disable multiple interrupt sources of LESENSE module (LESENSE_IF_nnn).


Definition at line 1777 of file platform/emlib/inc/em_lesense.h

LESENSE_IntSet#

void LESENSE_IntSet (uint32_t flags)

Set one or more pending LESENSE interrupts from SW.

Parameters
[in]flags

LESENSE interrupt sources to set to pending. Use a set of interrupt flags OR-ed together to set multiple interrupt sources of LESENSE module (LESENSE_IFS_nnn).


Definition at line 1795 of file platform/emlib/inc/em_lesense.h

LESENSE_IntGet#

uint32_t LESENSE_IntGet (void)

Get pending LESENSE interrupt flags.

Parameters
N/A

Note

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

Returns

  • Pending LESENSE interrupt sources. The OR combination of valid interrupt flags of the LESENSE module (LESENSE_IF_nnn).


Definition at line 1815 of file platform/emlib/inc/em_lesense.h

LESENSE_IntGetEnabled#

uint32_t LESENSE_IntGetEnabled (void)

Get enabled and pending LESENSE interrupt flags.

Parameters
N/A

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

Note

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

Returns

  • Pending and enabled LESENSE interrupt sources. Return value is the bitwise AND combination of

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

    • the OR combination of valid interrupt flags of LESENSE module (LESENSE_IF_nnn).


Definition at line 1838 of file platform/emlib/inc/em_lesense.h

Macro Definition Documentation#

LESENSE_NUM_DECODER_STATES#

#define LESENSE_NUM_DECODER_STATES
Value:
(_LESENSE_DECSTATE_DECSTATE_MASK + 1)

Number of decoder states supported by current device.


Definition at line 50 of file platform/emlib/inc/em_lesense.h

LESENSE_NUM_CHANNELS#

#define LESENSE_NUM_CHANNELS
Value:
16

Number of LESENSE channels.


Definition at line 56 of file platform/emlib/inc/em_lesense.h

LESENSE_CORECTRL_DESC_DEFAULT#

#define LESENSE_CORECTRL_DESC_DEFAULT
Value:
{ \
lesenseScanStartPeriodic,/* Start new scan each time the period counter overflows. */ \
lesensePRSCh0, /* Default PRS channel is selected. */ \
lesenseScanConfDirMap, /* Direct mapping SCANCONF register usage strategy. */ \
false, /* Do not invert ACMP0 output. */ \
false, /* Do not invert ACMP1 output. */ \
false, /* Disable dual sampling. */ \
true, /* Store scan result after each scan. */ \
true, /* Overwrite result buffer register even if it is full. */ \
lesenseBufTrigHalf, /* Trigger interrupt and DMA request if result buffer is half full. */ \
lesenseDMAWakeUpDisable, /* Do not wake up on DMA from EM2. */ \
lesenseBiasModeDontTouch,/* Do not touch bias configuration. */ \
true /* Keep LESENSE running in debug mode. */ \
}

Default configuration for LESENSE_CtrlDesc_TypeDef structure.


Definition at line 701 of file platform/emlib/inc/em_lesense.h

LESENSE_TIMECTRL_DESC_DEFAULT#

#define LESENSE_TIMECTRL_DESC_DEFAULT
Value:
{ \
0U, /* No sensor interaction delay. */ \
false /* Do not delay the AUXHFRCO startup. */ \
}

Default configuration for LESENSE_TimeCtrlDesc_TypeDef structure.


Definition at line 746 of file platform/emlib/inc/em_lesense.h

LESENSE_PERCTRL_DESC_DEFAULT#

#define LESENSE_PERCTRL_DESC_DEFAULT
Value:
{ \
lesenseDACIfData, /* DAC channel 0 data is defined by DAC_CH0DATA register. */ \
lesenseDACIfData, /* DAC channel 1 data is defined by DAC_CH1DATA register. */ \
lesenseACMPModeMuxThres, /* LESENSE controls input mux and threshold value of ACMP0. */ \
lesenseACMPModeMuxThres, /* LESENSE controls input mux and threshold value of ACMP1. */ \
lesenseWarmupModeKeepWarm,/* Keep both ACMPs and DAC powered up when LESENSE is idle. */ \
false, /* DAC is enabled for before every channel measurement. */ \
false, /* DAC is enabled a full clock cycle before sensor interaction */ \
false, /* LESENSE does not control DAC channel 0. */ \
false /* LESENSE does not control DAC channel 1. */ \
}

Default configuration for LESENSE_PerCtrl_TypeDef structure.


Definition at line 845 of file platform/emlib/inc/em_lesense.h

LESENSE_DECCTRL_DESC_DEFAULT#

#define LESENSE_DECCTRL_DESC_DEFAULT
Value:
{ \
lesenseDecInputSensorSt, /* SENSORSTATE register is used as input to decoder. */ \
0U, /* State 0 is the initial state of decoder. */ \
false, /* Disable check of current state. */ \
true, /* Enable channel x % 16 interrupt on state x change. */ \
true, /* Enable decoder hysteresis on PRS0 output. */ \
true, /* Enable decoder hysteresis on PRS1 output. */ \
true, /* Enable decoder hysteresis on PRS2 output. */ \
true, /* Enable decoder hysteresis on PRS3 output. */ \
false, /* Disable count mode on decoder PRS channels 0 and 1*/ \
lesensePRSCh0, /* PRS Channel 0 as input for bit 0 of LESENSE decoder. */ \
lesensePRSCh1, /* PRS Channel 1 as input for bit 1 of LESENSE decoder. */ \
lesensePRSCh2, /* PRS Channel 2 as input for bit 2 of LESENSE decoder. */ \
lesensePRSCh3, /* PRS Channel 3 as input for bit 3 of LESENSE decoder. */ \
}

Default configuration for LESENSE_PerCtrl_TypeDef structure.


Definition at line 923 of file platform/emlib/inc/em_lesense.h

LESENSE_INIT_DEFAULT#

#define LESENSE_INIT_DEFAULT
Value:
{ \
.coreCtrl = LESENSE_CORECTRL_DESC_DEFAULT, /* Default core control parameters. */ \
.timeCtrl = LESENSE_TIMECTRL_DESC_DEFAULT, /* Default time control parameters. */ \
.perCtrl = LESENSE_PERCTRL_DESC_DEFAULT, /* Default peripheral control parameters. */ \
.decCtrl = LESENSE_DECCTRL_DESC_DEFAULT /* Default decoder control parameters. */ \
}

Default configuration for LESENSE_Init_TypeDef structure.


Definition at line 968 of file platform/emlib/inc/em_lesense.h

LESENSE_CH_CONF_DEFAULT#

#define LESENSE_CH_CONF_DEFAULT
Value:
{ \
false, /* Disable scan channel. */ \
false, /* Disable assigned pin on scan channel. */ \
false, /* Disable interrupts on channel. */ \
lesenseChPinExDis, /* Channel pin is disabled during excitation period. */ \
lesenseChPinIdleDis, /* Channel pin is disabled during idle period. */ \
false, /* Do not use alternate excitation pins for excitation. */ \
false, /* Disabled to shift results from this channel to decoder register. */ \
false, /* Disabled to invert scan result bit. */ \
false, /* Disabled to store counter value in result buffer. */ \
lesenseClkLF, /* Use LF clock for excitation timing. */ \
lesenseClkLF, /* Use LF clock for sample timing. */ \
0x00U, /* Excitation time is set to 0(+1) excitation clock cycles. */ \
0x00U, /* Sample delay is set to 0(+1) sample clock cycles. */ \
0x00U, /* Measure delay is set to 0 excitation clock cycles.*/ \
0x00U, /* ACMP threshold has been set to 0. */ \
lesenseSampleModeACMP, /* ACMP output will be used in comparison. */ \
lesenseSetIntNone, /* No interrupt is generated by the channel. */ \
0x00U, /* Counter threshold has bee set to 0x00. */ \
lesenseCompModeLess, /* Compare mode has been set to trigger interrupt on "less". */ \
lesenseEvalModeThreshold /* Evaluation mode has been set to trigger interrupt on threshold. */ \
}

Default configuration for the scan channel.


Definition at line 1100 of file platform/emlib/inc/em_lesense.h

LESENSE_SCAN_CONF_DEFAULT#

#define LESENSE_SCAN_CONF_DEFAULT
Value:
{ \
{ \
LESENSE_CH_CONF_DEFAULT, /* Scan channel 0. */ \
LESENSE_CH_CONF_DEFAULT, /* Scan channel 1. */ \
LESENSE_CH_CONF_DEFAULT, /* Scan channel 2. */ \
LESENSE_CH_CONF_DEFAULT, /* Scan channel 3. */ \
LESENSE_CH_CONF_DEFAULT, /* Scan channel 4. */ \
LESENSE_CH_CONF_DEFAULT, /* Scan channel 5. */ \
LESENSE_CH_CONF_DEFAULT, /* Scan channel 6. */ \
LESENSE_CH_CONF_DEFAULT, /* Scan channel 7. */ \
LESENSE_CH_CONF_DEFAULT, /* Scan channel 8. */ \
LESENSE_CH_CONF_DEFAULT, /* Scan channel 9. */ \
LESENSE_CH_CONF_DEFAULT, /* Scan channel 10. */ \
LESENSE_CH_CONF_DEFAULT, /* Scan channel 11. */ \
LESENSE_CH_CONF_DEFAULT, /* Scan channel 12. */ \
LESENSE_CH_CONF_DEFAULT, /* Scan channel 13. */ \
LESENSE_CH_CONF_DEFAULT, /* Scan channel 14. */ \
LESENSE_CH_CONF_DEFAULT, /* Scan channel 15. */ \
} \
}

Default configuration for all the sensor channels.


Definition at line 1149 of file platform/emlib/inc/em_lesense.h

LESENSE_ALTEX_CH_CONF_DEFAULT#

#define LESENSE_ALTEX_CH_CONF_DEFAULT
Value:
{ \
false, /* Alternate excitation disabled.*/ \
lesenseAltExPinIdleDis,/* Alternate excitation pin is disabled in idle. */ \
false /* Excite only for corresponding channel. */ \
}

Default configuration for the alternate excitation channel.


Definition at line 1217 of file platform/emlib/inc/em_lesense.h

LESENSE_ALTEX_CONF_DEFAULT#

#define LESENSE_ALTEX_CONF_DEFAULT
Value:
{ \
lesenseAltExMapCH, \
{ \
LESENSE_ALTEX_CH_CONF_DEFAULT, /* Alternate excitation channel 0. */ \
LESENSE_ALTEX_CH_CONF_DEFAULT, /* Alternate excitation channel 1. */ \
LESENSE_ALTEX_CH_CONF_DEFAULT, /* Alternate excitation channel 2. */ \
LESENSE_ALTEX_CH_CONF_DEFAULT, /* Alternate excitation channel 3. */ \
LESENSE_ALTEX_CH_CONF_DEFAULT, /* Alternate excitation channel 4. */ \
LESENSE_ALTEX_CH_CONF_DEFAULT, /* Alternate excitation channel 5. */ \
LESENSE_ALTEX_CH_CONF_DEFAULT, /* Alternate excitation channel 6. */ \
LESENSE_ALTEX_CH_CONF_DEFAULT, /* Alternate excitation channel 7. */ \
LESENSE_ALTEX_CH_CONF_DEFAULT, /* Alternate excitation channel 8. */ \
LESENSE_ALTEX_CH_CONF_DEFAULT, /* Alternate excitation channel 9. */ \
LESENSE_ALTEX_CH_CONF_DEFAULT, /* Alternate excitation channel 10. */ \
LESENSE_ALTEX_CH_CONF_DEFAULT, /* Alternate excitation channel 11. */ \
LESENSE_ALTEX_CH_CONF_DEFAULT, /* Alternate excitation channel 12. */ \
LESENSE_ALTEX_CH_CONF_DEFAULT, /* Alternate excitation channel 13. */ \
LESENSE_ALTEX_CH_CONF_DEFAULT, /* Alternate excitation channel 14. */ \
LESENSE_ALTEX_CH_CONF_DEFAULT /* Alternate excitation channel 15. */ \
} \
}

Default configuration for all the alternate excitation channels.


Definition at line 1256 of file platform/emlib/inc/em_lesense.h

LESENSE_ST_CONF_DEFAULT#

#define LESENSE_ST_CONF_DEFAULT
Value:
{ \
0x0FU, /* Compare value set to 0x0F. */ \
0x00U, /* All decoder inputs masked. */ \
0U, /* Next state is state 0. */ \
lesenseTransActNone, /* No PRS action performed on compare match. */ \
false /* No interrupt triggered on compare match. */ \
}

Default configuration for the decoder state condition.


Definition at line 1334 of file platform/emlib/inc/em_lesense.h

LESENSE_DECODER_CONF_DEFAULT#

#define LESENSE_DECODER_CONF_DEFAULT

Default configuration for all decoder states.


Definition at line 1408 of file platform/emlib/inc/em_lesense.h