首先:让我们试着简单地应用'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分辨率的值。
首先:让我们试着简单地应用'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分辨率的值。
举报