yangxiao 发表于 2008-5-30 17:01:30

请教产生各种频率和各种占空比的PWM波的问题

马老师和各位朋友好!
请问如果芯片有两个定时器而且都带PWM功能,
那是不是应该能产生所有频率和所有占空比的2路波形?
比如ATtiny25,
它是不是能产生两路8M以内的所有频率和占空比的PWM波呀?

machao 发表于 2008-5-30 17:45:48

先把PWM等相关的的基楚知识弄明白再问问题吧.

什么是"所有频率和所有占空比"?就凭这句话,回答是不能.

yangxiao 发表于 2008-5-31 09:27:18

是我没有讲清楚,不好意思!
第一个问题:带PWM功能的AVR是不是可以产生在它的工作频率范围内的所有频率的PWM?
            如果带PLL的话能产生它响应倍数频率的PWM波?
第二个问题:如果AVR芯片带两个定时器,它是不是可以产生两路任何占空比(0到100%)的PWM波?

非常期待马老师和各位朋友的指点!
谢谢!

machao 发表于 2008-5-31 18:22:39

你还是不清楚PWM,以及AVR产生PWM的原理.

首先数字产生PWM的调节精度与位数有关.在通常8位的情况下,占空比的精度就是1/256.换句话说(约0.004),在0-100%范围只有256个.因此,理论上的"任何"占空比是不可能的.在实际应用中,需要根据情况确定PWM的调节精度,进而确定PWM的位数.

假定,8位PWM的精度够用了,那么我们看PWM的频率.当系统时钟为8M时,AVR快速PWM的最高频率为8M/256 = 31.25K.当然,利用T1可以产生4M的PWM,可是占空比只能是0或100%.

PWM的占空比精度和频率是一对矛盾,相互牵制.因此,产生任意频率任何占空比可调的PWM是不可能的.

你对PWM基本的知识掌握不好,当然也就讲不清楚了.

yangxiao 发表于 2008-6-2 09:06:27

可是马老师,当AVR工作于快速PWM模式时,
也可以把OCRA的值设为TOP值吧?
这样,改变OCRA的值而得到响应频率的PWM
是这样吗?
还有占空比=OCR0B/OCR0A 吧?
我只要改变0CR0B的值就能得到响应的占空比,
是这样吗?
以上是产生一路PWM的情况

machao 发表于 2008-6-2 17:11:09

OCRA为TOP是可以改变PWM的频率,那么看几个简单的数字:

假定系统时钟为8M.OCRA为1(1位),那么PWM的频率为4M,占空比只能是0%和100%
假定系统时钟为8M.OCRA为10(1.5位),那么PWM的频率为2.7M,占空比只能是0% 33.3% 66.6% 100%
假定系统时钟为8M.OCRA为11(2位),那么PWM的频率为2M,占空比只能是0% 25% 50% 75% 100%

因此要PWM频率"连续"可调和占空比也"连续"可调怎么能做到呢?

你问的问题为:"是不是应该能产生所有频率和所有占空比的2路波形?",什么叫"所有"?3M就没有,2.5M也没有.

数据手册上讲频率可调,但不是说"所有"的频率都能产生.

=====================================================
以上使用的都是加,减,乘.除的算术,计算不会有问题.问题还是产生PWM的原理和概念等基础的东西不清楚.
页: [1]
查看完整版本: 请教产生各种频率和各种占空比的PWM波的问题