LPCOMP — Low-power comparator

The low-power comparator (LPCOMP) peripheral compares an input voltage against a reference voltage.

The main features of LPCOMP are the following:

In System ON, LPCOMP can generate separate events on rising and falling edges of a signal, or sample the current state of the pin to determine if it is above or below the selected reference. The block is configurable to use any of the analog inputs on the device. Additionally, LPCOMP can be used as an analog wakeup source from System ON IDLE or System OFF. The comparator threshold is programmable to a range of supply voltage fractions.

Note: LPCOMP cannot be used (STARTed) at the same time as COMP. Only one comparator can be used at a time.
Figure 1. LPCOMP block diagram
Low-power comparator

Operation

The LPCOMP peripheral compares an input voltage (VIN+) from an analog input pin selected via the PSEL register, against a reference voltage (VIN-) selected via registers REFSEL and EXTREFSEL.

The PSEL, REFSEL, and EXTREFSEL registers must be configured before LPCOMP is enabled through the ENABLE register.

The HYST register allows enabling an optional hysteresis in the comparator core. This hysteresis prevents noise on the signal, which would create unwanted events. The following figure illustrates the effect of an active hysteresis on a noisy input signal. It is disabled by default, and must be configured before enabling LPCOMP.

Figure 2. Effect of hysteresis on a noisy input signal

LPCOMP is started by triggering the START task. After a startup time of tLPCOMP,STARTUP, LPCOMP generates a READY event to indicate that the comparator is ready to use and the output of LPCOMP is correct. LPCOMP generates events every time VIN+ crosses VIN-. More specifically, every time VIN+ rises above VIN- (upward crossing), an UP event and CROSS event are generated. Every time VIN+ falls below VIN- (downward crossing), a DOWN event and CROSS event are generated. When hysteresis is enabled, the upward crossing level becomes VIN- + VHYST/2, and the downward crossing level becomes VIN- - VHYST/2.

LPCOMP is stopped by triggering the STOP task.

LPCOMP is operational in both System ON and System OFF mode when enabled through the ENABLE register. See POWER — Power control for more information about power modes. Entering System OFF is not allowed when a READY event is pending to be generated.

All LPCOMP registers, including ENABLE, are classified as retained registers when the LPCOMP is enabled. However, when the device wakes up from System OFF, all LPCOMP registers are reset.

LPCOMP can wake up the system from System OFF by asserting the ANADETECT signal. The ANADETECT signal can be derived from any of the event sources that generate UP, DOWN, and CROSS events. If wakeup from System OFF occurs, only the ANADETECT signal is generated. See the ANADETECT register (ANADETECT) for more information on configuring the ANADETECT signal.

The immediate value of the LPCOMP can be sampled to RESULT by triggering the SAMPLE task.

See RESETREAS for more information on how to detect a wakeup from LPCOMP.

Shared resources

LPCOMP shares analog resources with SAADC. While it is possible to use the SAADC at the same time as the LPCOMP, selecting the same analog input pin for both modules is not supported.

Additionally, LPCOMP shares registers and other resources with other peripherals that have the same ID as the LPCOMP. See Peripherals with shared ID for more information.

The LPCOMP peripheral should not be disabled (by writing to the ENABLE register) before the peripheral has stopped. Failing to do so may result in unpredictable behavior.

Pin configuration

The LPCOMP.PSEL register is used to select an analog input pin for LPCOMP. The pins available are AIN0 through AIN7.

See GPIO — General purpose input/output for more information about the pins. Similarly, you can use EXTREFSEL to select one of the analog reference input pins, AIN0 and AIN1, as input for AREF if it is selected in EXTREFSEL. The selected analog pins are acquired by LPCOMP when it is enabled through ENABLE.

Registers

Instances

InstanceDomainBase addressTrustZoneSplit accessDescription
MapAttDMA

LPCOMP : S
LPCOMP : NS

GLOBAL

0x50106000
0x40106000

USSNANo

Low-power comparator LPCOMP

Register overview

RegisterOffsetTZDescription
TASKS_START0x000

Start comparator

TASKS_STOP0x004

Stop comparator

TASKS_SAMPLE0x008

Sample comparator value. This task requires that LPCOMP has been started by the START task.

SUBSCRIBE_START0x080

Subscribe configuration for task START

SUBSCRIBE_STOP0x084

Subscribe configuration for task STOP

SUBSCRIBE_SAMPLE0x088

Subscribe configuration for task SAMPLE

EVENTS_READY0x100

LPCOMP is ready and output is valid

EVENTS_DOWN0x104

Downward crossing

EVENTS_UP0x108

Upward crossing

EVENTS_CROSS0x10C

Downward or upward crossing

PUBLISH_READY0x180

Publish configuration for event READY

PUBLISH_DOWN0x184

