mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
134 lines
5.3 KiB
ReStructuredText
134 lines
5.3 KiB
ReStructuredText
|
MCPWM
|
||
|
=====
|
||
|
|
||
|
Overview
|
||
|
--------
|
||
|
|
||
|
ESP32 has two MCPWM units which can be used to control different motors.
|
||
|
|
||
|
Block Diagram
|
||
|
-------------
|
||
|
|
||
|
The block diagram of MCPWM unit is as shown.
|
||
|
|
||
|
::
|
||
|
|
||
|
__________________________________________________________________________
|
||
|
| SYNCSIG FAULT SIG CAPTURE SIG |
|
||
|
| 0 1 2 0 1 2 0 1 2 |
|
||
|
|___________________________________________________________________ G |
|
||
|
INTERRUPTS<-----+ | | | | | | | | | | P |
|
||
|
| | | | | | | | | | | I |
|
||
|
________|_|___|___|_____________|___|___|_________|___|___|_________ | O |
|
||
|
| | | | | | | | | | | | |
|
||
|
| | | | | | | | | | | | M |
|
||
|
| | | | __v___v___v__ __v___v___v__ | | A |
|
||
|
| | | | | | | | | | T |
|
||
|
| | | | | FAULT | | CAPTURE | | | R |
|
||
|
| | | | | HANDLER | | | | | I |
|
||
|
| | | | | | |___________| | | X |
|
||
|
| | | | |___________| | | |
|
||
|
| | | | | | |
|
||
|
| ____v___v___v____ ____________________ | | |
|
||
|
| | +---------+ | | +------------+ |--------->|PWM0A|
|
||
|
| | | Timer 0 | | | | Operator 0 | | | | |
|
||
|
| | +---------+ | | +------------+ |--------->|PWM0B|
|
||
|
| | | | | | | |
|
||
|
| | +---------+ | | +------------+ |--------->|PWM1A|
|
||
|
| | | Timer 1 | |------------------->| | Operator 1 | | | | |
|
||
|
| | +---------+ | | +------------+ |--------->|PWM1B|
|
||
|
| | | | | | | |
|
||
|
| | +---------+ | | +------------+ |--------->|PWM2A|
|
||
|
| | | Timer 2 | | | | Operator 2 | | | | |
|
||
|
| | +---------+ | | +------------+ |--------->|PWM2B|
|
||
|
| |_______________| |__________________| | |_____|
|
||
|
| |
|
||
|
| MCPWM-UNIT 0/1 |
|
||
|
|___________________________________________________________________|
|
||
|
|
||
|
|
||
|
Application Example
|
||
|
-------------------
|
||
|
|
||
|
MCPWM different motor example: :example:`peripherals/mcpwm`.
|
||
|
|
||
|
API Reference
|
||
|
-------------
|
||
|
|
||
|
Header Files
|
||
|
^^^^^^^^^^^^
|
||
|
|
||
|
* :component_file:`driver/include/driver/mcpwm.h`
|
||
|
|
||
|
Type Definitions
|
||
|
^^^^^^^^^^^^^^^^
|
||
|
|
||
|
|
||
|
Enumerations
|
||
|
^^^^^^^^^^^^
|
||
|
|
||
|
.. doxygenenum:: mcpwm_io_signals_t
|
||
|
.. doxygenenum:: mcpwm_unit_t
|
||
|
.. doxygenenum:: mcpwm_timer_t
|
||
|
.. doxygenenum:: mcpwm_operator_t
|
||
|
.. doxygenenum:: mcpwm_counter_type_t
|
||
|
.. doxygenenum:: mcpwm_duty_type_t
|
||
|
.. doxygenenum:: mcpwm_carrier_os_t
|
||
|
.. doxygenenum:: mcpwm_carrier_out_ivt_t
|
||
|
.. doxygenenum:: mcpwm_sync_signal_t
|
||
|
.. doxygenenum:: mcpwm_fault_signal_t
|
||
|
.. doxygenenum:: mcpwm_fault_input_level_t
|
||
|
.. doxygenenum:: mcpwm_action_on_pwmxa_t
|
||
|
.. doxygenenum:: mcpwm_action_on_pwmxb_t
|
||
|
.. doxygenenum:: mcpwm_capture_signal_t
|
||
|
.. doxygenenum:: mcpwm_capture_on_edge_t
|
||
|
.. doxygenenum:: mcpwm_deadtime_type_t
|
||
|
|
||
|
Structures
|
||
|
^^^^^^^^^^
|
||
|
|
||
|
.. doxygenstruct:: mcpwm_config_t
|
||
|
:members:
|
||
|
|
||
|
.. doxygenstruct:: mcpwm_carrier_config_t
|
||
|
:members:
|
||
|
|
||
|
|
||
|
Functions
|
||
|
^^^^^^^^^
|
||
|
|
||
|
.. doxygenfunction:: mcpwm_gpio_init
|
||
|
.. doxygenfunction:: mcpwm_init
|
||
|
.. doxygenfunction:: mcpwm_set_frequency
|
||
|
.. doxygenfunction:: mcpwm_set_duty
|
||
|
.. doxygenfunction:: mcpwm_set_duty_in_us
|
||
|
.. doxygenfunction:: mcpwm_set_duty_type
|
||
|
.. doxygenfunction:: mcpwm_get_frequency
|
||
|
.. doxygenfunction:: mcpwm_get_duty
|
||
|
.. doxygenfunction:: mcpwm_set_signal_high
|
||
|
.. doxygenfunction:: mcpwm_set_signal_low
|
||
|
.. doxygenfunction:: mcpwm_start
|
||
|
.. doxygenfunction:: mcpwm_stop
|
||
|
.. doxygenfunction:: mcpwm_carrier_init
|
||
|
.. doxygenfunction:: mcpwm_carrier_enable
|
||
|
.. doxygenfunction:: mcpwm_carrier_disable
|
||
|
.. doxygenfunction:: mcpwm_carrier_set_period
|
||
|
.. doxygenfunction:: mcpwm_carrier_set_duty_cycle
|
||
|
.. doxygenfunction:: mcpwm_carrier_oneshot_mode_enable
|
||
|
.. doxygenfunction:: mcpwm_carrier_oneshot_mode_disable
|
||
|
.. doxygenfunction:: mcpwm_carrier_output_invert
|
||
|
.. doxygenfunction:: mcpwm_deadtime_enable
|
||
|
.. doxygenfunction:: mcpwm_deadtime_disable
|
||
|
.. doxygenfunction:: mcpwm_fault_init
|
||
|
.. doxygenfunction:: mcpwm_fault_set_oneshot_mode
|
||
|
.. doxygenfunction:: mcpwm_fault_set_cyc_mode
|
||
|
.. doxygenfunction:: mcpwm_fault_deinit
|
||
|
.. doxygenfunction:: mcpwm_capture_enable
|
||
|
.. doxygenfunction:: mcpwm_capture_disable
|
||
|
.. doxygenfunction:: mcpwm_capture_signal_get_value
|
||
|
.. doxygenfunction:: mcpwm_capture_signal_get_edge
|
||
|
.. doxygenfunction:: mcpwm_sync_enable
|
||
|
.. doxygenfunction:: mcpwm_sync_disable
|
||
|
.. doxygenfunction:: mcpwm_isr_register
|
||
|
|