关于CH543的PWM频率计算和占空比计算问题

如题,首先是PWM频率部分,规格书中写了543的PWM周期相关的寄存器有两个,分别是高字节低4位PWM_CYCLE_H和低字节的8位PWM_CYCLE_L,然后还写了PWM_CYCLE的计算公式:PWM_CYCLE = PWM_CYCLE_H*256 + PWM_CYCLE_L。

1650867219873504.png

1650867219178614.png

       但是,我在CH543评估板的PWM例程中,看到注释的公式:PWM_CYCLE=FREQ_SYS/4/(cyc_h*256+cyc_l),这就有点把我搞懵了,PWM_CYCLE到底如何计算?还有在例程中,我发现8位PWM模式下,PWM_CYCLE_H的配置为1,所以在8位PWM下,PWM_CYCLE_H也需要使用上?W`)STQ%W]{42VXZ6V_G0}C6.png


      最后占空比的计算,根据规格书,8位PWM的占空比公式为:PWM_DATAn / PWM_CYCLE,但是由于上面所说PWM_CYCLE的计算问题,再加上PWM_DATAn只有8位,所以占空比的计算我也懵住了。小弟第一次使用CH543,而且画的板子也没有到,没法通过实物进行验证,就只能跪求大佬们给点指引和建议,非常感谢!!!


手册中公式的PWM_CYCLE,意义是指一个16位寄存器,R16 = R8*256 + R8,三个寄存器之间的计算关系。

image.png

代码注释中的PWM_CYCLE,实际意义就是PWM当前周期,是一个真实物理量。

真实周期是:主频÷PWM分频系数÷PWM_CYCLE_L(8位时)

示例程序中对PWM_CYCLE_H写值在8位PWM时是无效的,可以去掉。


那占空比的计算是怎么样的啊,PWM_DATAn为8位寄存器,而PWM_CYCLE是16位。要怎么理解PWM_DATAn / PWM_CYCLE这个公式啊


参考手册中公式:

image.png


只有登录才能回复,可以选择微信账号登录