gpt4 book ai didi

microcontroller - 输出比较和脉冲宽度调制功能有什么区别?

转载 作者:行者123 更新时间:2023-12-02 01:45:59 25 4
gpt4 key购买 nike

我正在使用 STM32 系列复习微 Controller 。 (具体使用STM32F072BDISCOVERY板)。

我在理解计时器的使用及其各种模式时遇到了一些麻烦。具体来说,“输出比较”(OC)模式有很多选项,“PWM”模式有其他选项。 RM0091 引用手册的编写好像它们是两种不同的交替操作模式。我也在使用新的 HAL 驱动程序,并且有不同的 API 可以使用 OC 与 PWM。

但是,在我看来,PWM 基本上是输出比较功能的子集/用例,其中定时器 channel 配置为直接驱动硬件输出。

我缺少的 OC 和 PWM 模式之间是否存在明显区别? PWM波形产生方式是怎样的不是 输出比较功能?

最佳答案

这个问题很老,但我想知道同样的问题并开始深入研究这个话题。

在 STM32 micro 中,并非所有定时器都实现所有功能。我的帖子基于 STM32F030 定时器 1,这是我认为功能最丰富的 4 channel 实现(或者至少是几年前)。

定时器基本上充当一个计数器,具有多种选项来选择计数器时钟的来源、重置它的内容、周期是什么以及计数器方向。这是它实现的所有额外功能的基础,HAL 驱动程序将其称为时基。计数器功能本身与定时器 channel 无关。

STM32 定时器中实现了 1-6 个 channel 。这些 channel 可以独立配置,或者在某些情况下成对配置(用于正交编码器模式等功能)。
一个 channel 可以配置为输入捕捉或输出比较。输入捕捉“监听”某个事件并将时基计数器保存在 CCRx 寄存器中。输出比较将计数器寄存器与 CCRx 寄存器中给定的设定值进行比较。

所有简单的 IC/OC 模式和额外的功能,如 PWM 输入、输出、霍尔效应传感器接口(interface),都建立在这两种模式之上,它们各自的选项位作用于各种输入/输出多路复用器,以及关于 OC 模式基本上根据比较器输出(CNT = CCRx,CNT > CCRx)告诉硬件要采取什么行动。
在这种情况下,PWM 模式让输出模式 Controller 在计数器寄存器复位(更具体地说,更新事件)时返回到 CNT <= CCRx 状态,而在其他 OC 模式下,输出模式 Controller 会忽略此信号并且可以手动复位,或通过外部信号复位。输出信号是 OCxREF 信号,然后在到达输出引脚之前通过更多硬件。如果它完全输出,因为您可以不将定时器连接到输出引脚。

STM32 定时器很复杂。它们有许多逻辑 block 和大量配置寄存器/位,所以我可能错过了一些东西或完全误读了一些东西。请随时纠正我。

关于microcontroller - 输出比较和脉冲宽度调制功能有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25631168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com