Driver for the ACMPLP peripheral on RA MCUs. This module implements the Comparator Interface.
Overview
Features
The ACMPLP HAL module supports the following features:
Normal mode or window mode
Callback on rising edge, falling edge or both
Configurable debounce filter
Option for comparator output on VCOUT pin
ELC event output
Supported Devices
Device Group
Devices
RA2
RA2A1, RA2E1, RA2L1
RA4
RA4L1, RA4M1, RA4W1
Configuration
Build Time Configurations for r_acmplp
The following build time configurations are defined in fsp_cfg/r_acmplp_cfg.h:
Configuration
Options
Default
Description
Parameter Checking
Default (BSP)
Enabled
Disabled
Default (BSP)
If selected code for parameter checking is included in the build.
Reference Voltage Selection for ACMPLP1 (Standard mode only)
IVREF0
IVREF1
IVREF1
ACMPLP1 may optionally be configured to use IVREF0 as a reference input instead of IVREF1. Note that if IVREF0 is selected, ACMPLP0 and ACMPLP1 must use the same setting for IVREF.
Configurations for Analog > Comparator, Low-Power (r_acmplp)
This module can be added to the Stacks tab via New Stack > Analog > Comparator, Low-Power (r_acmplp).
Configuration
Options
Default
Description
Name
Name must be a valid C symbol
g_comparator0
Module name.
Channel
Value must be a non-negative integer
0
Select the hardware channel.
Mode
Standard
Window
Standard
In standard mode, comparator output is high if VCMP > VREF. In window mode, comparator output is high if VCMP is outside the range of VREF0 to VREF1.
Trigger
Rising
Falling
Both Edge
Both Edge
The trigger specifies when a comparator callback event should occur. Unused if the interrupt priority is disabled or the callback is NULL.
Filter
No sampling (bypass)
Sampling at PCLKB
Sampling at PCLKB/8
Sampling at PCLKB/32
No sampling (bypass)
Select the PCLK divisor for the hardware digital debounce filter. Larger divisors provide a longer debounce and take longer for the output to update.
Output Polarity
Not Inverted
Inverted
Not Inverted
When enabled comparator output is inverted. This affects the output read from R_ACMPLP_StatusGet(), the pin output level, and the edge trigger.
Pin Output (VCOUT)
Disabled
Enabled
Disabled
Turn this on to include the output from this comparator on VCOUT. The comparator output on VCOUT is OR'd with output from all other ACMPHS and ACMPLP comparators.
Vref (Standard mode only)
Enabled
Disabled
Disabled
If reference voltage selection is enabled then internal reference voltage is used as comparator input
Callback
Name must be a valid C symbol
NULL
Define this function in the application. It is called when the Trigger event occurs.
Comparator Interrupt Priority
MCU Specific Options
Select the interrupt priority for the comparator interrupt.
Analog Input Voltage Source (IVCMP)
MCU Specific Options
Select the comparator input source. Only options for the configured channel are valid.
Reference Voltage Input Source (IVREF)
MCU Specific Options
Select the comparator reference voltage source.
If channel 1 is seleected and the 'Reference Voltage Selection (ACMPLP1)' config option is set to IVREF0, select one of the Channel 0 options. In all other cases, only options for the configured channel are valid.
Clock Configuration
The ACMPLP peripheral is clocked from PCLKB. You can set the PCLKB frequency using the Clocks tab of the RA Configuration editor or by using the CGC Interface at run-time.
Pin Configuration
Comparator output can be enabled or disabled on each channel individually. The VCOUT pin is a logical OR of all comparator outputs.
The CMPINn pins are used as comparator inputs. The CMPREFn pins are used as comparator reference values.
Usage Notes
ACMPLP Standard Mode Operation
Noise Filter
When the noise filter is enabled, the ACMPLP0/ACMPLP1 signal is sampled three times based on the sampling clock selected. The filter clock frequency is determined by PCLKB and the comparator_filter_t setting.
Output Polarity
If output polarity is configured as "Inverted" then the VCOUT signal will be inverted and the R_ACMPLP_StatusGet() will return an inverted status.
Window Mode
In window mode, the comparator indicates if the analog input voltage falls within the window (low and high reference voltage) or is outside the window.
ACMPLP Window Mode Operation
Limitations
Once the analog comparator is configured, the program must wait for the stabilization time to elapse before using the comparator.
Low speed is not supported by the ACMPLP driver.
Examples
Basic Example
The following is a basic example of minimal use of the ACMPLP. The comparator is configured to trigger a callback when the input rises above the internal reference voltage (VREF). A GPIO output acts as the comparator input and is externally connected to the CMPIN input of the ACMPLP.
/* Connect this control pin to the VCMP input of the comparator. This can be any GPIO pin
Configures the comparator and starts operation. Callbacks and pin output are not active until outputEnable() is called. comparator_api_t::outputEnable() should be called after the output has stabilized. Implements comparator_api_t::open().
Comparator inputs must be configured in the application code prior to calling this function.
Return values
FSP_SUCCESS
Open successful.
FSP_ERR_ASSERTION
An input pointer is NULL
FSP_ERR_INVALID_ARGUMENT
An argument is invalid. Window mode (COMPARATOR_MODE_WINDOW) and filter of 1 (COMPARATOR_FILTER_1) are not supported in this implementation. p_cfg->p_callback is not NULL, but ISR is not enabled. ISR must be enabled to use callback function.
FSP_ERR_ALREADY_OPEN
The control block is already open or the hardware lock is taken.