mirror of
https://github.com/espressif/esp-idf.git
synced 2025-09-30 19:19:21 +00:00
feat(ana_cmpr): supported etm in analog comparator example
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
Analog Comparator
|
||||
=================
|
||||
|
||||
{IDF_TARGET_ANA_CMPR_NUM: default="NOT UPDATED", esp32h2="one", esp32p4="two"}
|
||||
{IDF_TARGET_ANA_CMPR_SRC_CHAN0: default="NOT UPDATED", esp32h2="GPIO11", esp32p4="GPIO52"}
|
||||
{IDF_TARGET_ANA_CMPR_EXT_REF_CHAN0: default="NOT UPDATED", esp32h2="GPIO10", esp32p4="GPIO51"}
|
||||
{IDF_TARGET_ANA_CMPR_SRC_CHAN1: default="NOT UPDATED", esp32p4="GPIO54"}
|
||||
@@ -14,13 +13,13 @@ Analog Comparator is a peripheral that can be used to compare a source signal wi
|
||||
|
||||
It is a cost effective way to replace an amplifier comparator in some scenarios. But unlike the continuous comparing of the amplifier comparator, ESP Analog Comparator is driven by a source clock, which decides the sampling frequency.
|
||||
|
||||
Analog Comparator on {IDF_TARGET_NAME} has {IDF_TARGET_ANA_CMPR_NUM} unit(s), the channels in the unit(s) are:
|
||||
Analog Comparator on {IDF_TARGET_NAME} has {IDF_TARGET_SOC_ANA_CMPR_NUM} unit(s), the channels in the unit(s) are:
|
||||
|
||||
**UNIT0**
|
||||
|
||||
- Source Channel: {IDF_TARGET_ANA_CMPR_SRC_CHAN0}
|
||||
- External Reference Channel: {IDF_TARGET_ANA_CMPR_EXT_REF_CHAN0}
|
||||
- Internal Reference Channel: Range 0% ~ 70% VDD, step 10% VDD
|
||||
- Internal Reference Channel: Range 0% ~ 70% of the VDD, the step is 10% of the VDD
|
||||
|
||||
.. only:: esp32p4
|
||||
|
||||
@@ -28,7 +27,7 @@ Analog Comparator on {IDF_TARGET_NAME} has {IDF_TARGET_ANA_CMPR_NUM} unit(s), th
|
||||
|
||||
- Source Channel: {IDF_TARGET_ANA_CMPR_SRC_CHAN1}
|
||||
- External Reference Channel: {IDF_TARGET_ANA_CMPR_EXT_REF_CHAN1}
|
||||
- Internal Reference Channel: Range 0% ~ 70% VDD, step 10% VDD
|
||||
- Internal Reference Channel: Range 0% ~ 70% of the VDD, the step is 10% of the VDD
|
||||
|
||||
Functional Overview
|
||||
-------------------
|
||||
@@ -56,7 +55,7 @@ To allocate the resource of the Analog Comparator unit, :cpp:func:`ana_cmpr_new_
|
||||
|
||||
- :cpp:member:`ana_cmpr_config_t::unit` selects the Analog Comparator unit.
|
||||
- :cpp:member:`ana_cmpr_config_t::clk_src` selects the source clock for Analog Comparator, it can affect the sampling frequency. Note that the clock source of the Analog Comparator comes from the io mux, it is shared with GPIO extension peripherals like SDM (Sigma-Delta Modulation) and Glitch Filter. The configuration will fail if you specific different clock sources for multiple GPIO extension peripherals. The default clock sources of these peripherals are same, typically, we select :cpp:enumerator:`soc_periph_ana_cmpr_clk_src_t::ANA_CMPR_CLK_SRC_DEFAULT` as the clock source.
|
||||
- :cpp:member:`ana_cmpr_config_t::ref_src` selects the reference source from internal voltage or external signal (from {IDF_TARGET_ANA_CMPR_EXT_REF_CHAN}).
|
||||
- :cpp:member:`ana_cmpr_config_t::ref_src` selects the reference source from internal voltage or external signal.
|
||||
- :cpp:member:`ana_cmpr_config_t::cross_type` selects which kind of cross type can trigger the interrupt.
|
||||
|
||||
The function :cpp:func:`ana_cmpr_new_unit` can fail due to various errors such as insufficient memory, invalid arguments, etc. If a previously created Analog Comparator unit is no longer required, you should recycle it by calling :cpp:func:`ana_cmpr_del_unit`. It allows the underlying HW channel to be used for other purposes. Before deleting an Analog Comparator unit handle, you should disable it by :cpp:func:`ana_cmpr_unit_disable` in advance, or make sure it has not enabled yet by :cpp:func:`ana_cmpr_unit_enable`.
|
||||
@@ -67,7 +66,7 @@ The function :cpp:func:`ana_cmpr_new_unit` can fail due to various errors such a
|
||||
|
||||
ana_cmpr_handle_t cmpr = NULL;
|
||||
ana_cmpr_config_t config = {
|
||||
.unit = ANA_CMPR_UNIT_0,
|
||||
.unit = 0,
|
||||
.clk_src = ANA_CMPR_CLK_SRC_DEFAULT,
|
||||
.ref_src = ANA_CMPR_REF_SRC_INTERNAL,
|
||||
.cross_type = ANA_CMPR_CROSS_ANY,
|
||||
@@ -199,7 +198,7 @@ Kconfig Options
|
||||
ETM Events
|
||||
^^^^^^^^^^
|
||||
|
||||
To create an analog comparator cross event, you need to include ``driver/ana_cmpr_etm.h`` additionally, and allocate the event by :cpp:func:`ana_cmpr_new_etm_event`. You can refer to :doc:`GPTimer </api-reference/peripherals/etm>` for how to connect an event to a task.
|
||||
To create an analog comparator cross event, you need to include ``driver/ana_cmpr_etm.h`` additionally, and allocate the event by :cpp:func:`ana_cmpr_new_etm_event`. You can refer to :doc:`ETM </api-reference/peripherals/etm>` for how to connect an event to a task.
|
||||
|
||||
Application Example
|
||||
-------------------
|
||||
|
@@ -70,10 +70,7 @@ Other Peripheral Events
|
||||
:SOC_TIMER_SUPPORT_ETM: - Refer to :doc:`/api-reference/peripherals/gptimer` for how to get the ETM event handle from GPTimer.
|
||||
:SOC_GDMA_SUPPORT_ETM: - Refer to :doc:`/api-reference/system/async_memcpy` for how to get the ETM event handle from async memcpy.
|
||||
:SOC_MCPWM_SUPPORT_ETM: - Refer to :doc:`/api-reference/peripherals/mcpwm` for how to get the ETM event handle from MCPWM.
|
||||
|
||||
.. only:: esp32p4
|
||||
|
||||
:SOC_ANA_CMPR_SUPPORT_ETM: - Refer to :doc:`/api-reference/peripherals/ana_cmpr` for how to get the ETM event handle from analog comparator.
|
||||
:SOC_ANA_CMPR_SUPPORT_ETM: - Refer to :doc:`/api-reference/peripherals/ana_cmpr` for how to get the ETM event handle from analog comparator.
|
||||
|
||||
.. _etm-task:
|
||||
|
||||
|
Reference in New Issue
Block a user