LESENSE - Low Energy Sensor
Description
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.
Data Structures |
|
struct | LESENSE_CoreCtrlDesc_TypeDef |
Core control (LESENSE_CTRL/CFG) descriptor structure.
|
|
struct | LESENSE_TimeCtrlDesc_TypeDef |
LESENSE timing control descriptor structure.
|
|
struct | LESENSE_PerCtrlDesc_TypeDef |
LESENSE peripheral control descriptor structure.
|
|
struct | LESENSE_DecCtrlDesc_TypeDef |
LESENSE decoder control descriptor structure.
|
|
struct | LESENSE_Init_TypeDef |
LESENSE module initialization structure.
|
|
struct | LESENSE_ChDesc_TypeDef |
Channel descriptor structure.
|
|
struct | LESENSE_ChAll_TypeDef |
Configuration structure for all the scan channels.
|
|
struct | LESENSE_AltExDesc_TypeDef |
Alternate excitation descriptor structure.
|
|
struct | LESENSE_ConfAltEx_TypeDef |
Configuration structure for the alternate excitation.
|
|
struct | LESENSE_DecStCond_TypeDef |
Decoder state condition descriptor structure.
|
|
struct | LESENSE_DecStDesc_TypeDef |
Decoder state x configuration structure.
|
|
struct | LESENSE_DecStAll_TypeDef |
Configuration structure for decoder.
|
|
Functions |
|
void | LESENSE_Init (const LESENSE_Init_TypeDef *init, bool reqReset) |
Initialize 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_AltExConfig (const LESENSE_ConfAltEx_TypeDef *confAltEx) |
Configure the LESENSE alternate excitation modes.
|
|
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_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 | LESENSE_DecoderStateGet (void) |
Get the current state of the LESENSE decoder.
|
|
void | LESENSE_ScanStart (void) |
Start scanning sensors.
|
|
void | LESENSE_ScanStop (void) |
Stop scanning sensors.
|
|
void | LESENSE_DecoderStart (void) |
Start the LESENSE decoder.
|
|
void | LESENSE_ResultBufferClear (void) |
Clear the result buffer.
|
|
void | LESENSE_Reset (void) |
Reset the LESENSE module.
|
|
void | LESENSE_DecoderStop (void) |
Stop LESENSE decoder.
|
|
uint32_t | LESENSE_StatusGet (void) |
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 | LESENSE_ChannelActiveGet (void) |
Get the currently active channel index.
|
|
uint32_t | LESENSE_ScanResultGet (void) |
Get the latest scan comparison result (1 bit / channel).
|
|
uint32_t | LESENSE_ScanResultDataGet (void) |
Get the oldest unread data from result buffer.
|
|
uint32_t | LESENSE_ScanResultDataBufferGet (uint32_t idx) |
Get the data from result data buffer.
|
|
uint32_t | LESENSE_SensorStateGet (void) |
Get the current state of LESENSE sensor.
|
|
void | LESENSE_RAMPowerDown (void) |
Shut off the power to the LESENSE RAM, disables LESENSE.
|
|
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 | LESENSE_IntGet (void) |
Get pending LESENSE interrupt flags.
|
|
uint32_t | LESENSE_IntGetEnabled (void) |
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 | LESENSE_NUM_CHANNELS 16 |
Number of LESENSE channels.
|
|
#define | LESENSE_CORECTRL_DESC_DEFAULT |
Default configuration for LESENSE_CtrlDesc_TypeDef structure.
|
|
#define | LESENSE_TIMECTRL_DESC_DEFAULT |
Default configuration for
LESENSE_TimeCtrlDesc_TypeDef
structure.
|
|
#define | LESENSE_PERCTRL_DESC_DEFAULT |
Default configuration for LESENSE_PerCtrl_TypeDef structure.
|
|
#define | LESENSE_DECCTRL_DESC_DEFAULT |
Default configuration for LESENSE_PerCtrl_TypeDef structure.
|
|
#define | LESENSE_INIT_DEFAULT |
Default configuration for
LESENSE_Init_TypeDef
structure.
|
|
#define | LESENSE_CH_CONF_DEFAULT |
Default configuration for the scan channel.
|
|
#define | LESENSE_SCAN_CONF_DEFAULT |
Default configuration for all the sensor channels.
|
|
#define | LESENSE_ALTEX_CH_CONF_DEFAULT |
Default configuration for the alternate excitation channel.
|
|
#define | LESENSE_ALTEX_CONF_DEFAULT |
Default configuration for all the alternate excitation channels.
|
|
#define | LESENSE_ST_CONF_DEFAULT |
Default configuration for the decoder state condition.
|
|
#define | LESENSE_DECODER_CONF_DEFAULT |
Default configuration for all decoder states.
|
|
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 } |
Clock divisors for controlling the prescaling factor of the period counter.
|
|
enum |
LESENSE_ScanMode_TypeDef
{
lesenseScanStartPeriodic = LESENSE_CTRL_SCANMODE_PERIODIC, lesenseScanStartOneShot = LESENSE_CTRL_SCANMODE_ONESHOT, lesenseScanStartPRS = LESENSE_CTRL_SCANMODE_PRS } |
Scan modes.
|
|
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 } |
PRS sources.
|
|
enum |
LESENSE_AltExMap_TypeDef
{
lesenseAltExMapALTEX = _LESENSE_CTRL_ALTEXMAP_ALTEX, lesenseAltExMapACMP = _LESENSE_CTRL_ALTEXMAP_ACMP } |
Locations of the alternate excitation function.
|
|
enum |
LESENSE_BufTrigLevel_TypeDef
{
lesenseBufTrigHalf = LESENSE_CTRL_BUFIDL_HALFFULL, lesenseBufTrigFull = LESENSE_CTRL_BUFIDL_FULL } |
Result buffer interrupt and DMA trigger levels.
|
|
enum |
LESENSE_DMAWakeUp_TypeDef
{
lesenseDMAWakeUpDisable = LESENSE_CTRL_DMAWU_DISABLE, lesenseDMAWakeUpBufValid = LESENSE_CTRL_DMAWU_BUFDATAV, lesenseDMAWakeUpBufLevel = LESENSE_CTRL_DMAWU_BUFLEVEL } |
Modes of operation for DMA wakeup from EM2.
|
|
enum |
LESENSE_BiasMode_TypeDef
{
lesenseBiasModeDutyCycle = LESENSE_BIASCTRL_BIASMODE_DUTYCYCLE, lesenseBiasModeHighAcc = LESENSE_BIASCTRL_BIASMODE_HIGHACC, lesenseBiasModeDontTouch = LESENSE_BIASCTRL_BIASMODE_DONTTOUCH } |
Bias modes.
|
|
enum |
LESENSE_ScanConfSel_TypeDef
{
lesenseScanConfDirMap = LESENSE_CTRL_SCANCONF_DIRMAP, |