STMCU小助手
发布时间:2022-8-2 17:31
|
很多 STM32 系列的 MCU 内置高精度定时器,比方 STM32F334、STM32G4、STM32H7 等系列。利用高精度定时器实现 PWM 输出应该说是最基本的功能了。不过,在实际应用中,常有人觉得无法实现 duty=0 或 duty=100%的 PWM 输出情形。这里以 STM32F334 的 HRTIM 为例,简单介绍下利用它实现 PWM 输出的实现原理。& c4 C2 P) O! o& ^7 Y/ z C5 ^ STM32F334 的 HRTIM 的功能框图如下,由一个 MASTER 定时器和 A\B\C\D\E 五个定时器单元组成。其中 A\B\C\D\E 五个定时器单元各可以产生 2 路输出信号,并支持互补输出。' l+ L7 h0 U$ L9 k" o. Y " w& \4 q4 \& V8 N2 e0 x( v1 ?& Q( A" G
5 _3 T2 K3 p* d- N6 t 先看下跟 HRTIM 有关的时钟。 它的时钟源可以来自 HSE 而产生的 144MHz 时钟信号,或者来自内部 HSI 而产生的 128MHz 时钟信号,我们把它记作 fHRTIM。下面以时钟源为 144MHz 时钟信号来介绍,它经过高精度定时器内部倍频机构 32 倍频后形成 4.6GMHz 的时钟信号,该时钟信号再经过分频器后就可以作为计数器的计数驱动时钟,我们把它记作 fHRCK。这里的每个定时器单元都有各自的分频器。对于 STM32F334 的 HRTIM,计数模式只支持 向上计数模式。 在利用 HRTIM 中的定时器单元实现 PWM 输出时,基于不同的分频系数对应着不同的分辨率和最低 PWM频率。如下表所示:【截图来自 STM32F334 的参考手册】 ! i" ]: i$ @" P3 v
3 R1 n( |1 I' O. S 显然,不同分频比对应不同的计数时钟 fHRCK,根据计数时钟结合 16 位的计数宽度可求出最长计数时间,亦即最小的 PWM 输出频率。 但对于高精度定时器 HRTIM,由于其自身特定机制的原因,在实现 PWM 功能时,设计比较值和计数周期值时需遵循下面两个原则:【注意是 FHRTIM 时钟单位,即未被倍频的时钟,这里就是那个 144Mhz 时钟】 1、 最小值必须不小于 3 个 fHRTIM 时钟单位; 2、 最大值不得大于 0xFFFE 个 fHRTIM 时钟单位; 刚才上面说了,HRTIM 里面的定时器单元所用的计数时钟是 fHRTIM 先经过倍频后再经过分频器而来的,那么结合上面的两个原则,不同分频比条件下可以设定的计数周期或比较值的范围就对应到如下表格:9 x4 H8 R5 z6 f/ a5 u, [% \3 A; V0 e& @- B ( O0 T$ R+ V" X
+ o ]- a! c: ^$ t- p$ A 完整版请查看:附件3 K6 \% _5 B# s; t) s& V . F; M, O* ~% _" Z * d1 R: x0 q0 u6 F9 g7 D4 W |
STM32高精度定时器PWM输出话题.pdf
下载268.56 KB, 下载次数: 1
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
微信公众号
手机版