STMCU小助手
发布时间:2022-8-24 18:00
|
抖动模式(Dithering mode) 在查看手册的时候发现了这个模式,第一次看没看懂(可能是太困了),今天又看了一遍手册,大致理解了这个模式的作用。 抖动模式的功能就是增加PWM的分辨率。+ z# {; s- D7 H- K5 S 手册的介绍是这样的: 2 C/ J* P5 ~) M, h& P5 F4 {
抖动模式6 c( F: v C0 X1 D, \2 j6 \0 A! Z8 m PWM的有效分辨率可以通过启动抖动模式来提高,使能TIMx_CR1寄存器中的DITHEN位来启动抖动模式。这适用于CCR(占空比分辨率增加)和ARR(PWM频率分辨率增加)。/ J: {7 {0 G1 k9 ^( J 其工作原理是在16个连续的脉宽调制周期内稍微改变实际的CCR(或ARR)值(增加或不增加一个定时器时钟周期),并预先确定模型。这个考虑到平均占空比或PWM周期,可将分辨率提高16倍。下图显示了应用于4个连续PWM周期的抖动原理。 \. c) R$ N& ^: m0 t2 B9 w9 V( R 图中就可以看到启动了抖动模式后,增加了分辨率。 默认的平均 占空比 = (7+7+7+7) / (12×4) = 0.5833333333333333 DC = (7+¼)/5 的平均 占空比 = (8+7+7+7) / (12×4)= 0.6041666666666667$ p5 e" J$ x2 a! J5 c( d* C DC = (7+½)/5 的平均 占空比 = (8+7+8+7) / (12×4)= 0.625 DC = (7+¾)/5 的平均 占空比 = (8+8+8+7) / (12×4)= 0.6458333333333333; ]3 t# S9 w$ A6 C DC = 8/5 的平均 占空比 = (8+8+8+8)/ (12×4)= 0.66666666666666672 I6 j$ `" [4 a' w1 ]) Q) g( L- q 上述例子只是¼的步进,16个PWM一组的话就是
因此这个功能应该有些作用!& E' o! P8 G: a" h5 D/ L5 ^% | 抖动模式时,16bit定时器和32bit定时器的ARR和CCRx数据格式如下:, v3 E) W) b3 z: P
可以看到:32bit定时器的数据被砍到了28bit,而16bit的定时器数据没有什么影响,因此抖动模式的使用应当考虑数据被砍的问题。同时,抖动模式下选择ARR抖动还是CCRx抖动只需要调整小数位就可以选择谁抖动了。' U/ Z) X% z$ J 寄存器描述中也提到上述数据格式: $ n1 j& l# m: c+ m& Z% U
仅以上述寄存器举例,其它的都介绍了抖动模式和非抖动模式的数据格式。# ]6 g. [) q9 e7 b) G# E" [ 最后列表:边沿对齐模式的PWM的抖动模式1 Y3 Z Y1 t0 `8 K: c1 r# l& ]' b 8 p$ a& Q) c& L$ s) F9 W j4 Z
8 M* x- Y h/ ~ 中心对齐PWM模式的抖动模式$ L3 ~! `3 c0 J4 f 2 Y& _% Y0 e1 c B. d, B, Z
———————————————— 转载:Vice Versa XL# Q. H7 v8 o+ {8 J4 x - m$ P9 \- j, m# `: A4 w |
STM32G47x 双 Bank 模式下在线升级
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【经验分享】STM32G4之基本定时器
NUCLEO-G474RE 扩展 LSM6DSO 传感器数据融合实操演示全解析
经验分享 | STM32G474 高精度定时器同步功能全解析 从内部互联到多芯片协同的实现方案
经验分享 | STM32G4双BANK启动应用演示
STM32G4 LPTIM+DMAMUX 实现并行输出应用示例
实战经验 | LAT1578 SAU对NSC分区的影响
经验分享 | STM32G474 HRTIM Triggered-half模式实现两相交错电源180°相位同步方案
STM32大神笔记,超详细单片机学习汇总资料
微信公众号
手机版