Publish configuration for event DOWN

PUBLISH_UP0x188

Publish configuration for event UP

PUBLISH_CROSS0x18C

Publish configuration for event CROSS

SHORTS0x200

Shortcuts between local events and tasks

INTEN0x300

Enable or disable interrupt

INTENSET0x304

Enable interrupt

INTENCLR0x308

Disable interrupt

INTPEND0x30C

Pending interrupts

RESULT0x400

Compare result

ENABLE0x500

Enable LPCOMP

PSEL0x504

Input pin select

REFSEL0x508

Reference select

EXTREFSEL0x50C

External reference select

ANADETECT0x520

Analog detect configuration

HYST0x538

Comparator hysteresis enable

TASKS_START

Address offset: 0x000

Start comparator

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

TASKS_START

Start comparator

Trigger

1

Trigger task

TASKS_STOP

Address offset: 0x004

Stop comparator

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

TASKS_STOP

Stop comparator

Trigger

1

Trigger task

TASKS_SAMPLE

Address offset: 0x008

Sample comparator value. This task requires that LPCOMP has been started by the START task.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

TASKS_SAMPLE

Sample comparator value. This task requires that LPCOMP has been started by the START task.

Trigger

1

Trigger task

SUBSCRIBE_START

Address offset: 0x080

Subscribe configuration for task START

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that task START will subscribe to

B

RW

EN

Disabled

0

Disable subscription

Enabled

1

Enable subscription

SUBSCRIBE_STOP

Address offset: 0x084

Subscribe configuration for task STOP

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that task STOP will subscribe to

B

RW

EN

Disabled

0

Disable subscription

Enabled

1

Enable subscription

SUBSCRIBE_SAMPLE

Address offset: 0x088

Subscribe configuration for task SAMPLE

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that task SAMPLE will subscribe to

B

RW

EN

Disabled

0

Disable subscription

Enabled

1

Enable subscription

EVENTS_READY

Address offset: 0x100

LPCOMP is ready and output is valid

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

EVENTS_READY

LPCOMP is ready and output is valid

NotGenerated

0

Event not generated

Generated

1

Event generated

EVENTS_DOWN

Address offset: 0x104

Downward crossing

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

EVENTS_DOWN

Downward crossing

NotGenerated

0

Event not generated

Generated

1

Event generated

EVENTS_UP

Address offset: 0x108

Upward crossing

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

EVENTS_UP

Upward crossing

NotGenerated

0

Event not generated

Generated

1

Event generated

EVENTS_CROSS

Address offset: 0x10C

Downward or upward crossing

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

EVENTS_CROSS

Downward or upward crossing

NotGenerated

0

Event not generated

Generated

1

Event generated

PUBLISH_READY

Address offset: 0x180

Publish configuration for event READY

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that event READY will publish to

B

RW

EN

Disabled

0

Disable publishing

Enabled

1

Enable publishing

PUBLISH_DOWN

Address offset: 0x184

Publish configuration for event DOWN

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that event DOWN will publish to

B

RW

EN

Disabled

0

Disable publishing

Enabled

1

Enable publishing

PUBLISH_UP

Address offset: 0x188

Publish configuration for event UP

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that event UP will publish to

B

RW

EN

Disabled

0

Disable publishing

Enabled

1

Enable publishing

PUBLISH_CROSS

Address offset: 0x18C

Publish configuration for event CROSS

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that event CROSS will publish to

B

RW

EN

Disabled

0

Disable publishing

Enabled

1

Enable publishing

SHORTS

Address offset: 0x200

Shortcuts between local events and tasks

Bit number313029282726252423222120191817161514131211109876543210
IDEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

READY_SAMPLE

Shortcut between event READY and task SAMPLE

Disabled

0

Disable shortcut

Enabled

1

Enable shortcut

B

RW

READY_STOP

Shortcut between event READY and task STOP

Disabled

0

Disable shortcut

Enabled

1

Enable shortcut

C

RW

DOWN_STOP

Shortcut between event DOWN and task STOP

Disabled

0

Disable shortcut

Enabled

1

Enable shortcut

D

RW

UP_STOP

Shortcut between event UP and task STOP

Disabled

0

Disable shortcut

Enabled

1

Enable shortcut

E

RW

CROSS_STOP

Shortcut between event CROSS and task STOP

Disabled

0

Disable shortcut

Enabled

1

Enable shortcut

INTEN

Address offset: 0x300

Enable or disable interrupt

Bit number313029282726252423222120191817161514131211109876543210
IDDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

READY

Enable or disable interrupt for event READY

Disabled

0

Disable

Enabled

1

Enable

B

RW

DOWN

Enable or disable interrupt for event DOWN

Disabled

0

Disable

Enabled

1

Enable

C

RW

