PRS - Peripheral Reflex System#

Peripheral Reflex System (PRS) Peripheral API.

This module contains functions to control the PRS peripheral of Silicon Labs 32-bit MCUs and SoCs. The PRS allows configurable, fast, and autonomous communication between peripherals on the MCU or SoC.

Enumerations#

enum
prsTypeAsync
prsTypeSync
}

PRS Channel type.

enum
prsEdgeOff
prsEdgePos
prsEdgeNeg
prsEdgeBoth
}

Edge detection type.

enum
prsSignalNone = PRS_CH_CTRL_SOURCESEL_NONE | (0x0 << _PRS_CH_CTRL_SIGSEL_SHIFT)
prsSignalSW = PRS_CH_CTRL_SOURCESEL_NONE | (0x1 << _PRS_CH_CTRL_SIGSEL_SHIFT)
prsSignalPRS_CH0 = PRS_PRS_CH0
prsSignalPRS_CH1 = PRS_PRS_CH1
prsSignalPRS_CH2 = PRS_PRS_CH2
prsSignalPRS_CH3 = PRS_PRS_CH3
prsSignalPRS_CH4 = PRS_PRS_CH4
prsSignalPRS_CH5 = PRS_PRS_CH5
prsSignalPRS_CH6 = PRS_PRS_CH6
prsSignalPRS_CH7 = PRS_PRS_CH7
prsSignalPRS_CH8 = PRS_PRS_CH8
prsSignalPRS_CH9 = PRS_PRS_CH9
prsSignalPRS_CH10 = PRS_PRS_CH10
prsSignalPRS_CH11 = PRS_PRS_CH11
prsSignalPRS_CH12 = PRS_PRS_CH12
prsSignalPRS_CH13 = PRS_PRS_CH13
prsSignalPRS_CH14 = PRS_PRS_CH14
prsSignalPRS_CH15 = PRS_PRS_CH15
prsSignalPRS_CH16 = PRS_PRS_CH16
prsSignalPRS_CH17 = PRS_PRS_CH17
prsSignalPRS_CH18 = PRS_PRS_CH18
prsSignalPRS_CH19 = PRS_PRS_CH19
prsSignalPRS_CH20 = PRS_PRS_CH20
prsSignalPRS_CH21 = PRS_PRS_CH21
prsSignalPRS_CH22 = PRS_PRS_CH22
prsSignalPRS_CH23 = PRS_PRS_CH23
prsSignalADC0_SINGLE = PRS_ADC0_SINGLE
prsSignalADC0_SCAN = PRS_ADC0_SCAN
prsSignalADC1_SINGLE = PRS_ADC1_SINGLE
prsSignalADC1_SCAN = PRS_ADC1_SCAN
prsSignalTIMER0_UF = PRS_TIMER0_UF
prsSignalTIMER0_OF = PRS_TIMER0_OF
prsSignalTIMER0_CC0 = PRS_TIMER0_CC0
prsSignalTIMER0_CC1 = PRS_TIMER0_CC1
prsSignalTIMER0_CC2 = PRS_TIMER0_CC2
prsSignalTIMER1_UF = PRS_TIMER1_UF
prsSignalTIMER1_OF = PRS_TIMER1_OF
prsSignalTIMER1_CC0 = PRS_TIMER1_CC0
prsSignalTIMER1_CC1 = PRS_TIMER1_CC1
prsSignalTIMER1_CC2 = PRS_TIMER1_CC2
prsSignalTIMER2_UF = PRS_TIMER2_UF
prsSignalTIMER2_OF = PRS_TIMER2_OF
prsSignalTIMER2_CC0 = PRS_TIMER2_CC0
prsSignalTIMER2_CC1 = PRS_TIMER2_CC1
prsSignalTIMER2_CC2 = PRS_TIMER2_CC2
prsSignalTIMER3_UF = PRS_TIMER3_UF
prsSignalTIMER3_OF = PRS_TIMER3_OF
prsSignalTIMER3_CC0 = PRS_TIMER3_CC0
prsSignalTIMER3_CC1 = PRS_TIMER3_CC1
prsSignalTIMER3_CC2 = PRS_TIMER3_CC2
prsSignalTIMER1_CC3 = PRS_TIMER1_CC3
prsSignalTIMER4_UF = PRS_TIMER4_UF
prsSignalTIMER4_OF = PRS_TIMER4_OF
prsSignalTIMER4_CC0 = PRS_TIMER4_CC0
prsSignalTIMER4_CC1 = PRS_TIMER4_CC1
prsSignalTIMER4_CC2 = PRS_TIMER4_CC2
prsSignalTIMER5_UF = PRS_TIMER5_UF
prsSignalTIMER5_OF = PRS_TIMER5_OF
prsSignalTIMER5_CC0 = PRS_TIMER5_CC0
prsSignalTIMER5_CC1 = PRS_TIMER5_CC1
prsSignalTIMER5_CC2 = PRS_TIMER5_CC2
prsSignalTIMER6_UF = PRS_TIMER6_UF
prsSignalTIMER6_OF = PRS_TIMER6_OF
prsSignalTIMER6_CC0 = PRS_TIMER6_CC0
prsSignalTIMER6_CC1 = PRS_TIMER6_CC1
prsSignalTIMER6_CC2 = PRS_TIMER6_CC2
prsSignalLETIMER0_CH0 = PRS_LETIMER0_CH0
prsSignalLETIMER0_CH1 = PRS_LETIMER0_CH1
prsSignalLETIMER1_CH0 = PRS_LETIMER1_CH0
prsSignalLETIMER1_CH1 = PRS_LETIMER1_CH1
prsSignalPCNT0_TCC = PRS_PCNT0_TCC
prsSignalPCNT0_UFOF = PRS_PCNT0_UFOF
prsSignalPCNT0_DIR = PRS_PCNT0_DIR
prsSignalPCNT1_TCC = PRS_PCNT1_TCC
prsSignalPCNT1_UFOF = PRS_PCNT1_UFOF
prsSignalPCNT1_DIR = PRS_PCNT1_DIR
prsSignalPCNT2_TCC = PRS_PCNT2_TCC
prsSignalPCNT2_UFOF = PRS_PCNT2_UFOF
prsSignalPCNT2_DIR = PRS_PCNT2_DIR
prsSignalCRYOTIMER_PERIOD = PRS_CRYOTIMER_PERIOD
prsSignalRTC_OF = PRS_RTC_OF
prsSignalRTC_COMP0 = PRS_RTC_COMP0
prsSignalRTC_COMP1 = PRS_RTC_COMP1
prsSignalRTC_COMP2 = PRS_RTC_COMP2
prsSignalRTC_COMP3 = PRS_RTC_COMP3
prsSignalRTC_COMP4 = PRS_RTC_COMP4
prsSignalRTC_COMP5 = PRS_RTC_COMP5
prsSignalRTCC_CCV0 = PRS_RTCC_CCV0
prsSignalRTCC_CCV1 = PRS_RTCC_CCV1
prsSignalRTCC_CCV2 = PRS_RTCC_CCV2
prsSignalACMP0_OUT = PRS_ACMP0_OUT
prsSignalACMP1_OUT = PRS_ACMP1_OUT
prsSignalACMP2_OUT = PRS_ACMP2_OUT
prsSignalACMP3_OUT = PRS_ACMP3_OUT
prsSignalVDAC0_CH0 = PRS_VDAC0_CH0
prsSignalVDAC0_CH1 = PRS_VDAC0_CH1
prsSignalVDAC0_OPA0 = PRS_VDAC0_OPA0
prsSignalVDAC0_OPA1 = PRS_VDAC0_OPA1
prsSignalVDAC0_OPA2 = PRS_VDAC0_OPA2
prsSignalVDAC0_OPA3 = PRS_VDAC0_OPA3
prsSignalLESENSE_SCANRES0 = PRS_LESENSE_SCANRES0
prsSignalLESENSE_SCANRES1 = PRS_LESENSE_SCANRES1
prsSignalLESENSE_SCANRES2 = PRS_LESENSE_SCANRES2
prsSignalLESENSE_SCANRES3 = PRS_LESENSE_SCANRES3
prsSignalLESENSE_SCANRES4 = PRS_LESENSE_SCANRES4
prsSignalLESENSE_SCANRES5 = PRS_LESENSE_SCANRES5
prsSignalLESENSE_SCANRES6 = PRS_LESENSE_SCANRES6
prsSignalLESENSE_SCANRES7 = PRS_LESENSE_SCANRES7
prsSignalLESENSE_SCANRES8 = PRS_LESENSE_SCANRES8
prsSignalLESENSE_SCANRES9 = PRS_LESENSE_SCANRES9
prsSignalLESENSE_SCANRES10 = PRS_LESENSE_SCANRES10
prsSignalLESENSE_SCANRES11 = PRS_LESENSE_SCANRES11
prsSignalLESENSE_SCANRES12 = PRS_LESENSE_SCANRES12
prsSignalLESENSE_SCANRES13 = PRS_LESENSE_SCANRES13
prsSignalLESENSE_SCANRES14 = PRS_LESENSE_SCANRES14
prsSignalLESENSE_SCANRES15 = PRS_LESENSE_SCANRES15
prsSignalLESENSE_DEC0 = PRS_LESENSE_DEC0
prsSignalLESENSE_DEC1 = PRS_LESENSE_DEC1
prsSignalLESENSE_DEC2 = PRS_LESENSE_DEC2
prsSignalLESENSE_DECCMP = PRS_LESENSE_DECCMP
prsSignalLESENSE_MEASACT = PRS_LESENSE_MEASACT
prsSignalUSART0_TXC = PRS_USART0_TXC
prsSignalUSART0_RXDATAV = PRS_USART0_RXDATAV
prsSignalUSART0_IRTX = PRS_USART0_IRTX
prsSignalUSART0_RTS = PRS_USART0_RTS
prsSignalUSART0_TX = PRS_USART0_TX
prsSignalUSART0_CS = PRS_USART0_CS
prsSignalUSART1_TXC = PRS_USART1_TXC
prsSignalUSART1_RXDATAV = PRS_USART1_RXDATAV
prsSignalUSART1_RTS = PRS_USART1_RTS
prsSignalUSART1_TX = PRS_USART1_TX
prsSignalUSART1_CS = PRS_USART1_CS
prsSignalUSART2_TXC = PRS_USART2_TXC
prsSignalUSART2_RXDATAV = PRS_USART2_RXDATAV
prsSignalUSART2_IRTX = PRS_USART2_IRTX
prsSignalUSART2_RTS = PRS_USART2_RTS
prsSignalUSART2_TX = PRS_USART2_TX
prsSignalUSART2_CS = PRS_USART2_CS
prsSignalUSART3_TXC = PRS_USART3_TXC
prsSignalUSART3_RXDATAV = PRS_USART3_RXDATAV
prsSignalUSART3_RTS = PRS_USART3_RTS
prsSignalUSART3_TX = PRS_USART3_TX
prsSignalUSART3_CS = PRS_USART3_CS
prsSignalUSART4_TXC = PRS_USART4_TXC
prsSignalUSART4_RXDATAV = PRS_USART4_RXDATAV
prsSignalUSART4_RTS = PRS_USART4_RTS
prsSignalUSART4_TX = PRS_USART4_TX
prsSignalUSART4_CS = PRS_USART4_CS
prsSignalUSART5_TXC = PRS_USART5_TXC
prsSignalUSART5_RXDATAV = PRS_USART5_RXDATAV
prsSignalUSART5_RTS = PRS_USART5_RTS
prsSignalUSART5_TX = PRS_USART5_TX
prsSignalUSART5_CS = PRS_USART5_CS
prsSignalUART0_TXC = PRS_UART0_TXC
prsSignalUART0_RXDATAV = PRS_UART0_RXDATAV
prsSignalUART0_RTS = PRS_UART0_RTS
prsSignalUART0_TX = PRS_UART0_TX
prsSignalUART0_CS = PRS_UART0_CS
prsSignalUART1_TXC = PRS_UART1_TXC
prsSignalUART1_RXDATAV = PRS_UART1_RXDATAV
prsSignalUART1_RTS = PRS_UART1_RTS
prsSignalUART1_TX = PRS_UART1_TX
prsSignalUART1_CS = PRS_UART1_CS
prsSignalUSB_SOF = PRS_USB_SOF
prsSignalUSB_SOFSR = PRS_USB_SOFSR
prsSignalCM4_TXEV = PRS_CM4_TXEV
prsSignalCM4_ICACHEPCHITSOF = PRS_CM4_ICACHEPCHITSOF
prsSignalCM4_ICACHEPCMISSESOF = PRS_CM4_ICACHEPCMISSESOF
prsSignalWTIMER0_UF = PRS_WTIMER0_UF
prsSignalWTIMER0_OF = PRS_WTIMER0_OF
prsSignalWTIMER0_CC0 = PRS_WTIMER0_CC0
prsSignalWTIMER0_CC1 = PRS_WTIMER0_CC1
prsSignalWTIMER0_CC2 = PRS_WTIMER0_CC2
prsSignalWTIMER1_UF = PRS_WTIMER1_UF
prsSignalWTIMER1_OF = PRS_WTIMER1_OF
prsSignalWTIMER1_CC0 = PRS_WTIMER1_CC0
prsSignalWTIMER1_CC1 = PRS_WTIMER1_CC1
prsSignalWTIMER1_CC2 = PRS_WTIMER1_CC2
prsSignalWTIMER1_CC3 = PRS_WTIMER1_CC3
prsSignalWTIMER2_UF = PRS_WTIMER2_UF
prsSignalWTIMER2_OF = PRS_WTIMER2_OF
prsSignalWTIMER2_CC0 = PRS_WTIMER2_CC0
prsSignalWTIMER2_CC1 = PRS_WTIMER2_CC1
prsSignalWTIMER2_CC2 = PRS_WTIMER2_CC2
prsSignalWTIMER3_UF = PRS_WTIMER3_UF
prsSignalWTIMER3_OF = PRS_WTIMER3_OF
prsSignalWTIMER3_CC0 = PRS_WTIMER3_CC0
prsSignalWTIMER3_CC1 = PRS_WTIMER3_CC1
prsSignalWTIMER3_CC2 = PRS_WTIMER3_CC2
prsSignalGPIO_PIN0 = PRS_GPIO_PIN0
prsSignalGPIO_PIN1 = PRS_GPIO_PIN1
prsSignalGPIO_PIN2 = PRS_GPIO_PIN2
prsSignalGPIO_PIN3 = PRS_GPIO_PIN3
prsSignalGPIO_PIN4 = PRS_GPIO_PIN4
prsSignalGPIO_PIN5 = PRS_GPIO_PIN5
prsSignalGPIO_PIN6 = PRS_GPIO_PIN6
prsSignalGPIO_PIN7 = PRS_GPIO_PIN7
prsSignalGPIO_PIN8 = PRS_GPIO_PIN8
prsSignalGPIO_PIN9 = PRS_GPIO_PIN9
prsSignalGPIO_PIN10 = PRS_GPIO_PIN10
prsSignalGPIO_PIN11 = PRS_GPIO_PIN11
prsSignalGPIO_PIN12 = PRS_GPIO_PIN12
prsSignalGPIO_PIN13 = PRS_GPIO_PIN13
prsSignalGPIO_PIN14 = PRS_GPIO_PIN14
prsSignalGPIO_PIN15 = PRS_GPIO_PIN15
}

