【问题标题】:CubeMX timer configuration question (screenshot attached)CubeMX 定时器配置问题(附截图)
【发布时间】:2020-11-12 10:52:38
【问题描述】:

我试图了解内部时钟上的计时器是如何工作的。 我在下面附上了我的 CubeMX 配置。

目前,我已将主时钟设置为 480 MHz,这是此 STM32H743ZI 芯片的最大值。 我正在使用 TIM 2,所以我正在查看 APB1。

我从时钟树中看到,目前定时器时钟为 240 MHz,外设时钟为 120 MHz。

  1. 我的第一个问题是,为什么它使用 120MHz,它清楚地表示“APB1 上的定时器时钟”为“240 MHz”?我已经用示波器验证了频率。

这是一个很长的镜头,但根据我读到的,这个芯片的最大定时器时钟是 200 MHz。所以 240 大于 200,也许芯片会自动应用 /2 分频器?我认为时钟配置树会说些什么,而不是允许应用“240 MHz”?

  1. 我的第二个问题: 为了论证起见,假设最大定时器时钟确实是 200 MHz,我该如何设置 200 MHz 作为 APB1 的时钟频率?我确信没有办法在不影响最大 MCU 时钟并将其从 480 降至 400 MHz 的情况下达到 200 MHz 吗?

  2. 我可以相信 CubeMX 在我进行更改时所做的自动预分频器/乘数调整吗?

【问题讨论】:

    标签: timer stm32 clock cubemx


    【解决方案1】:

    你是如何用示波器检查它的?是在芯片里面吗?

    1. 定时器时钟为240MHz,与APB1连接的其他外设时钟为120MHz。

    根据我读到的是这个芯片的最大定时器时钟 为 200 兆赫。

    你在哪里读到的?官方文档有不同的说法

    1. 我觉得这个问题没有太大意义

    2. 您会看到这些值,如果您愿意,可以手动检查它们,但在这种情况下,计算机通常比人类好。就我个人而言,我对 Cube 没有任何问题。顺便说一句,我只将它用于时钟(我懒得手动计算所有预调用器),但我以裸寄存器方式对其进行编程。

    【讨论】:

    • 谢谢 - 我用示波器测量了它,只需切换一个 Pin 的输出。我认为切换一个引脚所需的时间从切换到下一个一直是相同的,但这可能是一个错误的假设。无论哪种方式,我都能够验证 1 到 2 % 的值。至于 200 MHz,我一定是看错了数据表。无论哪种方式,您的屏幕截图都显示最大计时器时钟应为 240 MHz,而不是 120 MHz。更改 CubeMX 内部的分频器以将 120 提高到 240,表示最大值为 120 MHz。
    • 所以也许我不明白 Max Interface Clock 和 Max timer clock 之间的区别?
    • 时钟定时器是用于为计数器提供数据的时钟。接口时钟是定时器数字接口(寄存器、比较器、事件发生器等)的时钟。许多外设有多个时钟源,例如 ADC
    • 嗯,谢谢 - 所以在我的情况下,这两者中的哪一个对于计算我想计算的周期很重要?
    • @zytra timer clock 我建议阅读所有解释的参考手册
    猜你喜欢
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    相关资源
    最近更新 更多