UP

Enable or disable interrupt for event UP

Disabled

0

Disable

Enabled

1

Enable

D

RW

CROSS

Enable or disable interrupt for event CROSS

Disabled

0

Disable

Enabled

1

Enable

INTENSET

Address offset: 0x304

Enable interrupt

Bit number313029282726252423222120191817161514131211109876543210
IDDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW
W1S

READY

Write '1' to enable interrupt for event READY

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

B

RW
W1S

DOWN

Write '1' to enable interrupt for event DOWN

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

C

RW
W1S

UP

Write '1' to enable interrupt for event UP

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

D

RW
W1S

CROSS

Write '1' to enable interrupt for event CROSS

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

INTENCLR

Address offset: 0x308

Disable interrupt

Bit number313029282726252423222120191817161514131211109876543210
IDDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW
W1C

READY

Write '1' to disable interrupt for event READY

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

B

RW
W1C

DOWN

Write '1' to disable interrupt for event DOWN

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

C

RW
W1C

UP

Write '1' to disable interrupt for event UP

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

D

RW
W1C

CROSS

Write '1' to disable interrupt for event CROSS

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

INTPEND

Address offset: 0x30C

Pending interrupts

Bit number313029282726252423222120191817161514131211109876543210
IDDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

READY

Read pending status of interrupt for event READY

NotPending

0

Read: Not pending

Pending

1

Read: Pending

B

R

DOWN

Read pending status of interrupt for event DOWN

NotPending

0

Read: Not pending

Pending

1

Read: Pending

C

R

UP

Read pending status of interrupt for event UP

NotPending

0

Read: Not pending

Pending

1

Read: Pending

D

R

CROSS

Read pending status of interrupt for event CROSS

NotPending

0

Read: Not pending

Pending

1

Read: Pending

RESULT

Address offset: 0x400

Compare result

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

RESULT

Result of last compare. Decision point SAMPLE task.

Below

0

Input voltage is below the reference threshold (VIN+ < VIN-)

Above

1

Input voltage is above the reference threshold (VIN+ > VIN-)

ENABLE

Address offset: 0x500

Enable LPCOMP

Bit number313029282726252423222120191817161514131211109876543210
IDAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

ENABLE

Enable or disable LPCOMP

Disabled

0

Disable

Enabled

1

Enable

PSEL

Address offset: 0x504

Input pin select

The pin is selected based on PSEL.PORT

Bit number313029282726252423222120191817161514131211109876543210
IDBBBBAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

PIN

Analog pin select

B

RW

PORT

GPIO Port selection

REFSEL

Address offset: 0x508

Reference select

Bit number313029282726252423222120191817161514131211109876543210
IDAAAA
Reset 0x0000000400000000000000000000000000000100
IDR/WFieldValue IDValueDescription
A

RW

REFSEL

Reference select

Ref1_8Vdd

0

VDD * 1/8 selected as reference

Ref2_8Vdd

1

VDD * 2/8 selected as reference

Ref3_8Vdd

2

VDD * 3/8 selected as reference

Ref4_8Vdd

3

VDD * 4/8 selected as reference

Ref5_8Vdd

4

VDD * 5/8 selected as reference

Ref6_8Vdd

5

VDD * 6/8 selected as reference

Ref7_8Vdd

6

VDD * 7/8 selected as reference

ARef

7

External analog reference selected

Ref1_16Vdd

8

VDD * 1/16 selected as reference

Ref3_16Vdd

9

VDD * 3/16 selected as reference

Ref5_16Vdd

10

VDD * 5/16 selected as reference

Ref7_16Vdd

11

VDD * 7/16 selected as reference

Ref9_16Vdd

12

VDD * 9/16 selected as reference

Ref11_16Vdd

13

VDD * 11/16 selected as reference

Ref13_16Vdd

14

VDD * 13/16 selected as reference

Ref15_16Vdd

15

VDD * 15/16 selected as reference

EXTREFSEL

Address offset: 0x50C

External reference select

The external reference pin is selected based on EXTREFSEL.PORT

Bit number313029282726252423222120191817161514131211109876543210
IDBBBBAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

PIN

External analog reference pin select

B

RW

PORT

GPIO Port selection

ANADETECT

Address offset: 0x520

Analog detect configuration

Bit number313029282726252423222120191817161514131211109876543210
IDAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

ANADETECT

Analog detect configuration

Cross

0

Generate ANADETECT on crossing, both upward crossing and downward crossing

Up

1

Generate ANADETECT on upward crossing only

Down

2

Generate ANADETECT on downward crossing only

HYST

Address offset: 0x538

Comparator hysteresis enable

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

HYST

Comparator hysteresis enable

Disabled

0

Comparator hysteresis disabled

Enabled

1

Comparator hysteresis enabled