PRS Signal.

Functions#

void
PRS_LevelSet(uint32_t level, uint32_t mask)

Set level control bit for one or more channels.

uint32_t

Get level control bit for all channels.

uint32_t
PRS_Values(PRS_ChType_t type)

Get the PRS channel values for all channels.

bool
PRS_ChannelValue(unsigned int ch, PRS_ChType_t type)

Get the PRS channel value for a single channel.

void
PRS_PulseTrigger(uint32_t channels)

Trigger a high pulse (one HFPERCLK) for one or more channels.

void
PRS_ChannelLevelSet(unsigned int ch, bool level)

Set the PRS channel level for one asynchronous PRS channel.

void
PRS_ChannelPulse(unsigned int ch)

Trigger a pulse on one PRS channel.

void
PRS_SourceSignalSet(unsigned int ch, uint32_t source, uint32_t signal, PRS_Edge_TypeDef edge)

Set a source and signal for a channel.

void
PRS_SourceAsyncSignalSet(unsigned int ch, uint32_t source, uint32_t signal)

Set the source and asynchronous signal for a channel.

void
PRS_GpioOutputLocation(unsigned int ch, unsigned int location)

Send the output of a PRS channel to a GPIO pin.

int
PRS_GetFreeChannel(PRS_ChType_t type)

