Microchip
直播中

徐晨曦

7年用户 186经验值
私信 关注
[问答]

请问高速pwm周期值该怎么计算?

你好!我使用的是dsPIC33FJ16GS504,我想用PTPER来设置PWM周期。我看了两篇关于dsPIC33高速PWM的文献:DS70579A和DS70000323G(当然是DS70323,但是在PDF中是这样的)。70323计算结果是:PTP= =(ACLK×8×周期/预分频器)-8正确的是什么?谢谢

回帖(5)

郑雅颖

2019-9-16 10:30:31
“323文档”在设备数据表(DS7000,318G)中被明确地调用。数据表中称之为DS70323,但实际文档标记为DS70000323G。它也链接在微芯片站点上设备主页的dsPIC33FJ16GS504家庭参考手册文档部分下。
举报

张龙

2019-9-16 10:38:37
那么,它的公式是正确的吗?因为还有另一个矛盾:在《关于dsPIC SMPS器件的常见问题》(TB062)中出现了一个PWM配置的例子,它使用了来自DS70579A的公式(采用REFCLK=7.37MHz和Prescaler=1)。但是,对于更多的信息,指的是DS70323(有不同的公式)。这里是:我有点困惑。
举报

薄坤坤

2019-9-16 10:54:47
您的困惑来自于查看错误的文档:您称为DS70579A的文档实际上是针对不同的(子类)dsPIC33设备的。不幸的是,微芯片确实为类似的外围设备发布了不同的FRM部分(通常与本例中的名称相同),但是涉及不同的设备系列。XPand“文档和软件”标题。向下滚动到“参考手册”子标题,您将找到与特定设备相关的所有FRM部分。建议只看与你的芯片有关的部分。苏珊
举报

郑雅颖

2019-9-16 11:01:05
首先:让我们试着简单地应用'323中的方程6-1,并确保其工作:假设1:1预分频器和FRC=7.37MHz,APLL被禁用,然后PTPER=round_integer_vallue_of(7370000*8/PWM_FREQ-8)假设我们希望PWM_FREQ是(大约)100kHzPTPER=582。频率=99932.209339…Hz)我用XC16(版本1.25)在dsPIC33FJ16GS502上测试了这一点:结果在PWM1H和PWM1LNote上大约是100kHz的互补方波。我见过其他的引用/例子,在这个等式中没有这个术语。由于用于SMPS应用的PWM的绝对精度可能没什么大不了的,所以这种差别(可能)可以忽略不计。那么,其他公式呢?在FAQ文件TB062中,我们看到Heck是从哪里来的?那么,这种类型的PWM模块的最大分辨率被指定为1.04纳秒。方程式6-1下面的方框显示了获得最大分辨率的一种方法:使用OSCTUN将FRC调整为7.49MHz的值,应用APLL将其乘以16,这样PLL输入时钟将是119.84MHz。注意1 /(119.84E6* 8)=1.04305741…E-9。(这是1.04ns的位置。)然后,(忽略第一公式中的“-8”),对于PWM输入时钟频率的这个值,PWM周期大约等于PTPER寄存器中值的1.04e-9倍。也就是说,PWM频率等于1/(1.04e-9*PTPER)所以...当PWM输入时钟等于119.84MHz时,存储在PWM周期寄存器中的值是PTPER=round_integer_value_of(1/(PWM_FREQ*1.04e-9))=round_integer_value_of(1.0e9/(1.04*PWM_FREQ))底线:FAQ中的公式是核心rect,但是需要一些上下文:即,将PWM模块时钟频率设置为给出1.04ns的PWM分辨率的值。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分