Appiko
Data Structures | Enumerations
GPIO Exported Types

Data Structures

struct  SGpioInit
 S2LP GPIO Init structure definition. More...
 
struct  ClockOutputInit
 S2LP Clock Output initialization structure definition. More...
 
struct  S2LPIrqs
 IRQ bitfield structure for S2LP. This structure is used to read or write the single IRQ bit. During the initialization the user has to fill this structure setting to one the single field related to the IRQ he wants to enable, and to zero the single field related to all the IRQs he wants to disable. The same structure can be used to retrieve all the IRQ events from the IRQ registers IRQ_STATUS[3:0], and read if one or more specific IRQ raised. More...
 

Enumerations

enum  S2LPGpioPin { S2LP_GPIO_0 = GPIO0_CONF_ADDR, S2LP_GPIO_1 = GPIO1_CONF_ADDR, S2LP_GPIO_2 = GPIO2_CONF_ADDR, S2LP_GPIO_3 = GPIO3_CONF_ADDR }
 S2LP GPIO pin enumeration. More...
 
enum  S2LPGpioMode { S2LP_GPIO_MODE_DIGITAL_INPUT = 0x01, S2LP_GPIO_MODE_DIGITAL_OUTPUT_LP, S2LP_GPIO_MODE_DIGITAL_OUTPUT_HP }
 S2LP GPIO mode enumeration. More...
 
enum  S2LPGpioIO {
  S2LP_GPIO_DIG_OUT_IRQ = 0x00, S2LP_GPIO_DIG_OUT_POR_INV = 0x08, S2LP_GPIO_DIG_OUT_WUT_EXP = 0x10, S2LP_GPIO_DIG_OUT_LBD = 0x18,
  S2LP_GPIO_DIG_OUT_TX_DATA = 0x20, S2LP_GPIO_DIG_OUT_TX_STATE = 0x28, S2LP_GPIO_DIG_OUT_TXRX_FIFO_ALMOST_EMPTY = 0x30, S2LP_GPIO_DIG_OUT_TXRX_FIFO_ALMOST_FULL = 0x38,
  S2LP_GPIO_DIG_OUT_RX_DATA = 0x40, S2LP_GPIO_DIG_OUT_RX_CLOCK = 0x48, S2LP_GPIO_DIG_OUT_RX_STATE = 0x50, S2LP_GPIO_DIG_OUT_NOT_STANDBY_SLEEP = 0x58,
  S2LP_GPIO_DIG_OUT_STANDBY = 0x60, S2LP_GPIO_DIG_OUT_ANTENNA_SWITCH = 0x68, S2LP_GPIO_DIG_OUT_VALID_PREAMBLE = 0x70, S2LP_GPIO_DIG_OUT_SYNC_DETECTED = 0x78,
  S2LP_GPIO_DIG_OUT_RSSI_THRESHOLD = 0x80, S2LP_GPIO_DIG_OUT_MCU_CLOCK = 0x88, S2LP_GPIO_DIG_OUT_TX_RX_MODE = 0x90, S2LP_GPIO_DIG_OUT_VDD = 0x98,
  S2LP_GPIO_DIG_OUT_GND = 0xA0, S2LP_GPIO_DIG_OUT_SMPS_EXT = 0xA8, S2LP_GPIO_DIG_OUT_SLEEP = 0xB0, S2LP_GPIO_DIG_OUT_READY = 0xB8,
  S2LP_GPIO_DIG_OUT_LOCK = 0xC0, S2LP_GPIO_DIG_OUT_WAIT_FOR_LOCK_SIG = 0xC8
}
 S2LP I/O selection enumeration. More...
 
enum  OutputLevel
 S2LP OutputLevel enumeration.
 
enum  ClockOutputXOPrescaler {
  XO_RATIO_1 = 0x00, XO_RATIO_1_2 = 0x02, XO_RATIO_1_4 = 0x04, XO_RATIO_1_8 = 0x06,
  XO_RATIO_1_16 = 0x08, XO_RATIO_1_32 = 0x0A, XO_RATIO_1_64 = 0x0C, XO_RATIO_1_128 = 0x0E,
  XO_RATIO_1_256 = 0x10
}
 S2LP clock output XO prescaler enumeration. More...
 
enum  ClockOutputRCOPrescaler { RCO_RATIO_1 = 0x00, RCO_RATIO_1_128 }
 S2LP Clock Output RCO prescaler enumeration. More...
 
enum  ExtraClockCycles { EXTRA_CLOCK_CYCLES_0 = 0x00, EXTRA_CLOCK_CYCLES_128 = 0x20, EXTRA_CLOCK_CYCLES_256 = 0x40, EXTRA_CLOCK_CYCLES_512 = 0x60 }
 S2LP ExtraClockCycles enumeration. More...
 