Search for the first free PRS channel.

void
PRS_Reset(void)

Reset all PRS channels.

void
PRS_ConnectSignal(unsigned int ch, PRS_ChType_t type, PRS_Signal_t signal)

Connect a PRS signal to a channel.

Macros#

#define
PRS_SYNC_CHAN_COUNT PRS_CHAN_COUNT

PRS Synchronous channel count.

#define
PRS_ASYNC_CHAN_COUNT PRS_CHAN_COUNT

PRS Asynchronous channel count.

#define

PRS asynchronous support.

Enumeration Documentation#

PRS_ChType_t#

PRS_ChType_t

PRS Channel type.

Enumerator
prsTypeAsync

Asynchronous channel type.

prsTypeSync

Synchronous channel type.


Definition at line 102 of file platform/emlib/inc/em_prs.h

PRS_Edge_TypeDef#

PRS_Edge_TypeDef

Edge detection type.

Enumerator
prsEdgeOff

Leave signal as is.

prsEdgePos

Generate pulses on positive edge.

prsEdgeNeg

Generate pulses on negative edge.

prsEdgeBoth

Generate pulses on both edges.


Definition at line 108 of file platform/emlib/inc/em_prs.h

PRS_Signal_t#

PRS_Signal_t

PRS Signal.

Enumerator
prsSignalNone

