| .. _comparator_api: |
| |
| Comparator |
| ########## |
| |
| Overview |
| ******** |
| |
| An analog comparator compares the voltages of two analog signals connected to its negative and |
| positive inputs. If the voltage at the positive input is higher than the negative input, the |
| comparator's output will be high, otherwise, it will be low. |
| |
| Comparators can typically set a trigger which triggers on output changes. This trigger can |
| either invoke a callback, or its status can be polled. |
| |
| Related configuration options: |
| |
| * :kconfig:option:`CONFIG_COMPARATOR` |
| |
| Configuration |
| ************* |
| |
| Embedded comparators can typically be configured at runtime. When enabled, an initial |
| configuration must be provided using the devicetree. At runtime, comparators can have their |
| configuration updated using device driver specific APIs. The configuration will be applied |
| when the comparator is resumed. |
| |
| Power management |
| **************** |
| |
| Comparators are enabled using power management. When resumed, the comparator will actively |
| compare its inputs, producing an output and detecting edges. When suspended, the comparator |
| will be inactive. |
| |
| Comparator shell |
| **************** |
| |
| The comparator shell provides the ``comp`` command with a set of subcommands for the |
| :ref:`shell <shell_api>` module. |
| |
| The ``comp`` shell command provides the following subcommands: |
| |
| * ``get_output`` See :c:func:`comparator_get_output` |
| * ``set_trigger`` See :c:func:`comparator_set_trigger` |
| * ``await_trigger`` Awaits trigger using the following flow: |
| |
| * Set trigger callback using :c:func:`comparator_set_trigger_callback` |
| * Await callback or time out after default or optionally provided timeout |
| * Clear trigger callback using :c:func:`comparator_set_trigger_callback` |
| * ``trigger_is_pending`` See :c:func:`comparator_trigger_is_pending` |
| |
| Related configuration options: |
| |
| * :kconfig:option:`CONFIG_SHELL` |
| * :kconfig:option:`CONFIG_COMPARATOR_SHELL` |
| * :kconfig:option:`CONFIG_COMPARATOR_SHELL_AWAIT_TRIGGER_DEFAULT_TIMEOUT` |
| * :kconfig:option:`CONFIG_COMPARATOR_SHELL_AWAIT_TRIGGER_MAX_TIMEOUT` |
| |
| .. note:: |
| The power management shell can optionally be enabled alongside the comparator shell. |
| |
| Related configuration options: |
| |
| * :kconfig:option:`CONFIG_PM_DEVICE` |
| * :kconfig:option:`CONFIG_PM_DEVICE_SHELL` |
| |
| API Reference |
| ************* |
| |
| .. doxygengroup:: comparator_interface |