EFM32 Giant Gecko Software Documentation
efm32gg-doc-4.2.1
|
Low Energy Sensor (LESENSE) Peripheral API
. More...
Data Structures | |
struct | LESENSE_CoreCtrlDesc_TypeDef |
struct | LESENSE_TimeCtrlDesc_TypeDef |
struct | LESENSE_PerCtrlDesc_TypeDef |
struct | LESENSE_DecCtrlDesc_TypeDef |
struct | LESENSE_Init_TypeDef |
struct | LESENSE_ChDesc_TypeDef |
struct | LESENSE_ChAll_TypeDef |
struct | LESENSE_AltExDesc_TypeDef |
struct | LESENSE_ConfAltEx_TypeDef |
struct | LESENSE_DecStCond_TypeDef |
struct | LESENSE_DecStDesc_TypeDef |
struct | LESENSE_DecStAll_TypeDef |
Macros | |
#define | LESENSE_CORECTRL_DESC_DEFAULT |
#define | LESENSE_TIMECTRL_DESC_DEFAULT |
#define | LESENSE_PERCTRL_DESC_DEFAULT |
#define | LESENSE_DECCTRL_DESC_DEFAULT |
#define | LESENSE_INIT_DEFAULT |
#define | LESENSE_CH_CONF_DEFAULT |
#define | LESENSE_SCAN_CONF_DEFAULT |
#define | LESENSE_ALTEX_CH_CONF_DEFAULT |
#define | LESENSE_ALTEX_CONF_DEFAULT |
#define | LESENSE_ST_CONF_DEFAULT |
#define | LESENSE_DECODER_CONF_DEFAULT |
Enumerations | |
enum | LESENSE_ClkPresc_TypeDef { lesenseClkDiv_1 = 0, lesenseClkDiv_2 = 1, lesenseClkDiv_4 = 2, lesenseClkDiv_8 = 3, lesenseClkDiv_16 = 4, lesenseClkDiv_32 = 5, lesenseClkDiv_64 = 6, lesenseClkDiv_128 = 7 } |
enum | LESENSE_ScanMode_TypeDef { lesenseScanStartPeriodic = LESENSE_CTRL_SCANMODE_PERIODIC, lesenseScanStartOneShot = LESENSE_CTRL_SCANMODE_ONESHOT, lesenseScanStartPRS = LESENSE_CTRL_SCANMODE_PRS } |
enum | LESENSE_PRSSel_TypeDef { lesensePRSCh0 = 0, lesensePRSCh1 = 1, lesensePRSCh2 = 2, lesensePRSCh3 = 3, lesensePRSCh4 = 4, lesensePRSCh5 = 5, lesensePRSCh6 = 6, lesensePRSCh7 = 7, lesensePRSCh8 = 8, lesensePRSCh9 = 9, lesensePRSCh10 = 10, lesensePRSCh11 = 11 } |
enum | LESENSE_AltExMap_TypeDef { lesenseAltExMapALTEX = _LESENSE_CTRL_ALTEXMAP_ALTEX, lesenseAltExMapACMP = _LESENSE_CTRL_ALTEXMAP_ACMP } |
enum | LESENSE_BufTrigLevel_TypeDef { lesenseBufTrigHalf = LESENSE_CTRL_BUFIDL_HALFFULL, lesenseBufTrigFull = LESENSE_CTRL_BUFIDL_FULL } |
enum | LESENSE_DMAWakeUp_TypeDef { lesenseDMAWakeUpDisable = LESENSE_CTRL_DMAWU_DISABLE, lesenseDMAWakeUpBufValid = LESENSE_CTRL_DMAWU_BUFDATAV, lesenseDMAWakeUpBufLevel = LESENSE_CTRL_DMAWU_BUFLEVEL } |
enum | LESENSE_BiasMode_TypeDef { lesenseBiasModeDutyCycle = LESENSE_BIASCTRL_BIASMODE_DUTYCYCLE, lesenseBiasModeHighAcc = LESENSE_BIASCTRL_BIASMODE_HIGHACC, lesenseBiasModeDontTouch = LESENSE_BIASCTRL_BIASMODE_DONTTOUCH } |
enum | LESENSE_ScanConfSel_TypeDef { lesenseScanConfDirMap = LESENSE_CTRL_SCANCONF_DIRMAP, lesenseScanConfInvMap = LESENSE_CTRL_SCANCONF_INVMAP, lesenseScanConfToggle = LESENSE_CTRL_SCANCONF_TOGGLE, lesenseScanConfDecDef = LESENSE_CTRL_SCANCONF_DECDEF } |
enum | LESENSE_ControlDACData_TypeDef { lesenseDACIfData = _LESENSE_PERCTRL_DACCH0DATA_DACDATA, lesenseACMPThres = _LESENSE_PERCTRL_DACCH0DATA_ACMPTHRES } |
enum | LESENSE_ControlDACConv_TypeDef { lesenseDACConvModeDisable = _LESENSE_PERCTRL_DACCH0CONV_DISABLE, lesenseDACConvModeContinuous = _LESENSE_PERCTRL_DACCH0CONV_CONTINUOUS, lesenseDACConvModeSampleHold = _LESENSE_PERCTRL_DACCH0CONV_SAMPLEHOLD, lesenseDACConvModeSampleOff = _LESENSE_PERCTRL_DACCH0CONV_SAMPLEOFF } |
enum | LESENSE_ControlDACOut_TypeDef { lesenseDACOutModeDisable = _LESENSE_PERCTRL_DACCH0OUT_DISABLE, lesenseDACOutModePin = _LESENSE_PERCTRL_DACCH0OUT_PIN, lesenseDACOutModeADCACMP = _LESENSE_PERCTRL_DACCH0OUT_ADCACMP, lesenseDACOutModePinADCACMP = _LESENSE_PERCTRL_DACCH0OUT_PINADCACMP } |
enum | LESENSE_DACRef_TypeDef { lesenseDACRefVdd = LESENSE_PERCTRL_DACREF_VDD, lesenseDACRefBandGap = LESENSE_PERCTRL_DACREF_BANDGAP } |
enum | LESENSE_ControlACMP_TypeDef { lesenseACMPModeDisable = _LESENSE_PERCTRL_ACMP0MODE_DISABLE, lesenseACMPModeMux = _LESENSE_PERCTRL_ACMP0MODE_MUX, lesenseACMPModeMuxThres = _LESENSE_PERCTRL_ACMP0MODE_MUXTHRES } |
enum | LESENSE_WarmupMode_TypeDef { lesenseWarmupModeNormal = LESENSE_PERCTRL_WARMUPMODE_NORMAL, lesenseWarmupModeACMP = LESENSE_PERCTRL_WARMUPMODE_KEEPACMPWARM, lesenseWarmupModeDAC = LESENSE_PERCTRL_WARMUPMODE_KEEPDACWARM, lesenseWarmupModeKeepWarm = LESENSE_PERCTRL_WARMUPMODE_KEEPACMPDACWARM } |
enum | LESENSE_DecInput_TypeDef { lesenseDecInputSensorSt = LESENSE_DECCTRL_INPUT_SENSORSTATE, lesenseDecInputPRS = LESENSE_DECCTRL_INPUT_PRS } |
enum | LESENSE_ChSampleMode_TypeDef { lesenseSampleModeCounter = LESENSE_CH_INTERACT_SAMPLE_COUNTER, lesenseSampleModeACMP = LESENSE_CH_INTERACT_SAMPLE_ACMP } |
enum | LESENSE_ChIntMode_TypeDef { lesenseSetIntNone = LESENSE_CH_INTERACT_SETIF_NONE, lesenseSetIntLevel = LESENSE_CH_INTERACT_SETIF_LEVEL, lesenseSetIntPosEdge = LESENSE_CH_INTERACT_SETIF_POSEDGE, lesenseSetIntNegEdge = LESENSE_CH_INTERACT_SETIF_NEGEDGE } |
enum | LESENSE_ChPinExMode_TypeDef { lesenseChPinExDis = LESENSE_CH_INTERACT_EXMODE_DISABLE, lesenseChPinExHigh = LESENSE_CH_INTERACT_EXMODE_HIGH, lesenseChPinExLow = LESENSE_CH_INTERACT_EXMODE_LOW, lesenseChPinExDACOut = LESENSE_CH_INTERACT_EXMODE_DACOUT } |
enum | LESENSE_ChPinIdleMode_TypeDef { lesenseChPinIdleDis = _LESENSE_IDLECONF_CH0_DISABLE, lesenseChPinIdleHigh = _LESENSE_IDLECONF_CH0_HIGH, lesenseChPinIdleLow = _LESENSE_IDLECONF_CH0_LOW, lesenseChPinIdleDACCh0 = _LESENSE_IDLECONF_CH0_DACCH0, lesenseChPinIdleDACCh1 = _LESENSE_IDLECONF_CH12_DACCH1 } |
enum | LESENSE_ChClk_TypeDef { lesenseClkLF = _LESENSE_CH_INTERACT_EXCLK_LFACLK, lesenseClkHF = _LESENSE_CH_INTERACT_EXCLK_AUXHFRCO } |
enum | LESENSE_ChCompMode_TypeDef { lesenseCompModeLess = LESENSE_CH_EVAL_COMP_LESS, lesenseCompModeGreaterOrEq = LESENSE_CH_EVAL_COMP_GE } |
enum | LESENSE_AltExPinIdle_TypeDef { lesenseAltExPinIdleDis = _LESENSE_ALTEXCONF_IDLECONF0_DISABLE, lesenseAltExPinIdleHigh = _LESENSE_ALTEXCONF_IDLECONF0_HIGH, lesenseAltExPinIdleLow = _LESENSE_ALTEXCONF_IDLECONF0_LOW } |
enum | LESENSE_StTransAct_TypeDef { 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 } |
Functions | |
void | LESENSE_Init (LESENSE_Init_TypeDef const *init, bool const reqReset) |
Initialize the LESENSE module. More... | |
void | LESENSE_Reset (void) |
Reset the LESENSE module. More... | |
uint32_t | LESENSE_ScanFreqSet (uint32_t refFreq, uint32_t const scanFreq) |
Set scan frequency for periodic scanning. More... | |
void | LESENSE_ScanModeSet (LESENSE_ScanMode_TypeDef const scanMode, bool const start) |
Set scan mode of the LESENSE channels. More... | |
void | LESENSE_StartDelaySet (uint8_t const startDelay) |
Set start delay of sensor interaction on each channel. More... | |
void | LESENSE_ClkDivSet (LESENSE_ChClk_TypeDef const clk, LESENSE_ClkPresc_TypeDef const clkDiv) |
Set clock division for LESENSE timers. More... | |
void | LESENSE_ChannelAllConfig (LESENSE_ChAll_TypeDef const *confChAll) |
Configure all (16) LESENSE sensor channels. More... | |
void | LESENSE_ChannelConfig (LESENSE_ChDesc_TypeDef const *confCh, uint32_t const chIdx) |
Configure a single LESENSE sensor channel. More... | |
void | LESENSE_ChannelEnable (uint8_t const chIdx, bool const enaScanCh, bool const enaPin) |
Enable/disable LESENSE scan channel and the pin assigned to it. More... | |
void | LESENSE_ChannelEnableMask (uint16_t chMask, uint16_t pinMask) |
Enable/disable LESENSE scan channel and the pin assigned to it. More... | |
void | LESENSE_ChannelTimingSet (uint8_t const chIdx, uint8_t const exTime, uint8_t const sampleDelay, uint8_t const measDelay) |
Set LESENSE channel timing parameters. More... | |
void | LESENSE_ChannelThresSet (uint8_t const chIdx, uint16_t const acmpThres, uint16_t const cntThres) |
Set LESENSE channel threshold parameters. More... | |
void | LESENSE_AltExConfig (LESENSE_ConfAltEx_TypeDef const *confAltEx) |
Configure the LESENSE alternate excitation modes. More... | |
void | LESENSE_DecoderStateAllConfig (LESENSE_DecStAll_TypeDef const *confDecStAll) |
Configure all LESENSE decoder states. More... | |
void | LESENSE_DecoderStateConfig (LESENSE_DecStDesc_TypeDef const *confDecSt, uint32_t const decSt) |
Configure a single LESENSE decoder state. More... | |
void | LESENSE_DecoderStateSet (uint32_t decSt) |
Set LESENSE decoder state. More... | |
uint32_t | LESENSE_DecoderStateGet (void) |
Get the current state of the LESENSE decoder. More... | |
void | LESENSE_ScanStart (void) |
Start scanning of sensors. More... | |
void | LESENSE_ScanStop (void) |
Stop scanning of sensors. More... | |
void | LESENSE_DecoderStart (void) |
Start LESENSE decoder. More... | |
void | LESENSE_ResultBufferClear (void) |
Clear result buffer. More... | |
__STATIC_INLINE void | LESENSE_DecoderStop (void) |
Stop LESENSE decoder. More... | |
__STATIC_INLINE uint32_t | LESENSE_StatusGet (void) |
Get the current status of LESENSE. More... | |
__STATIC_INLINE void | LESENSE_StatusWait (uint32_t flag) |
Wait until the status of LESENSE is equal to what requested. More... | |
__STATIC_INLINE uint32_t | LESENSE_ChannelActiveGet (void) |
Get the currently active channel index. More... | |
__STATIC_INLINE uint32_t | LESENSE_ScanResultGet (void) |
Get the latest scan comparison result (1 bit / channel). More... | |
__STATIC_INLINE uint32_t | LESENSE_ScanResultDataGet (void) |
Get the oldest unread data from the result buffer. More... | |
__STATIC_INLINE uint32_t | LESENSE_ScanResultDataBufferGet (uint32_t idx) |
Get data from the result data buffer. More... | |
__STATIC_INLINE uint32_t | LESENSE_SensorStateGet (void) |
Get the current state of the LESENSE sensor. More... | |
__STATIC_INLINE void | LESENSE_RAMPowerDown (void) |
Shut off power to the LESENSE RAM, disables LESENSE. More... | |
__STATIC_INLINE void | LESENSE_IntClear (uint32_t flags) |
Clear one or more pending LESENSE interrupts. More... | |
__STATIC_INLINE void | LESENSE_IntEnable (uint32_t flags) |
Enable one or more LESENSE interrupts. More... | |
__STATIC_INLINE void | LESENSE_IntDisable (uint32_t flags) |
Disable one or more LESENSE interrupts. More... | |
__STATIC_INLINE void | LESENSE_IntSet (uint32_t flags) |
Set one or more pending LESENSE interrupts from SW. More... | |
__STATIC_INLINE uint32_t | LESENSE_IntGet (void) |
Get pending LESENSE interrupt flags. More... | |
__STATIC_INLINE uint32_t | LESENSE_IntGetEnabled (void) |
Get enabled and pending LESENSE interrupt flags. More... | |
#define LESENSE_CORECTRL_DESC_DEFAULT |
Default configuration for LESENSE_CtrlDesc_TypeDef structure.
Definition at line 518 of file em_lesense.h.
#define LESENSE_TIMECTRL_DESC_DEFAULT |
Default configuration for LESENSE_TimeCtrlDesc_TypeDef structure.
Definition at line 544 of file em_lesense.h.
#define LESENSE_PERCTRL_DESC_DEFAULT |
Default configuration for LESENSE_PerCtrl_TypeDef structure.
Definition at line 590 of file em_lesense.h.
#define LESENSE_DECCTRL_DESC_DEFAULT |
Default configuration for LESENSE_PerCtrl_TypeDef structure.
Definition at line 657 of file em_lesense.h.
#define LESENSE_INIT_DEFAULT |
Default configuration for LESENSE_Init_TypeDef structure.
Definition at line 692 of file em_lesense.h.
#define LESENSE_CH_CONF_DEFAULT |
Default configuration for scan channel.
Definition at line 787 of file em_lesense.h.
#define LESENSE_SCAN_CONF_DEFAULT |
Default configuration for all sensor channels.
Definition at line 811 of file em_lesense.h.
#define LESENSE_ALTEX_CH_CONF_DEFAULT |
Default configuration for alternate excitation channel.
Definition at line 880 of file em_lesense.h.
#define LESENSE_ALTEX_CONF_DEFAULT |
Default configuration for all alternate excitation channels.
Definition at line 888 of file em_lesense.h.
#define LESENSE_ST_CONF_DEFAULT |
Default configuration for decoder state condition.
Definition at line 937 of file em_lesense.h.
#define LESENSE_DECODER_CONF_DEFAULT |
Default configuration for all decoder states.
Definition at line 972 of file em_lesense.h.
Clock divisors for controlling the prescaling factor of the period counter. Note: these enumeration values are being used for different clock division related configuration parameters (hfPresc, lfPresc, pcPresc).
Definition at line 71 of file em_lesense.h.
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 85 of file em_lesense.h.
PRS sources. Note: these enumeration values are being used for different PRS related configuration parameters.
Definition at line 101 of file em_lesense.h.
Locations of the alternate excitation function.
Enumerator | |
---|---|
lesenseAltExMapALTEX |
Alternate excitation is mapped to the LES_ALTEX pins. |
lesenseAltExMapACMP |
Alternate excitation is mapped to the pins of the other ACMP. |
Definition at line 135 of file em_lesense.h.
Result buffer interrupt and DMA trigger levels.
Enumerator | |
---|---|
lesenseBufTrigHalf |
DMA and interrupt flags are set when result buffer is halffull. |
lesenseBufTrigFull |
DMA and interrupt flags set when result buffer is full. |
Definition at line 146 of file em_lesense.h.
Modes of operation for DMA wakeup from EM2.
Definition at line 157 of file em_lesense.h.
Bias modes.
Definition at line 173 of file em_lesense.h.
Scan configuration.
Definition at line 187 of file em_lesense.h.
DAC CHx data control configuration.
Definition at line 208 of file em_lesense.h.
DAC channel x conversion mode configuration.
Definition at line 221 of file em_lesense.h.
DAC channel x output mode configuration.
Definition at line 242 of file em_lesense.h.
DAC reference configuration.
Enumerator | |
---|---|
lesenseDACRefVdd |
DAC uses VDD reference. |
lesenseDACRefBandGap |
DAC uses bandgap reference. |
Definition at line 263 of file em_lesense.h.
ACMPx control configuration.
Definition at line 274 of file em_lesense.h.
Warm up modes. ACMP and DAC duty cycle mode configuration.
Definition at line 291 of file em_lesense.h.
Decoder input source configuration.
Enumerator | |
---|---|
lesenseDecInputSensorSt |
The SENSORSTATE register is used as input to the decoder. |
lesenseDecInputPRS |
PRS channels are used as input to the decoder. |
Definition at line 308 of file em_lesense.h.
Compare source selection for sensor sampling.
Enumerator | |
---|---|
lesenseSampleModeCounter |
Counter output will be used in comparison. |
lesenseSampleModeACMP |
ACMP output will be used in comparison. |
Definition at line 319 of file em_lesense.h.
Interrupt generation setup for CHx interrupt flag.
Definition at line 330 of file em_lesense.h.
Channel pin mode for the excitation phase of the scan sequence.
Definition at line 347 of file em_lesense.h.
Channel pin mode for the idle phase of the scan sequence.
Definition at line 364 of file em_lesense.h.
Clock used for excitation and sample delay timing.
Enumerator | |
---|---|
lesenseClkLF |
LFACLK (LF clock) is used. |
lesenseClkHF |
AUXHFRCO (HF clock) is used. |
Definition at line 389 of file em_lesense.h.
Compare modes for counter comparison.
Definition at line 400 of file em_lesense.h.
Idle phase configuration of alternate excitation channels.
Definition at line 413 of file em_lesense.h.
Transition action modes.
Definition at line 430 of file em_lesense.h.
void LESENSE_Init | ( | LESENSE_Init_TypeDef const * | init, |
bool const | reqReset | ||
) |
This function configures the main parameters of the LESENSE interface. Please refer to the initialization parameter type definition (LESENSE_Init_TypeDef) for more details.
reqReset
to true is required in each reset or power-on cycle in order 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, in order for the LESENSE to work as intended. (When configuring pins, one should remember to consider the sequence of configuration, in order to avoid unintended pulses/glitches on output pins.)[in] | init | LESENSE initialization structure. |
[in] | reqReset | Request to call LESENSE_Reset() first in order to initialize all LESENSE registers with the default value. |
Definition at line 96 of file em_lesense.c.
References _LESENSE_CTRL_ACMP0INV_SHIFT, _LESENSE_CTRL_ACMP1INV_SHIFT, _LESENSE_CTRL_BUFOW_SHIFT, _LESENSE_CTRL_DEBUGRUN_SHIFT, _LESENSE_CTRL_DUALSAMPLE_SHIFT, _LESENSE_CTRL_PRSSEL_SHIFT, _LESENSE_CTRL_STRSCANRES_SHIFT, _LESENSE_DECCTRL_ERRCHK_SHIFT, _LESENSE_DECCTRL_HYSTIRQ_SHIFT, _LESENSE_DECCTRL_HYSTPRS0_SHIFT, _LESENSE_DECCTRL_HYSTPRS1_SHIFT, _LESENSE_DECCTRL_HYSTPRS2_SHIFT, _LESENSE_DECCTRL_INTMAP_SHIFT, _LESENSE_DECCTRL_PRSCNT_SHIFT, _LESENSE_DECCTRL_PRSSEL0_SHIFT, _LESENSE_DECCTRL_PRSSEL1_SHIFT, _LESENSE_DECCTRL_PRSSEL2_SHIFT, _LESENSE_DECCTRL_PRSSEL3_SHIFT, _LESENSE_PERCTRL_ACMP0MODE_SHIFT, _LESENSE_PERCTRL_ACMP1MODE_SHIFT, _LESENSE_PERCTRL_DACCH0CONV_SHIFT, _LESENSE_PERCTRL_DACCH0DATA_SHIFT, _LESENSE_PERCTRL_DACCH0OUT_SHIFT, _LESENSE_PERCTRL_DACCH1CONV_SHIFT, _LESENSE_PERCTRL_DACCH1DATA_SHIFT, _LESENSE_PERCTRL_DACCH1OUT_SHIFT, _LESENSE_PERCTRL_DACPRESC_SHIFT, LESENSE_PerCtrlDesc_TypeDef::acmp0Mode, LESENSE_PerCtrlDesc_TypeDef::acmp1Mode, LESENSE_CoreCtrlDesc_TypeDef::biasMode, LESENSE_CoreCtrlDesc_TypeDef::bufOverWr, LESENSE_CoreCtrlDesc_TypeDef::bufTrigLevel, LESENSE_DecCtrlDesc_TypeDef::chkState, LESENSE_Init_TypeDef::coreCtrl, LESENSE_PerCtrlDesc_TypeDef::dacCh0ConvMode, LESENSE_PerCtrlDesc_TypeDef::dacCh0Data, LESENSE_PerCtrlDesc_TypeDef::dacCh0OutMode, LESENSE_PerCtrlDesc_TypeDef::dacCh1ConvMode, LESENSE_PerCtrlDesc_TypeDef::dacCh1Data, LESENSE_PerCtrlDesc_TypeDef::dacCh1OutMode, LESENSE_PerCtrlDesc_TypeDef::dacPresc, LESENSE_PerCtrlDesc_TypeDef::dacRef, LESENSE_CoreCtrlDesc_TypeDef::debugRun, LESENSE_Init_TypeDef::decCtrl, LESENSE_DecCtrlDesc_TypeDef::decInput, LESENSE_CoreCtrlDesc_TypeDef::dualSample, LESENSE_DecCtrlDesc_TypeDef::hystIRQ, LESENSE_DecCtrlDesc_TypeDef::hystPRS0, LESENSE_DecCtrlDesc_TypeDef::hystPRS1, LESENSE_DecCtrlDesc_TypeDef::hystPRS2, LESENSE_DecCtrlDesc_TypeDef::initState, LESENSE_DecCtrlDesc_TypeDef::intMap, LESENSE_CoreCtrlDesc_TypeDef::invACMP0, LESENSE_CoreCtrlDesc_TypeDef::invACMP1, LESENSE, LESENSE_DecoderStateSet(), LESENSE_Reset(), LESENSE_ScanModeSet(), LESENSE_StartDelaySet(), LESENSE_Init_TypeDef::perCtrl, LESENSE_DecCtrlDesc_TypeDef::prsChSel0, LESENSE_DecCtrlDesc_TypeDef::prsChSel1, LESENSE_DecCtrlDesc_TypeDef::prsChSel2, LESENSE_DecCtrlDesc_TypeDef::prsChSel3, LESENSE_DecCtrlDesc_TypeDef::prsCount, LESENSE_CoreCtrlDesc_TypeDef::prsSel, LESENSE_CoreCtrlDesc_TypeDef::scanConfSel, LESENSE_CoreCtrlDesc_TypeDef::scanStart, LESENSE_TimeCtrlDesc_TypeDef::startDelay, LESENSE_CoreCtrlDesc_TypeDef::storeScanRes, LESENSE_Init_TypeDef::timeCtrl, LESENSE_CoreCtrlDesc_TypeDef::wakeupOnDMA, and LESENSE_PerCtrlDesc_TypeDef::warmupMode.
Referenced by CAPLESENSE_setupLESENSE().
void LESENSE_Reset | ( | void | ) |
Use this function to reset the LESENSE registers.
reqReset
parameter to true in LESENSE_Init(). Definition at line 1062 of file em_lesense.c.
References _LESENSE_ALTEXCONF_RESETVALUE, _LESENSE_BIASCTRL_RESETVALUE, _LESENSE_CH_EVAL_RESETVALUE, _LESENSE_CH_INTERACT_RESETVALUE, _LESENSE_CH_TIMING_RESETVALUE, _LESENSE_CHEN_RESETVALUE, _LESENSE_CTRL_RESETVALUE, _LESENSE_DECCTRL_RESETVALUE, _LESENSE_IDLECONF_RESETVALUE, _LESENSE_IEN_RESETVALUE, _LESENSE_IFC_MASK, _LESENSE_PERCTRL_RESETVALUE, _LESENSE_ROUTE_RESETVALUE, _LESENSE_ST_TCONFA_RESETVALUE, _LESENSE_ST_TCONFB_RESETVALUE, LESENSE, LESENSE_CMD_CLEARBUF, LESENSE_CMD_STOP, LESENSE_DECCTRL_DISABLE, and LESENSE_SYNCBUSY_CMD.
Referenced by LESENSE_Init().
uint32_t LESENSE_ScanFreqSet | ( | uint32_t | refFreq, |
uint32_t const | scanFreq | ||
) |
This function only applies to LESENSE if period counter is being used as a trigger for scan start. The calculation is based on the following formula: Fscan = LFACLKles / ((1+PCTOP)*2^PCPRESC)
[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. |
Definition at line 207 of file em_lesense.c.
References _LESENSE_TIMCTRL_PCPRESC_MASK, _LESENSE_TIMCTRL_PCPRESC_SHIFT, _LESENSE_TIMCTRL_PCTOP_MASK, _LESENSE_TIMCTRL_PCTOP_SHIFT, CMU_ClockFreqGet(), cmuClock_LESENSE, LESENSE, and lesenseClkDiv_128.
Referenced by CAPLESENSE_setupLESENSE().
void LESENSE_ScanModeSet | ( | LESENSE_ScanMode_TypeDef const | scanMode, |
bool const | start | ||
) |
This function configures how the scan start is being 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.
[in] | scanMode | Select where to map LESENSE alternate excitation channels.
|
[in] | start | If true, LESENSE_ScanStart() is immediately issued after configuration. |
Definition at line 289 of file em_lesense.c.
References _LESENSE_CTRL_SCANMODE_MASK, LESENSE, and LESENSE_ScanStart().
Referenced by LESENSE_Init().
void LESENSE_StartDelaySet | ( | uint8_t const | startDelay | ) |
This function sets start delay of 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.
[in] | startDelay | Number of LFACLK cycles to delay. Valid range: 0-3 (2 bit). |
Definition at line 331 of file em_lesense.c.
References _LESENSE_TIMCTRL_STARTDLY_MASK, _LESENSE_TIMCTRL_STARTDLY_SHIFT, and LESENSE.
Referenced by LESENSE_Init().
void LESENSE_ClkDivSet | ( | LESENSE_ChClk_TypeDef const | clk, |
LESENSE_ClkPresc_TypeDef const | clkDiv | ||
) |
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, please refer to the documentation of it for more details.
[in] | clk | Select clock to prescale.
|
[in] | clkDiv | Clock divisor value. Valid range depends on the clk value. |
Definition at line 374 of file em_lesense.c.
References _LESENSE_TIMCTRL_AUXPRESC_MASK, _LESENSE_TIMCTRL_AUXPRESC_SHIFT, _LESENSE_TIMCTRL_LFPRESC_MASK, _LESENSE_TIMCTRL_LFPRESC_SHIFT, LESENSE, lesenseClkDiv_8, lesenseClkHF, and lesenseClkLF.
Referenced by CAPLESENSE_setupLESENSE().
void LESENSE_ChannelAllConfig | ( | LESENSE_ChAll_TypeDef const * | confChAll | ) |
This function configures all the sensor channels of LESENSE interface. Please refer to the configuration parameter type definition (LESENSE_ChAll_TypeDef) for more details.
[in] | confChAll | Configuration structure for all (16) LESENSE sensor channels. |
Definition at line 436 of file em_lesense.c.
References LESENSE_ChAll_TypeDef::Ch, and LESENSE_ChannelConfig().
Referenced by CAPLESENSE_setupLESENSE().
void LESENSE_ChannelConfig | ( | LESENSE_ChDesc_TypeDef const * | confCh, |
uint32_t const | chIdx | ||
) |
This function configures a single sensor channel of the LESENSE interface. Please refer to the configuration parameter type definition (LESENSE_ChDesc_TypeDef) for more details.
useAltEx
must be true in the channel configuration in order to use alternate excitation pins.[in] | confCh | Configuration structure for a single LESENSE sensor channel. |
[in] | chIdx | Channel index to configure (0-15). |
Definition at line 471 of file em_lesense.c.
References _LESENSE_CH_EVAL_DECODE_SHIFT, _LESENSE_CH_EVAL_SCANRESINV_SHIFT, _LESENSE_CH_EVAL_STRSAMPLE_SHIFT, _LESENSE_CH_INTERACT_ALTEX_SHIFT, _LESENSE_CH_INTERACT_EXCLK_SHIFT, _LESENSE_CH_INTERACT_SAMPLECLK_SHIFT, LESENSE_ChDesc_TypeDef::acmpThres, BUS_RegBitWrite(), LESENSE_ChDesc_TypeDef::chPinExMode, LESENSE_ChDesc_TypeDef::chPinIdleMode, LESENSE_ChDesc_TypeDef::cntThres, LESENSE_ChDesc_TypeDef::compMode, LESENSE_ChDesc_TypeDef::enaInt, LESENSE_ChDesc_TypeDef::enaPin, LESENSE_ChDesc_TypeDef::enaScanCh, LESENSE_ChDesc_TypeDef::exClk, LESENSE_ChDesc_TypeDef::exTime, LESENSE_ChDesc_TypeDef::intMode, LESENSE_ChDesc_TypeDef::invRes, LESENSE, LESENSE_ChannelThresSet(), LESENSE_ChannelTimingSet(), lesenseChPinExDACOut, lesenseChPinIdleDACCh0, lesenseChPinIdleDACCh1, LESENSE_ChDesc_TypeDef::measDelay, LESENSE_ChDesc_TypeDef::sampleClk, LESENSE_ChDesc_TypeDef::sampleDelay, LESENSE_ChDesc_TypeDef::sampleMode, LESENSE_ChDesc_TypeDef::shiftRes, LESENSE_ChDesc_TypeDef::storeCntRes, and LESENSE_ChDesc_TypeDef::useAltEx.
Referenced by LESENSE_ChannelAllConfig().
void LESENSE_ChannelEnable | ( | uint8_t const | chIdx, |
bool const | enaScanCh, | ||
bool const | enaPin | ||
) |
Use this function to enable/disable a selected LESENSE scan channel and the pin assigned to.
[in] | chIdx | Identifier of the scan channel. 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 . |
Definition at line 654 of file em_lesense.c.
References BUS_RegBitWrite(), and LESENSE.
void LESENSE_ChannelEnableMask | ( | uint16_t | chMask, |
uint16_t | pinMask | ||
) |
Use this function to enable/disable LESENSE scan channels and the pins assigned to them using a mask.
[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. |
Definition at line 691 of file em_lesense.c.
References LESENSE.
void LESENSE_ChannelTimingSet | ( | uint8_t const | chIdx, |
uint8_t const | exTime, | ||
uint8_t const | sampleDelay, | ||
uint8_t const | measDelay | ||
) |
Use this function to set timing parameters on a selected LESENSE channel.
[in] | chIdx | Identifier of the scan channel. Valid range: 0-15. |
[in] | exTime | Excitation time on chIdx. Excitation will last exTime+1 excitation clock cycles. Valid range: 0-63 (6 bits). |
[in] | sampleDelay | Sample delay on chIdx. Sampling will occur after sampleDelay+1 sample clock cycles. Valid range: 0-127 (7 bits). |
[in] | measDelay | Measure delay on chIdx. Sensor measuring is delayed for measDelay+1 excitation clock cycles. Valid range: 0-127 (7 bits). |
Definition at line 728 of file em_lesense.c.
References _LESENSE_CH_TIMING_EXTIME_SHIFT, _LESENSE_CH_TIMING_MEASUREDLY_SHIFT, _LESENSE_CH_TIMING_SAMPLEDLY_SHIFT, and LESENSE.
Referenced by LESENSE_ChannelConfig().
void LESENSE_ChannelThresSet | ( | uint8_t const | chIdx, |
uint16_t const | acmpThres, | ||
uint16_t const | cntThres | ||
) |
Use this function to set threshold parameters on a selected LESENSE channel.
[in] | chIdx | Identifier of the scan channel. Valid range: 0-15. |
[in] | acmpThres | ACMP threshold.
|
[in] | cntThres | Decision threshold for counter comparison. Valid range: 0-65535 (16 bits). |
Definition at line 780 of file em_lesense.c.
References _LESENSE_CH_EVAL_COMPTHRES_MASK, _LESENSE_CH_EVAL_COMPTHRES_SHIFT, _LESENSE_CH_INTERACT_ACMPTHRES_MASK, _LESENSE_CH_INTERACT_ACMPTHRES_SHIFT, and LESENSE.
Referenced by CAPLESENSE_setupLESENSE(), and LESENSE_ChannelConfig().
void LESENSE_AltExConfig | ( | LESENSE_ConfAltEx_TypeDef const * | confAltEx | ) |
This function configures the alternate excitation channels of the LESENSE interface. Please refer to the configuration parameter type definition (LESENSE_ConfAltEx_TypeDef) for more details.
useAltEx
must be true in the channel configuration structrure (LESENSE_ChDesc_TypeDef) in order to use alternate excitation pins on the channel.[in] | confAltEx | Configuration structure for LESENSE alternate excitation pins. |
Definition at line 570 of file em_lesense.c.
References _LESENSE_CTRL_ALTEXMAP_SHIFT, LESENSE_ConfAltEx_TypeDef::AltEx, LESENSE_ConfAltEx_TypeDef::altExMap, LESENSE_AltExDesc_TypeDef::alwaysEx, BUS_RegBitWrite(), LESENSE_AltExDesc_TypeDef::enablePin, LESENSE_AltExDesc_TypeDef::idleConf, LESENSE, lesenseAltExMapACMP, and lesenseAltExMapALTEX.
void LESENSE_DecoderStateAllConfig | ( | LESENSE_DecStAll_TypeDef const * | confDecStAll | ) |
This function configures all the decoder states of the LESENSE interface. Please refer to the configuration parameter type definition (LESENSE_DecStAll_TypeDef) for more details.
[in] | confDecStAll | Configuration structure for all (16) LESENSE decoder states. |
Definition at line 826 of file em_lesense.c.
References LESENSE_DecoderStateConfig(), and LESENSE_DecStAll_TypeDef::St.
void LESENSE_DecoderStateConfig | ( | LESENSE_DecStDesc_TypeDef const * | confDecSt, |
uint32_t const | decSt | ||
) |
This function configures a single decoder state of the LESENSE interface. Please refer to the configuration parameter type definition (LESENSE_DecStDesc_TypeDef) for more details.
[in] | confDecSt | Configuration structure for a single LESENSE decoder state. |
[in] | decSt | Decoder state index to configure (0-15). |
Definition at line 854 of file em_lesense.c.
References _LESENSE_ST_TCONFA_CHAIN_SHIFT, _LESENSE_ST_TCONFA_COMP_SHIFT, _LESENSE_ST_TCONFA_MASK_SHIFT, _LESENSE_ST_TCONFA_NEXTSTATE_SHIFT, _LESENSE_ST_TCONFA_SETIF_SHIFT, _LESENSE_ST_TCONFB_COMP_SHIFT, _LESENSE_ST_TCONFB_MASK_SHIFT, _LESENSE_ST_TCONFB_NEXTSTATE_SHIFT, _LESENSE_ST_TCONFB_SETIF_SHIFT, LESENSE_DecStDesc_TypeDef::chainDesc, LESENSE_DecStCond_TypeDef::compMask, LESENSE_DecStCond_TypeDef::compVal, LESENSE_DecStDesc_TypeDef::confA, LESENSE_DecStDesc_TypeDef::confB, LESENSE, LESENSE_DecStCond_TypeDef::nextState, LESENSE_DecStCond_TypeDef::prsAct, and LESENSE_DecStCond_TypeDef::setInt.
Referenced by LESENSE_DecoderStateAllConfig().
void LESENSE_DecoderStateSet | ( | uint32_t | decSt | ) |
This function can be used for setting the initial state of the LESENSE decoder.
[in] | decSt | Decoder state to set as current state. Valid range: 0-15 |
Definition at line 905 of file em_lesense.c.
References _LESENSE_DECSTATE_DECSTATE_MASK, and LESENSE.
Referenced by LESENSE_Init().
uint32_t LESENSE_DecoderStateGet | ( | void | ) |
Definition at line 921 of file em_lesense.c.
References _LESENSE_DECSTATE_DECSTATE_MASK, and LESENSE.
void LESENSE_ScanStart | ( | void | ) |
Definition at line 940 of file em_lesense.c.
References LESENSE, LESENSE_CMD_START, and LESENSE_SYNCBUSY_CMD.
Referenced by CAPLESENSE_setupLESENSE(), and LESENSE_ScanModeSet().
void LESENSE_ScanStop | ( | void | ) |
Definition at line 973 of file em_lesense.c.
References LESENSE, LESENSE_CMD_STOP, and LESENSE_SYNCBUSY_CMD.
Referenced by CAPLESENSE_setupLESENSE().
void LESENSE_DecoderStart | ( | void | ) |
Definition at line 1003 of file em_lesense.c.
References LESENSE, LESENSE_CMD_DECODE, and LESENSE_SYNCBUSY_CMD.
void LESENSE_ResultBufferClear | ( | void | ) |
Definition at line 1033 of file em_lesense.c.
References LESENSE, LESENSE_CMD_CLEARBUF, and LESENSE_SYNCBUSY_CMD.
Referenced by CAPLESENSE_setupLESENSE().
__STATIC_INLINE void LESENSE_DecoderStop | ( | void | ) |
This function disables the LESENSE decoder by setting the command to the LESENSE_DECCTRL register.
Definition at line 1046 of file em_lesense.h.
References LESENSE, and LESENSE_DECCTRL_DISABLE.
__STATIC_INLINE uint32_t LESENSE_StatusGet | ( | void | ) |
Definition at line 1067 of file em_lesense.h.
References LESENSE.
Referenced by CAPLESENSE_setupLESENSE().
__STATIC_INLINE void LESENSE_StatusWait | ( | uint32_t | flag | ) |
This function is polling the LESENSE_STATUS register and waits until the requested combination of flags are set.
[in] | flag | The OR combination of the following status bits:
|
Definition at line 1093 of file em_lesense.h.
References LESENSE.
__STATIC_INLINE uint32_t LESENSE_ChannelActiveGet | ( | void | ) |
Definition at line 1108 of file em_lesense.h.
References LESENSE.
__STATIC_INLINE uint32_t LESENSE_ScanResultGet | ( | void | ) |
Definition at line 1125 of file em_lesense.h.
References LESENSE.
__STATIC_INLINE uint32_t LESENSE_ScanResultDataGet | ( | void | ) |
Definition at line 1144 of file em_lesense.h.
References LESENSE.
Referenced by LESENSE_IRQHandler().
__STATIC_INLINE uint32_t LESENSE_ScanResultDataBufferGet | ( | uint32_t | idx | ) |
[in] | idx | Result data buffer index. Valid range: 0-15. |
Definition at line 1165 of file em_lesense.h.
References LESENSE.
Referenced by CAPLESENSE_setupLESENSE().
__STATIC_INLINE uint32_t LESENSE_SensorStateGet | ( | void | ) |
Definition at line 1179 of file em_lesense.h.
References LESENSE.
__STATIC_INLINE void LESENSE_RAMPowerDown | ( | void | ) |
This function shuts off the LESENSE RAM in order to decrease the leakage current of the mcu if LESENSE is not used in your application.
Definition at line 1197 of file em_lesense.h.
References LESENSE, and LESENSE_POWERDOWN_RAM.
__STATIC_INLINE void LESENSE_IntClear | ( | uint32_t | flags | ) |
[in] | flags | Pending LESENSE interrupt sources to clear. Use a set of interrupt flags OR-ed together to clear multiple interrupt sources of the LESENSE module (LESENSE_IF_nnn). |
Definition at line 1213 of file em_lesense.h.
References LESENSE.
Referenced by CAPLESENSE_setupLESENSE(), and LESENSE_IRQHandler().
__STATIC_INLINE void LESENSE_IntEnable | ( | uint32_t | flags | ) |
[in] | flags | LESENSE interrupt sources to enable. Use a set of interrupt flags OR-ed together to enable multiple interrupt sources of the LESENSE module (LESENSE_IF_nnn). |
Definition at line 1228 of file em_lesense.h.
References LESENSE.
Referenced by CAPLESENSE_setupLESENSE().
__STATIC_INLINE void LESENSE_IntDisable | ( | uint32_t | flags | ) |
[in] | flags | LESENSE interrupt sources to disable. Use a set of interrupt flags OR-ed together to disable multiple interrupt sources of the LESENSE module (LESENSE_IF_nnn). |
Definition at line 1243 of file em_lesense.h.
References LESENSE.
Referenced by CAPLESENSE_setupLESENSE().
__STATIC_INLINE void LESENSE_IntSet | ( | uint32_t | flags | ) |
[in] | flags | LESENSE interrupt sources to set to pending. Use a set of interrupt flags OR-ed together to set multiple interrupt sources of the LESENSE module (LESENSE_IFS_nnn). |
Definition at line 1258 of file em_lesense.h.
References LESENSE.
__STATIC_INLINE uint32_t LESENSE_IntGet | ( | void | ) |
Definition at line 1275 of file em_lesense.h.
References LESENSE.
__STATIC_INLINE uint32_t LESENSE_IntGetEnabled | ( | void | ) |
Useful for handling more interrupt sources in the same interrupt handler.
Definition at line 1299 of file em_lesense.h.
References LESENSE.
Referenced by LESENSE_IRQHandler().