No Signal.

prsSignalSW

Software-reserved Signal.

prsSignalPRS_CH0

PRS_CH0 signal.

prsSignalPRS_CH1

PRS_CH1 signal.

prsSignalPRS_CH2

PRS_CH2 signal.

prsSignalPRS_CH3

PRS_CH3 signal.

prsSignalPRS_CH4

PRS_CH4 signal.

prsSignalPRS_CH5

PRS_CH5 signal.

prsSignalPRS_CH6

PRS_CH6 signal.

prsSignalPRS_CH7

PRS_CH7 signal.

prsSignalPRS_CH8

PRS_CH8 signal.

prsSignalPRS_CH9

PRS_CH9 signal.

prsSignalPRS_CH10

PRS_CH10 signal.

prsSignalPRS_CH11

PRS_CH11 signal.

prsSignalPRS_CH12

PRS_CH12 signal.

prsSignalPRS_CH13

PRS_CH13 signal.

prsSignalPRS_CH14

PRS_CH14 signal.

prsSignalPRS_CH15

PRS_CH15 signal.

prsSignalPRS_CH16

PRS_CH16 signal.

prsSignalPRS_CH17

PRS_CH17 signal.

prsSignalPRS_CH18

PRS_CH18 signal.

prsSignalPRS_CH19

PRS_CH19 signal.

prsSignalPRS_CH20

PRS_CH20 signal.

prsSignalPRS_CH21

PRS_CH21 signal.

prsSignalPRS_CH22

PRS_CH22 signal.

prsSignalPRS_CH23

PRS_CH23 signal.

prsSignalADC0_SINGLE

ADC0_SINGLE signal.

prsSignalADC0_SCAN

ADC0_SCAN signal.

prsSignalADC1_SINGLE

ADC1_SINGLE signal.

prsSignalADC1_SCAN

ADC1_SCAN signal.

prsSignalTIMER0_UF

TIMER0 underflow Signal.

prsSignalTIMER0_OF

