你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

TIM DMA burst 输出变频 PWM 波形

[复制链接]
STMCU小助手 发布时间:2023-2-19 18:00
1. 问题背景客户需要 MCU 输出一组变频的 PWM 波形来控制外围器件,并且不同频率脉冲的个数也不同。STM32U5 芯片拥有 TIM1/TIM8 高级定时器,还有通用定时器TIM2/TIM3/TIM4/TIM5 以及 TIM15/TIM16/TIM17。TIM 模块中,可通过修改 ARR 寄存器的值来修改 PWM 的频率。如果使用 TIM1/TIM8 或者 TIM15/TIM16/TIM17,则可以通过修改 RCR 与 CCR 寄存器,来控制脉冲个数及占空比。由于要同时修改多个 TIM 寄存器,需要使用 TIM 的 DMA burst 功能来实现此需求。
. h: ^5 i+ r( ]5 t/ d* ~, A3 G' Q4 \& T- U6 r$ B6 h( G0 d
2. TIM DMA burst
0 z. E; B* h+ l! P3 x. s! K  jSTM32 片内部分 TIMER 在产生单个定时器事件情况下可以基于特定硬件机制触发多个 DMA 请求,这样产生多个连续的 DMA 传输来实现对多个 TIMER 寄存器的批量访问。这就是所谓的 TIM DMA burst 功能,这里有两个专用寄存器:
# z+ P" @, x5 y0 T) W# q% y4 L( k3 Z% eTIMx_DCR :
8 g( O: a3 E! j- N# Z& k3 M* }DBSS : 触发 DMA burst 的事件源
" [% ]9 Q0 _; X1 q$ b* {DBL : DMA burst 传输个数, z7 y0 Q; j( b6 Q
DBA : DMA burst 传输的 TIM 寄存器基地址索引. u: Y- U' w/ B, R) U
TIMx_DMAR :
0 F  N- D1 g; \6 T! _TIM DMA Burst 时,DMA 访问此寄存器
! U# E* q; ?+ O8 I5 }8 C4 l6 Y. i7 d
2 e4 d+ i8 P% q; L8 c" D0 Q: V) s: x
3. 产生 PWM
8 S/ P4 o# R; a$ u* g) ?: w( u; m# [, K, m本文使用 TIM1 来产生 PWM,在 U575 NECLEO 板上测试,MCU 主频为 100MHz。使用两个频率分别对应 TIM 寄存器组的值如下:ARR/ RCR/ CCR1# N1 V0 i# W) C# y) q
uint32_t pulse1[3] = {1000, 2, 500} ;
3 M9 [; _' _; Luint32_t pulse2[3] = {5000, 1, 2500} ;
  I5 Z2 d9 \1 g; ~3 g0 Y即输出 3 个 pulse1 的脉冲后,再输出 2 个 pulse2 脉冲,这样交替输出。, z+ x8 L. o7 f  [! |, k8 ~6 R- A
5 _% x! b# Y1 i+ I

6 E* N5 f$ b+ E9 ^% e0 ?) V3.1. TIM 与 GPDMA 配置3 c7 P  ]- D- k) P8 F
3.1.1. TIM1 配置. m# }) L! Y; ]( T
TIM1 配置如下,使能寄存器预装载功能。* B1 f, M& _3 F) u. v) X1 Y

7 a) X' p$ @/ _" q: o
) u& f( z1 K  t: V% y
45AU94}8SIK(X[5K9WDA4[A.png : [  ]) V0 B6 @" X2 _0 }( O: X1 }

6 B7 L5 N+ |7 N
; a1 p5 z% w  q+ y& I; h+ n1 F
3.1.2. GPDMA 配置
# n; J% g( n/ t% e6 p2 z, z使用 GPDMA 通道 12 的 linked list 模式,并配置为循环模式:/ i# Y3 {; p0 B# g: W  k

* w/ V( D* h, V- }+ c# ^6 s2 C  c2 h

: ]9 a& n) E6 z3 t3 u3 [ JRMX{8]7D_@9(LU(VVI%RIH.png
; N+ r2 [  r: p# {0 a8 K& o/ u; Q0 A) Z. n) N1 W( E* `: e
完整版请查看:附件 TIM DMA burst 输出变频 PWM 波形.pdf (1.02 MB, 下载次数: 96)
赞 收藏 评论1 发布时间:2023-2-19 18:00

举报

1个回答
ST的小迷弟 回答时间:2023-10-31 16:50:26

老哥,能否公布一下例程,我试了一下跑得有问题。0.0

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版