本篇为乐鑫官方文档,地址:Motor Control Pulse Width Modulator (MCPWM) - ESP32 - — ESP-IDF 编程指南 latest 文档
前言ESP32 有两个 MCPWM 单元,可用于控制不同的电机。每个单元有三对 PWM 输出 。
此外,在文件中,单个信号的输出单元标记为PWMxA/PWMxB。
MCPWM单元的更详细框图如下所示。每个A/B对可由三个定时器0、1和2中的任意一个定时器计时。同一定时器可用于对多对PWM输出进行计时。每个单元还能够收集同步信号等输入,检测电机过流或过压等故障信号,以及获取转子位置等捕捉信号的反馈。
本API的描述从配置MCPWM的定时器和发电机子模块开始,以提供基本的电机控制功能。然后讨论了故障处理器、信号捕获和载波的更高级子模块和功能。
目录配置输出的基本功能
操作输出以驱动电机
调整电机的驱动方式
同步同步计时器以协同工作
捕获外部信号以提供对输出的额外控制
使用故障处理程序检测和管理故障
如果输出信号通过隔离变压器,则添加更高频率的载波
额外的分辨率配置
配置配置范围取决于电机类型,特别是需要多少输出和输入,以及驱动电机的信号顺序。
在这种情况下,我们将描述一种简单的配置,用于控制仅使用部分可用MCPWM资源的有刷直流电机。下面显示了一个示例电路。它包括一个H桥,用于切换施加在电机(M)上的电压的极化,并提供足够的电流来驱动电机。
1.选择用于驱动电机的MCPWM装置。ESP32板上有两个可用单元,并在mcpwm_单元中列出。
2.通过调用mcpwm_gpio_init()初始化两个gpio作为所选单元内的输出信号。这两个输出信号通常用于命令电机向右或向左旋转。mcpwmu iou signalst中列出了所有可用的信号选项。要一次设置多个管脚,请将函数mcpwm_set_pin()与mcpwm_pin_config_t一起使用。
3.定时器的选择。该装置内有三个定时器。定时器在mcpwmu timert中列出。
4.在mcpwm配置结构内设置定时器频率和初始占空比。
5.如有必要,通过调用mcpwm_group_set_resolution()和mcpwm_timer_set_resolution()设置计时器分辨率
6.调用函数mcpwm_init()和上述参数,使配置生效