TIMER0 overflow Signal.

prsSignalTIMER0_CC0

TIMER0 capture/compare channel 0 Signal.

prsSignalTIMER0_CC1

TIMER0 capture/compare channel 1 Signal.

prsSignalTIMER0_CC2

TIMER0 capture/compare channel 2 Signal.

prsSignalTIMER1_UF

TIMER1 underflow Signal.

prsSignalTIMER1_OF

TIMER1 overflow Signal.

prsSignalTIMER1_CC0

TIMER1 capture/compare channel 0 Signal.

prsSignalTIMER1_CC1

TIMER1 capture/compare channel 1 Signal.

prsSignalTIMER1_CC2

TIMER1 capture/compare channel 2 Signal.

prsSignalTIMER2_UF

TIMER2 underflow Signal.

prsSignalTIMER2_OF

TIMER2 overflow Signal.

prsSignalTIMER2_CC0

TIMER2 capture/compare channel 0 Signal.

prsSignalTIMER2_CC1

TIMER2 capture/compare channel 1 Signal.

prsSignalTIMER2_CC2

TIMER2 capture/compare channel 2 Signal.

prsSignalTIMER3_UF

TIMER3 underflow Signal.

prsSignalTIMER3_OF

TIMER3 overflow Signal.

prsSignalTIMER3_CC0

TIMER3 capture/compare channel 0 Signal.

prsSignalTIMER3_CC1

TIMER3 capture/compare channel 1 Signal.

prsSignalTIMER3_CC2

TIMER3 capture/compare channel 2 Signal.

prsSignalTIMER1_CC3

TIMER3 capture/compare channel 3 Signal.

prsSignalTIMER4_UF

TIMER4 underflow Signal.

prsSignalTIMER4_OF

TIMER4 overflow Signal.

prsSignalTIMER4_CC0

TIMER4 capture/compare channel 0 Signal.

prsSignalTIMER4_CC1

TIMER4 capture/compare channel 1 Signal.

prsSignalTIMER4_CC2

TIMER4 capture/compare channel 2 Signal.

prsSignalTIMER5_UF

TIMER5 underflow Signal.

prsSignalTIMER5_OF

TIMER5 overflow Signal.

prsSignalTIMER5_CC0

TIMER5 capture/compare channel 0 Signal.

prsSignalTIMER5_CC1

TIMER5 capture/compare channel 1 Signal.

prsSignalTIMER5_CC2

TIMER5 capture/compare channel 2 Signal.

prsSignalTIMER6_UF

TIMER6 underflow Signal.

prsSignalTIMER6_OF

TIMER6 overflow Signal.

prsSignalTIMER6_CC0

TIMER6 capture/compare channel 0 Signal.

prsSignalTIMER6_CC1

TIMER6 capture/compare channel 1 Signal.

prsSignalTIMER6_CC2

TIMER6 capture/compare channel 2 Signal.

prsSignalLETIMER0_CH0

LETIMER0 channel 0 Signal.

prsSignalLETIMER0_CH1

LETIMER0 channel 1 Signal.

prsSignalLETIMER1_CH0

LETIMER1 channel 0 Signal.

prsSignalLETIMER1_CH1

LETIMER1 channel 1 Signal.

prsSignalPCNT0_TCC

PCNT0_TCC Signal.

prsSignalPCNT0_UFOF

PCNT0_TCC Signal.

prsSignalPCNT0_DIR

PCNT0_TCC Signal.

prsSignalPCNT1_TCC

PCNT1_TCC Signal.

prsSignalPCNT1_UFOF

PCNT1_TCC Signal.

prsSignalPCNT1_DIR

PCNT1_TCC Signal.

prsSignalPCNT2_TCC

PCNT2_TCC Signal.

prsSignalPCNT2_UFOF

PCNT2_TCC Signal.

prsSignalPCNT2_DIR

PCNT2_TCC Signal.

prsSignalCRYOTIMER_PERIOD

CRYOTIMER_PERIOD Signal.

prsSignalRTC_OF

RTC_OF signal.

prsSignalRTC_COMP0

RTC_COMP0 signal.

prsSignalRTC_COMP1

RTC_COMP1 signal.

prsSignalRTC_COMP2

RTC_COMP2 signal.

prsSignalRTC_COMP3

RTC_COMP3 signal.

prsSignalRTC_COMP4

RTC_COMP4 signal.

prsSignalRTC_COMP5

RTC_COMP5 signal.

prsSignalRTCC_CCV0

RTCC capture/compare channel 0 Signal.

prsSignalRTCC_CCV1

RTCC capture/compare channel 1 Signal.

prsSignalRTCC_CCV2

RTCC capture/compare channel 2 Signal.

prsSignalACMP0_OUT

ACMP0 Signal.

prsSignalACMP1_OUT

ACMP1 output Signal.

prsSignalACMP2_OUT

ACMP2 output Signal.

prsSignalACMP3_OUT

ACMP3 output Signal.

prsSignalVDAC0_CH0

VDAC0_CH0 Signal.

prsSignalVDAC0_CH1

VDAC0_CH1 Signal.

