打印

PWM

[复制链接]
3819|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jec017|  楼主 | 2008-12-24 15:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问STM32101的PWM最高输出频率是多少MHz?
沙发
香水城| | 2008-12-24 21:48 | 只看该作者

单纯地说STM32的PWM最高输出频率,最高可达CPU频率的一半

STM32F101的CPU最高频率为36MHz,则可最高输出18MHz的PWM。
STM32F103的CPU最高频率为72MHz,则可最高输出36MHz的PWM。

一般要讲PWM的输出频率,需要说明要求占空比的调节精度和频率可调的范围和精度,请说明你的这些具体参数的要求。

使用特权

评论回复
板凳
jec017|  楼主 | 2008-12-26 15:09 | 只看该作者

不要求调节精度

谢谢。我要用来驱动外部A/D。只要快就可以了。50% 也是最容易输出的。

使用特权

评论回复
地板
香水城| | 2008-12-26 15:26 | 只看该作者

不要求调节精度,也就是说你只要求输出方波而不需调节

这样的话,请参考2楼的答案。

使用特权

评论回复
5
hjiongh| | 2008-12-31 10:18 | 只看该作者

请问香主---那最低输出频率呢?

请问香主,那STM32101的PWM最低输出频率是多少Hz?


TIMx Frequency = TIMx counter clock/(ARR + 1)

ARR是16位的,那么  36000000/(65535+1) = 549.3164 Hz? 

使用特权

评论回复
6
香水城| | 2008-12-31 10:39 | 只看该作者

关于PWM最低输出频率,有很多系数决定

假定CPU时钟频率为36MHz,那么TIMx的时钟输入频率最低可达4.5MHz。

TIMx的预分频系数最大为65536,因此计数器的计数频率最低达68.7Hz。

按照ARR的16位计算,PWM最低输出频率可以低至每954秒一个脉冲。


你最好说说你的具体要求,单纯地谈最大最小,意义不大。

使用特权

评论回复
7
hjiongh| | 2008-12-31 10:54 | 只看该作者

谢谢香主,请看下面

如果我要输出以下两种pwm波:

1Hz ,25KHz,  pwm 输出是否能做到?

um0427FWLibexamplesTIMTimeBase   是一个输出比较的例程,用一个TIM计时,从任意4个GPIO输出4个Frequency . 

um0427FWLibexamplesTIMPWM_Output 是pwm输出例程。

1.  我是这样想的:因为我1Hz的方波(10%占控比)有4路,接在TIM3的ch1---ch4, 那这个方式我可以用output compare 方式,通过中断程序gpio控制来实现。  关键就是这个要求的方波能否101片子做到?(原本我打算用pwm输出方式来实现的,但现在看来pwm方式不一定做得到,是吧?)

另外我还剩下TIM4可用,要输出一路25KHz,50%占控比的pwm波,那这个应该实现也不难。 

2.  另一个问题就是:用output compare方式的话,我一个TIM的一个CCR就可以实现4个gpio输出相同频率,相同占控比的方波了,对吧?  那这样类推,一个TIM可以实现 4*4 = 16 个GPIO输出4组不同频率,不同占控比的方波,是这个道理吧?

非常感谢香主继续解答。

使用特权

评论回复
8
香水城| | 2008-12-31 11:08 | 只看该作者

请问你的PWM频率是否有变化,占空比是否有变化,变化范围

还有STM32F101,你具体用的是哪个型号?多少脚的封装?

使用特权

评论回复
9
香水城| | 2008-12-31 11:13 | 只看该作者

如果1Hz方波的频率不变,只变化占空比,则直接可用TIM3的PWM

PWM模式下,ARR寄存器控制频率,CCx寄存器控制占空比,一个TIM3可以同时输出4路频率相同但不同占空比的方波。

使用特权

评论回复
10
hjiongh| | 2008-12-31 11:35 | 只看该作者

我的波频率只要设置好后不会变化,占控比也不变

我的mcu是STM32F101RC

也就是说一个TIM可以输出1Hz的pwm方波,对吧?

那我说的output compare的问题,香主请回答一下吧? 

使用特权

评论回复
11
香水城| | 2008-12-31 11:47 | 只看该作者

只要同时输出4路相同频率的PWM波,就可以使用一个定时器

计算定时器的时钟频率时,请不要忘记如果APB1的分频系数大于1时,硬件上有一个倍频效应,请看以前的讨论,已经讨论过多次。

使用特权

评论回复
12
hjiongh| | 2008-12-31 11:53 | 只看该作者

香主说得很对

但是1Hz的方波输出,我怎么计算也达不到阿

TIM3 ARR Register = 999 => TIM3 Frequency = TIM3 counter clock/(ARR + 1)

APB1最大是16分频,那(36MHz /16) * 2  = 4.5MHz

4500000 / 1Hz = 4500000;
4500000 - 1 = 4499999 ; 已经超过0xffff 了

ARR才16位。

使用特权

评论回复
13
香水城| | 2008-12-31 12:33 | 只看该作者

请看我在6楼的回答,定时器中不是有个预分频器吗?

使用特权

评论回复
14
hjiongh| | 2008-12-31 12:46 | 只看该作者

不好意思,是我不对

但是7楼output compare的请回答一下吧,谢谢

使用特权

评论回复
15
香水城| | 2008-12-31 12:52 | 只看该作者

你的问题用PWM模式可以很好地解决,不必使用Output Compare模式

当然7楼的第2个问题,你的理解是对的。

使用特权

评论回复
16
hjiongh| | 2008-12-31 13:04 | 只看该作者

谢谢香主回答,新年快乐!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

14

帖子

0

粉丝