mbm*_*voy 5 microcontroller stm32
我正在使用 STM32 系列复习微控制器。(特别是使用 STM32F072BDISCOVERY 板)。
我在理解计时器的使用及其各种模式时遇到了一些麻烦。具体来说,“输出比较”(OC)模式有很多选项,“PWM”模式有其他选项。RM0091 参考手册的编写好像它们是两种不同的交替操作模式。我也在使用新的 HAL 驱动程序,并且有不同的 API 可以使用 OC 与 PWM。
但是,在我看来,PWM 基本上是输出比较功能的子集/用例,其中定时器通道配置为直接驱动硬件输出。
我缺少的 OC 和 PWM 模式之间是否有明确的区别?PWM 波形生成以何种方式不是输出比较功能?
小智 6
这个问题很老,但我想知道同样的问题并开始深入研究这个话题。
在 STM32 微控制器中,并非所有定时器都实现了所有功能。我的帖子基于 STM32F030 Timer 1,我相信这是功能最丰富的 4 通道实现(或者至少是几年前)。
计时器基本上充当计数器,具有多种选项,可用于设置计数器时钟的来源、重置方式、周期和计数器方向。这是它实现的所有额外功能的基础,HAL 驱动程序将其称为时基。计数器功能本身与定时器通道无关。
在 STM32 定时器中实现了 1-6 个通道。这些通道可以独立配置,也可以在某些情况下成对配置(用于正交编码器模式等功能)。通道可以配置为输入捕捉或输出比较。输入捕获“侦听”某个事件并将时基计数器保存在 CCRx 寄存器中。输出比较将计数器寄存器与 CCRx 寄存器中给定的设置值进行比较。
所有简单的 I2C/OC 模式和额外功能,如 PWM 输入、输出、霍尔效应传感器接口,都建立在这两种模式之上,它们各自的选项位作用于各种输入/输出多路复用器,关于 OC 模式基本上告诉硬件根据比较器输出(CNT = CCRx,CNT > CCRx)采取什么行动。在这种情况下,PWM 模式让输出模式控制器在计数器寄存器复位(更具体地说,更新事件)时返回到 CNT <= CCRx 状态,而在其他 OC 模式中,输出模式控制器忽略该信号并且可以手动复位,或通过外部信号复位。输出信号是 OCxREF 信号,然后在到达输出引脚之前通过更多的硬件。如果它根本没有输出,因为您可以不将计时器连接到输出引脚。
STM32 定时器很复杂。他们有很多逻辑块和大量的配置寄存器/位,所以我可能错过了一些东西或者完全误读了一些东西。请随时纠正我。
| 归档时间: |
|
| 查看次数: |
13314 次 |
| 最近记录: |