prsSignalVDAC0_OPA0

VDAC0_OPA0 Signal.

prsSignalVDAC0_OPA1

VDAC0_OPA1 Signal.

prsSignalVDAC0_OPA2

VDAC0_OPA2 Signal.

prsSignalVDAC0_OPA3

VDAC0_OPA3 Signal.

prsSignalLESENSE_SCANRES0

LESENSE_SCANRES0 Signal.

prsSignalLESENSE_SCANRES1

LESENSE_SCANRES1 Signal.

prsSignalLESENSE_SCANRES2

LESENSE_SCANRES2 Signal.

prsSignalLESENSE_SCANRES3

LESENSE_SCANRES3 Signal.

prsSignalLESENSE_SCANRES4

LESENSE_SCANRES4 Signal.

prsSignalLESENSE_SCANRES5

LESENSE_SCANRES5 Signal.

prsSignalLESENSE_SCANRES6

LESENSE_SCANRES6 Signal.

prsSignalLESENSE_SCANRES7

LESENSE_SCANRES7 Signal.

prsSignalLESENSE_SCANRES8

LESENSE_SCANRES8 Signal.

prsSignalLESENSE_SCANRES9

LESENSE_SCANRES9 Signal.

prsSignalLESENSE_SCANRES10

LESENSE_SCANRES10 Signal.

prsSignalLESENSE_SCANRES11

LESENSE_SCANRES11 Signal.

prsSignalLESENSE_SCANRES12

LESENSE_SCANRES12 Signal.

prsSignalLESENSE_SCANRES13

LESENSE_SCANRES13 Signal.

prsSignalLESENSE_SCANRES14

LESENSE_SCANRES14 Signal.

prsSignalLESENSE_SCANRES15

LESENSE_SCANRES15 Signal.

prsSignalLESENSE_DEC0

LESENSE_DEC0 Signal.

prsSignalLESENSE_DEC1

LESENSE_DEC1 Signal.

prsSignalLESENSE_DEC2

LESENSE_DEC2 Signal.

prsSignalLESENSE_DECCMP

LESENSE_DECCMP Signal.

prsSignalLESENSE_MEASACT

LESENSE_MEASACT Signal.

prsSignalUSART0_TXC

USART0 TX complete Signal.

prsSignalUSART0_RXDATAV

USART0 RX data available Signal.

prsSignalUSART0_IRTX

USART0 IR TX Signal.

prsSignalUSART0_RTS

USART0 RTS Signal.

prsSignalUSART0_TX

USART0 TX Signal.

prsSignalUSART0_CS

USART0 chip select Signal.

prsSignalUSART1_TXC

USART1 TX complete Signal.

prsSignalUSART1_RXDATAV

USART1 RX data available Signal.

prsSignalUSART1_RTS

USART1 RTS Signal.

prsSignalUSART1_TX

USART1 TX Signal.

prsSignalUSART1_CS

USART1 chip select Signal.

prsSignalUSART2_TXC

USART2 TX complete Signal.

prsSignalUSART2_RXDATAV

USART2 RX data available Signal.

prsSignalUSART2_IRTX

USART2 IR TX Signal.

prsSignalUSART2_RTS

USART2 RTS Signal.

prsSignalUSART2_TX

USART2 TX Signal.

prsSignalUSART2_CS

USART2 chip select Signal.

prsSignalUSART3_TXC

USART3 TX complete Signal.

prsSignalUSART3_RXDATAV

USART3 RX data available Signal.

prsSignalUSART3_RTS

USART3 RTS Signal.

prsSignalUSART3_TX

USART3 TX Signal.

prsSignalUSART3_CS

USART3 chip select Signal.

prsSignalUSART4_TXC

USART4 TX complete Signal.

prsSignalUSART4_RXDATAV

USART4 RX data available Signal.

prsSignalUSART4_RTS

USART4 RTS Signal.

prsSignalUSART4_TX

USART4 TX Signal.

prsSignalUSART4_CS

USART4 chip select Signal.

prsSignalUSART5_TXC

USART5 TX complete Signal.

prsSignalUSART5_RXDATAV

USART5 RX data available Signal.

prsSignalUSART5_RTS

USART5 RTS Signal.

prsSignalUSART5_TX

USART5 TX Signal.

prsSignalUSART5_CS

USART5 chip select Signal.

prsSignalUART0_TXC

UART0 TX complete Signal.

prsSignalUART0_RXDATAV

UART0 RX data available Signal.

prsSignalUART0_RTS

UART0 RTS Signal.

prsSignalUART0_TX

UART0 TX Signal.

prsSignalUART0_CS

UART0 chip select Signal.

prsSignalUART1_TXC

UART1 TX complete Signal.

prsSignalUART1_RXDATAV

UART1 RX data available Signal.

prsSignalUART1_RTS

UART1 RTS Signal.

prsSignalUART1_TX

UART1 RX Signal.

prsSignalUART1_CS

UART1 chip select Signal.

prsSignalUSB_SOF

USB_SOF Signal.

prsSignalUSB_SOFSR

USB_SOFSR Signal.