enum  IrqList {
  RX_DATA_READY = 0x00000001, RX_DATA_DISC = 0x00000002, TX_DATA_SENT = 0x00000004, MAX_RE_TX_REACH = 0x00000008,
  CRC_ERROR = 0x00000010, TX_FIFO_ERROR = 0x00000020, RX_FIFO_ERROR = 0x00000040, TX_FIFO_ALMOST_FULL = 0x00000080,
  TX_FIFO_ALMOST_EMPTY = 0x00000100, RX_FIFO_ALMOST_FULL = 0x00000200, RX_FIFO_ALMOST_EMPTY = 0x00000400, MAX_BO_CCA_REACH = 0x00000800,
  VALID_PREAMBLE = 0x00001000, VALID_SYNC = 0x00002000, RSSI_ABOVE_TH = 0x00004000, WKUP_TOUT_LDC = 0x00008000,
  READY = 0x00010000, STANDBY_DELAYED = 0x00020000, LOW_BATT_LVL = 0x00040000, POR = 0x00080000,
  BOR = 0x00100000, LOCK = 0x00200000, VCO_CALIBRATION_END = 0x00400000, PA_CALIBRATION_END = 0x00800000,
  PM_COUNT_EXPIRED = 0x01000000, XO_COUNT_EXPIRED = 0x02000000, TX_START_TIME = 0x04000000, RX_START_TIME = 0x08000000,
  RX_TIMEOUT = 0x10000000, RX_SNIFF_TIMEOUT = 0x20000000, ALL_IRQ = 0x7FFFFFFF
}
 IRQ list enumeration for S2LP. This enumeration type can be used to address a specific IRQ. More...
 

Detailed Description

Enumeration Type Documentation

◆ ClockOutputRCOPrescaler

Enumerator
RCO_RATIO_1 

RCO Clock signal available on the GPIO divided by 1

RCO_RATIO_1_128 

RCO Clock signal available on the GPIO divided by 1/128

Definition at line 185 of file S2LP_Gpio.h.

◆ ClockOutputXOPrescaler

Enumerator
XO_RATIO_1 

XO Clock signal available on the GPIO divided by 1

XO_RATIO_1_2 

XO Clock signal available on the GPIO divided by 1/2

XO_RATIO_1_4 

XO Clock signal available on the GPIO divided by 1/4

XO_RATIO_1_8 

XO Clock signal available on the GPIO divided by 1/8

XO_RATIO_1_16 

XO Clock signal available on the GPIO divided by 1/16

XO_RATIO_1_32 

XO Clock signal available on the GPIO divided by 1/32

XO_RATIO_1_64 

XO Clock signal available on the GPIO divided by 1/64

XO_RATIO_1_128 

XO Clock signal available on the GPIO divided by 1/128

XO_RATIO_1_256 

XO Clock signal available on the GPIO divided by 1/256

Definition at line 168 of file S2LP_Gpio.h.

◆ ExtraClockCycles

Enumerator
EXTRA_CLOCK_CYCLES_0 

0 extra clock cycles provided to the MCU before switching to STANDBY state

EXTRA_CLOCK_CYCLES_128 

128 extra clock cycles provided to the MCU before switching to STANDBY state

EXTRA_CLOCK_CYCLES_256 

256 extra clock cycles provided to the MCU before switching to STANDBY state

EXTRA_CLOCK_CYCLES_512 

512 extra clock cycles provided to the MCU before switching to STANDBY state

Definition at line 194 of file S2LP_Gpio.h.

◆ IrqList

enum IrqList
Enumerator
RX_DATA_READY 

IRQ: RX data ready

RX_DATA_DISC 

IRQ: RX data discarded (upon filtering)

TX_DATA_SENT 

IRQ: TX data sent

MAX_RE_TX_REACH 

IRQ: Max re-TX reached

CRC_ERROR 

IRQ: CRC error

TX_FIFO_ERROR 

IRQ: TX FIFO underflow/overflow error

RX_FIFO_ERROR 

IRQ: RX FIFO underflow/overflow error

TX_FIFO_ALMOST_FULL 

IRQ: TX FIFO almost full

TX_FIFO_ALMOST_EMPTY 

IRQ: TX FIFO almost empty

RX_FIFO_ALMOST_FULL 

IRQ: RX FIFO almost full

RX_FIFO_ALMOST_EMPTY 

IRQ: RX FIFO almost empty

MAX_BO_CCA_REACH 

IRQ: Max number of back-off during CCA

VALID_PREAMBLE 

IRQ: Valid preamble detected

VALID_SYNC 

IRQ: Sync word detected

RSSI_ABOVE_TH 

IRQ: RSSI above threshold

WKUP_TOUT_LDC 

IRQ: Wake-up timeout in LDC mode

READY 

IRQ: READY state

STANDBY_DELAYED 

IRQ: STANDBY state after MCU_CK_CONF_CLOCK_TAIL_X clock cycles

LOW_BATT_LVL 

IRQ: Battery level below threshold

POR 

IRQ: Power On Reset

BOR 

