代码之家  ›  专栏  ›  技术社区  ›  Torcek

生成PWM如何与GPIO速度相关?

  •  0
  • Torcek  · 技术社区  · 10 年前

    例如,在GPIO配置和初始化期间,我们可以将引脚速度设置为50MHz、100MHz,但也可以将其设置为2MHz。据我所知,降低速度=降低功耗。生成PWM如何与引脚速度相关?当我想生成300Hz或1kHz PWM时,我可以将引脚速度设置为2MHz吗?

    提前感谢您的回答。

    1 回复  |  直到 10 年前
        1
  •  1
  •   Chris Stratton    10 年前

    您所谈论的速度额定值(50 MHz、100 MHz、2 MHz)基本上是 转换速率 控制I/O引脚改变状态的速度。

    这基本上与用于实际生成信号的计数器/计时器的编程无关-不应与 clock prescaler 这降低了进入计时器的时钟速率,潜在地大幅降低了功耗(CMOS电路中的大多数功率在改变状态时用于充放电隐电容),但也降低了定时分辨率。

    相比之下,转换速率的降低有点像输出上的粗糙低通滤波器。这可能意味着驱动输出所消耗的功率更少(或者至少是在更长时间内的功率分布),但计数器/计时器消耗的大部分功率将用于计数器本身的计时。

    如果您的输出频率远远低于转换速率限制,并且您的外部电路可以容忍缓慢的转换,您可以尝试设置此设置。

    当然,如果您的输出频率接近转换速率极限,您可能会发现您的信号无法一直驱动到有效的逻辑电平。