prsSignalCM4_TXEV

TXEV Signal.

prsSignalCM4_ICACHEPCHITSOF

ICACHEPCHITSOF Signal.

prsSignalCM4_ICACHEPCMISSESOF

ICACHEPCMISSESOF Signal.

prsSignalWTIMER0_UF

WTIMER0_UF Signal.

prsSignalWTIMER0_OF

WTIMER0_OF Signal.

prsSignalWTIMER0_CC0

WTIMER0_CC0 Signal.

prsSignalWTIMER0_CC1

WTIMER0_CC1 Signal.

prsSignalWTIMER0_CC2

WTIMER0_CC2 Signal.

prsSignalWTIMER1_UF

WTIMER1_UF Signal.

prsSignalWTIMER1_OF

WTIMER1_OF Signal.

prsSignalWTIMER1_CC0

WTIMER1_CC0 Signal.

prsSignalWTIMER1_CC1

WTIMER1_CC1 Signal.

prsSignalWTIMER1_CC2

WTIMER1_CC2 Signal.

prsSignalWTIMER1_CC3

WTIMER1_CC3 Signal.

prsSignalWTIMER2_UF

WTIMER2_UF Signal.

prsSignalWTIMER2_OF

WTIMER2_OF Signal.

prsSignalWTIMER2_CC0

WTIMER2_CC0 Signal.

prsSignalWTIMER2_CC1

WTIMER2_CC1 Signal.

prsSignalWTIMER2_CC2

WTIMER2_CC2 Signal.

prsSignalWTIMER3_UF

WTIMER3_UF Signal.

prsSignalWTIMER3_OF

WTIMER3_OF Signal.

prsSignalWTIMER3_CC0

WTIMER3_CC0 Signal.

prsSignalWTIMER3_CC1

WTIMER3_CC1 Signal.

prsSignalWTIMER3_CC2

WTIMER3_CC2 Signal.

prsSignalGPIO_PIN0

GPIO Pin 0 Signal.

prsSignalGPIO_PIN1

GPIO Pin 1 Signal.

prsSignalGPIO_PIN2

GPIO Pin 2 Signal.

prsSignalGPIO_PIN3

GPIO Pin 3 Signal.

prsSignalGPIO_PIN4

GPIO Pin 4 Signal.

prsSignalGPIO_PIN5

GPIO Pin 5 Signal.

prsSignalGPIO_PIN6

GPIO Pin 6 Signal.

prsSignalGPIO_PIN7

GPIO Pin 7 Signal.

prsSignalGPIO_PIN8

GPIO Pin 8 Signal.

prsSignalGPIO_PIN9

GPIO Pin 9 Signal.

prsSignalGPIO_PIN10

GPIO Pin 10 Signal.

prsSignalGPIO_PIN11

GPIO Pin 11 Signal.

prsSignalGPIO_PIN12

GPIO Pin 12 Signal.

prsSignalGPIO_PIN13

GPIO Pin 13 Signal.

prsSignalGPIO_PIN14

GPIO Pin 14 Signal.

prsSignalGPIO_PIN15

GPIO Pin 15 Signal.


Definition at line 138 of file platform/emlib/inc/em_prs.h

Function Documentation#

PRS_LevelSet#

void PRS_LevelSet (uint32_t level, uint32_t mask)

Set level control bit for one or more channels.

Parameters
[in]level

Level to use for channels indicated by mask. Use logical OR combination of PRS_SWLEVEL_CHnLEVEL defines for channels to set high level, otherwise 0.

[in]mask

Mask indicating which channels to set level for. Use logical OR combination of PRS_SWLEVEL_CHnLEVEL defines.

The level value for a channel is XORed with both the pulse possibly issued by PRS_PulseTrigger() and the PRS input signal selected for the channel(s).


Definition at line 1010 of file platform/emlib/inc/em_prs.h

PRS_LevelGet#

uint32_t PRS_LevelGet (void)

Get level control bit for all channels.

Parameters
N/A

Returns

  • The current software level configuration.


Definition at line 1026 of file platform/emlib/inc/em_prs.h

PRS_Values#

uint32_t PRS_Values (PRS_ChType_t type)

Get the PRS channel values for all channels.

Parameters
[in]type

PRS channel type. This can be either prsTypeAsync or prsTypeSync.

Returns

  • The current PRS channel output values for all channels as a bitset.


Definition at line 1047 of file platform/emlib/inc/em_prs.h

PRS_ChannelValue#

bool PRS_ChannelValue (unsigned int ch, PRS_ChType_t type)

Get the PRS channel value for a single channel.

Parameters
[in]ch

PRS channel number.

[in]type

PRS channel type. This can be either prsTypeAsync or prsTypeSync.

Returns

  • The current PRS channel output value. This is either 0 or 1.


Definition at line 1075 of file platform/emlib/inc/em_prs.h

PRS_PulseTrigger#

void PRS_PulseTrigger (uint32_t channels)

Trigger a high pulse (one HFPERCLK) for one or more channels.

Parameters
[in]channels

Logical ORed combination of channels to trigger a pulse for. Use PRS_SWPULSE_CHnPULSE defines.

