STC12LE5612AD芯片使用心得(七)PCA/PWM应用

    PCA全称Programmable Counter Array,可编程计数器阵列,可以用于软件定时器、外部中断扩展、高速输出、脉宽调制(PWM)输出。

    相关寄存器:

    STC12LE5612AD芯片使用心得(七)PCA/PWM应用

STC12LE5612AD芯片使用心得(七)PCA/PWM应用

STC12LE5612AD芯片使用心得(七)PCA/PWM应用

        Tips:Tog位用于在捕获到匹配中断时,翻转对应的CCPn位。

    PCA的16位计数器,低8位CL和8高位CH,当只CR = 1时,CH和CL不断++,对于设定的时钟源进行计数。

    STC12LE5612AD芯片使用心得(七)PCA/PWM应用

    当用于捕获或比较模式时,通过对比CH和CL与CCAPnL和CCAPnH来获得相应的动作,如果达到了相应的值,则产生对应的中断进行处理。当用于PWM模式时,用来控制输出的占空比。

STC12LE5612AD芯片使用心得(七)PCA/PWM应用

    PCA/PWM工作模式:

    1、捕获模式:此时应该使能CCAPMn中CAPNn和CAPPn,此时模块对外部CCPn输入的跳变进行采样,当采样到有效跳变时,PCA硬件就将PCA计数器阵列寄存器(CH和CL的值装载到模块的捕获寄存器中)。

    2、16位软件定时器模式:置位ECOMn和MATn位,可使PCA模块用作软件定时器。PCA定时器的值与模块捕获寄存器的值进行比较,若两者相等,产生中断,CH和CL过一段时间加1,时间间隔取决于选择的时钟源。例如,当选择的时钟源为SYSclk/12时,每12个时钟周期CH和CL加1,当增加到捕获寄存器的值时将产生中断请求。

假设系统时钟为11.0592MHz,选择时钟源为12分频之后的时钟,定时时间5ms,则PCA计数器计数值为(增量值(步长)),T/((1/SYSclk)×12) = 0.005/((1/11.0592)×12) = 4608;

     3、高速输出模式:该模式下,当PCA计数器的计数值与模块的捕获寄存器的值向匹配时,PCA的CCPn输出将发生翻转,要**该模式,需要置位TOGn,MATn和ECOMn位。

输出脉冲频率为    f = SYSclk/(4×CCAPnL)

    4、脉宽调节模式(PWM):脉宽调制是一种使用程序来控制波形占空比、周期、相位波形的技术,在三相电机驱动、D/A转换等场合有广泛的应用。8位PWM

由于所有模块共用仅有的PCA定时器,所有他们的输出频率都相同,各个模块的输出占空比是独立变化的,与使用的捕获寄存器有关。当寄存器CL的值小于捕获寄存器L的值时,输出为低,当大于时,输出为高,当溢出时,H中的数值自动装入CL中,由于PWM是8位的,所以PWM的频率 = PCA时钟源频率/ 256;

STC12LE5612AD芯片使用心得(七)PCA/PWM应用