IRQ: Brown out event (both accurate and inaccurate)

LOCK 

IRQ: LOCK state

VCO_CALIBRATION_END 

IRQ: only for debug; Power Management startup timer expiration (see reg PM_START_COUNTER, 0xB5)

PA_CALIBRATION_END 

IRQ: only for debug; Crystal oscillator settling time counter expired

PM_COUNT_EXPIRED 

IRQ: only for debug; Power Management startup timer expiration (see reg PM_START_COUNTER, 0xB5)

XO_COUNT_EXPIRED 

IRQ: only for debug; Crystal oscillator settling time counter expired

TX_START_TIME 

IRQ: only for debug; TX circuitry startup time; see TX_START_COUNTER

RX_START_TIME 

IRQ: only for debug; RX circuitry startup time; see TX_START_COUNTER

RX_TIMEOUT 

IRQ: RX operation timeout

RX_SNIFF_TIMEOUT 

IRQ: RX sniff operation timeout

ALL_IRQ 

All the above mentioned IRQs

Definition at line 264 of file S2LP_Gpio.h.

◆ S2LPGpioIO

enum S2LPGpioIO
Enumerator
S2LP_GPIO_DIG_OUT_IRQ 

nIRQ (Interrupt Request, active low) , default configuration after POR

S2LP_GPIO_DIG_OUT_POR_INV 

POR inverted (active low)

S2LP_GPIO_DIG_OUT_WUT_EXP 

Wake-Up Timer expiration: "1" when WUT has expired

S2LP_GPIO_DIG_OUT_LBD 

Low battery detection: "1" when battery is below threshold setting

S2LP_GPIO_DIG_OUT_TX_DATA 

TX data internal clock output (TX data are sampled on the rising edge of it)

S2LP_GPIO_DIG_OUT_TX_STATE 

TX state indication: "1" when S2LP1 is passing in the TX state

S2LP_GPIO_DIG_OUT_TXRX_FIFO_ALMOST_EMPTY 

TX/RX FIFO Almost Empty Flag

S2LP_GPIO_DIG_OUT_TXRX_FIFO_ALMOST_FULL 

TX/RX FIFO Almost Full Flag

S2LP_GPIO_DIG_OUT_RX_DATA 

RX data output

S2LP_GPIO_DIG_OUT_RX_CLOCK 

RX clock output (recovered from received data)

S2LP_GPIO_DIG_OUT_RX_STATE 

RX state indication: "1" when demodulator is ON

S2LP_GPIO_DIG_OUT_NOT_STANDBY_SLEEP 

VDD when the device is not in SLEEP or STANDBY

S2LP_GPIO_DIG_OUT_STANDBY 

VDD when device is in STANDBY

S2LP_GPIO_DIG_OUT_ANTENNA_SWITCH 

Antenna switch used for antenna diversity

S2LP_GPIO_DIG_OUT_VALID_PREAMBLE 

Valid Preamble Detected Flag

S2LP_GPIO_DIG_OUT_SYNC_DETECTED 

Sync WordSync Word Detected Flag

S2LP_GPIO_DIG_OUT_RSSI_THRESHOLD 

RSSI above threshold

S2LP_GPIO_DIG_OUT_MCU_CLOCK 

MCU Clock

S2LP_GPIO_DIG_OUT_TX_RX_MODE 

TX or RX mode indicator (to enable an external range extender)

S2LP_GPIO_DIG_OUT_VDD 

VDD (to emulate an additional GPIO of the MCU, programmable by SPI)

S2LP_GPIO_DIG_OUT_GND 

GND (to emulate an additional GPIO of the MCU, programmable by SPI)

S2LP_GPIO_DIG_OUT_SMPS_EXT 

External SMPS enable signal (active high)

S2LP_GPIO_DIG_OUT_SLEEP 

Device in SLEEP (active high)

S2LP_GPIO_DIG_OUT_READY 

Device in READY (active high)

S2LP_GPIO_DIG_OUT_LOCK 

Device in LOCK (active high)

S2LP_GPIO_DIG_OUT_WAIT_FOR_LOCK_SIG 

Device waiting for LOCK (active high)

Definition at line 105 of file S2LP_Gpio.h.

◆ S2LPGpioMode

Enumerator
S2LP_GPIO_MODE_DIGITAL_INPUT 

Digital Input on GPIO

S2LP_GPIO_MODE_DIGITAL_OUTPUT_LP 

Digital Output on GPIO (low current)

S2LP_GPIO_MODE_DIGITAL_OUTPUT_HP 

Digital Output on GPIO (high current)

Definition at line 94 of file S2LP_Gpio.h.

◆ S2LPGpioPin

Enumerator
S2LP_GPIO_0 

GPIO_0 selected

S2LP_GPIO_1 

GPIO_1 selected

S2LP_GPIO_2 

GPIO_2 selected

S2LP_GPIO_3 

GPIO_3 selected

Definition at line 83 of file S2LP_Gpio.h.