Setting a bit for a channel causes the bit in the register to remain high for one HFPERCLK cycle. Pulse is XORed with both the corresponding bit in PRS SWLEVEL register and the PRS input signal selected for the channel(s).


Definition at line 1095 of file platform/emlib/inc/em_prs.h

PRS_ChannelLevelSet#

void PRS_ChannelLevelSet (unsigned int ch, bool level)

Set the PRS channel level for one asynchronous PRS channel.

Parameters
[in]ch

PRS channel number.

[in]level

true to set the level high (1) and false to set the level low (0).


Definition at line 1114 of file platform/emlib/inc/em_prs.h

PRS_ChannelPulse#

void PRS_ChannelPulse (unsigned int ch)

Trigger a pulse on one PRS channel.

Parameters
[in]ch

PRS channel number.


Definition at line 1126 of file platform/emlib/inc/em_prs.h

PRS_SourceSignalSet#

void PRS_SourceSignalSet (unsigned int ch, uint32_t source, uint32_t signal, PRS_Edge_TypeDef edge)

Set a source and signal for a channel.

Parameters
[in]ch

A channel to define the signal and source for.

[in]source

A source to select for the channel. Use one of PRS_CH_CTRL_SOURCESEL_x defines.

[in]signal

A signal (for selected source) to use. Use one of PRS_CH_CTRL_SIGSEL_x defines.

[in]edge

An edge (for selected source/signal) to generate the pulse for.


Definition at line 323 of file platform/emlib/src/em_prs.c

PRS_SourceAsyncSignalSet#

void PRS_SourceAsyncSignalSet (unsigned int ch, uint32_t source, uint32_t signal)

Set the source and asynchronous signal for a channel.

Parameters
[in]ch

A channel to define the source and asynchronous signal for.

[in]source

A source to select for the channel. Use one of PRS_CH_CTRL_SOURCESEL_x defines.

[in]signal

An asynchronous signal (for selected source) to use. Use one of the PRS_CH_CTRL_SIGSEL_x defines that support asynchronous operation.

Asynchronous reflexes are not clocked on HFPERCLK and can be used even in EM2/EM3. There is a limitation to reflexes operating in asynchronous mode in that they can only be used by a subset of the reflex consumers. See the PRS chapter in the reference manual for the complete list of supported asynchronous signals and consumers.

Note

  • This function is not supported on EFM32GxxxFyyy parts. In asynchronous mode, the edge detector only works in EM0 and should not be used. The EDSEL parameter in PRS_CHx_CTRL register is set to 0 (OFF) by default.


Definition at line 370 of file platform/emlib/src/em_prs.c

PRS_GpioOutputLocation#

void PRS_GpioOutputLocation (unsigned int ch, unsigned int location)

Send the output of a PRS channel to a GPIO pin.

Parameters
[in]ch

PRS channel number.

[in]location

PRS routing location.

This function is used to send the output of a PRS channel to a GPIO pin. Note that there are certain restrictions to where a PRS channel can be routed. Consult the datasheet of the device to see if a channel can be routed to the requested GPIO pin.


Definition at line 395 of file platform/emlib/src/em_prs.c

PRS_GetFreeChannel#

int PRS_GetFreeChannel (PRS_ChType_t type)

Search for the first free PRS channel.

Parameters
[in]type

PRS channel type. This can be either prsTypeAsync or prsTypeSync.

Returns

  • Channel number >= 0 if an unused PRS channel was found. If no free PRS channel was found then -1 is returned.


Definition at line 428 of file platform/emlib/src/em_prs.c

PRS_Reset#

void PRS_Reset (void)

Reset all PRS channels.

Parameters
N/A

This function will reset all the PRS channel configuration.


Definition at line 457 of file platform/emlib/src/em_prs.c

PRS_ConnectSignal#

void PRS_ConnectSignal (unsigned int ch, PRS_ChType_t type, PRS_Signal_t signal)

Connect a PRS signal to a channel.

Parameters
[in]ch

PRS channel number.

[in]type

PRS channel type. This can be either prsTypeAsync or prsTypeSync.

[in]signal

This is the PRS signal that should be placed on the channel.

This function will make the PRS signal available on the specific channel. Only a single PRS signal can be connected to any given channel.


Definition at line 495 of file platform/emlib/src/em_prs.c

Macro Definition Documentation#

PRS_SYNC_CHAN_COUNT#

#define PRS_SYNC_CHAN_COUNT
Value:
PRS_CHAN_COUNT

PRS Synchronous channel count.


Definition at line 67 of file platform/emlib/inc/em_prs.h

PRS_ASYNC_CHAN_COUNT#

#define PRS_ASYNC_CHAN_COUNT
Value:
PRS_CHAN_COUNT

PRS Asynchronous channel count.


Definition at line 69 of file platform/emlib/inc/em_prs.h

PRS_ASYNC_SUPPORTED#

#define PRS_ASYNC_SUPPORTED
Value:
1

PRS asynchronous support.


Definition at line 74 of file platform/emlib/inc/em_prs.h