STC15系列PWM相关功能寄存器介绍

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STC15系列PWM相关功能寄存器介绍相关的知识,希望对你有一定的参考价值。

STC15系列PWM相关功能寄存器介绍


  • ✨以下数据来源于stc15手册。

📓增强型PWM波形发生器功能相关寄存器总表

1. 端口配置寄存器:P_SW2

2.PWM配青寄存器:PWMICFG

  • CBTADC: PWM计数器归零时 (CBIF==1时) 触发ADC转换
    – 0:PWM计数器归零时不触发ADC转换
    – 1:PWM计数器归零时自动触发ADC转换。(注:前提条件是PWM和ADC必须被使能,即ENPWM==1,且ADCON==1)
  • C7INI:设置PWM7输出端口的初始电平
    – 0:PWM7输出端口的初始电平为低电平
    – 1:PWM7输出端口的初始电平为高电平
  • C6INI:设置PWM6输出端口的初始电平
    – 0:PWM6输出端口的初始电平为低电平
    – 1:PWM6输出端口的初始电平为高电平
  • CSINI:设置PWMS输出端口的初始电平
    – 0:PWM5输出端口的初始电平为低电平
    – 1:PWMS输出端口的初始电平为高电平
  • C4INI:设置PWM4输出端口的初始电平
    – 0:PWM4输出端口的初始电平为低电平
    – 1:PWM4输出端口的初始电平为高电平
  • C3INI:设置PWM3输出端口的初始电平
    – 0:PWM3输出端口的初始电平为低电平
    – 1: PWM3输出端口的初始电平为高电平
  • C2INI:设置PWM2输出端口的初始电平
    – 0:PWM2输出端口的初始电平为低电平
    – 1:PWM2输出端口的初始电平为高中平

3.PWM控制寄存器: PWMCR

  • ENPWM :使能增强型PWM波形发生器
    – 0:关闭PWM波形发生器
    – 1:使能PWM波形发生器,PWM计数器开始计数

** 关于ENPWM控制位的重要说明: **

  1. ENPWM一旦被使能后,内部的PWM计数器会立即开始计数,并与T1/T2两个翻转点的值进行比
    较。所有ENPW必须在其他所有的PW设置包括T1/T2翻转点的设置、初始电平的设置、PW异
    常检测的设置以及PWM中断设置)都完成后,最后才能使能ENPWM位。
  2. ENPWM控制位既是整个PWM模块的的使能位,也是PWM计数器开始计数的控制位。在PWM计数
    器计数的过程中,ENPWM控制位被关闭时,PWM计数会立即停止,当再次使能ENPWM控制位时,
    PWM的计数会从0开始重新计数,而不会记忆PWM停止计数前的计数值
  • ECBI :PWM计数器归零中断使能位
    – 0:关闭PWM计数器归零中断 (CBIF依然会被硬件置位)
    – 1:使能PWM计数器归零中断
  • ENC7O :PWM7输出使能位
    – 0:PWM通道7的端口为GPIO
    – 1:PWM通道7的端口为PWM输出口,受PWM波形发生器控制
  • ENC6O :PWM6输出使能位
    – 0:PWM通道6的端口为GPIO
    – 1:PWM通道6的端口为PWM输出口,受PWM波形发生器控制
  • ENC5O :PWM5输出使能位
    – 0:PWM通道5的端口为GPIO
    – 1:PWM通道5的端口为PWM输出口,受PWM波形发生器控制
  • ENC4O :PWM4输出使能位
    – 0:PWM通道4的端口为GPIO
    – 1:PWM通道4的端口为PWM输出口,受PWM波形发生器控制
  • ENC3O :PWM3输出使能位
    – 0:PWM通道3的端口为GPIO
    – 1:PWM通道3的端口为PWM输出口,受PWM波形发生器控制
  • ENC2O :PWM2输出使能位
    – 0:PWM通道2的端口为GPIO
    – 1:PWM通道2的端口为PWM输出口,受PWM波形发生器控制

4. PWM中断标志寄存器:PWMIF

  • CBIF :PWM计数器归零中断标志位
    当PWM计数器归零时,硬件自动将此位置1。当ECBI==1时,程序会跳转到相应中断
    入口执行中断服务程序。需要软件清零。
  • C7IF :第7通道的PWM中断标志位
    可设置在翻转点1和翻转点2触发C7IF (详见EC7TISI和EC7T2SI)。当PWM发生翻转时,硬件自动将此位置1。程序会跳转到相应中断入口执行中断服务程序。需要软件清零。
  • C6IF :第6通道的PWM中断标志位
    可设置在翻转点1和翻转点2触发C6IF(详见EC6T1SI和EC6T2SI)。当PWM发生翻转时,硬件自动将此位置1。当EPWM6I==1时,程序会跳转到相应中断入口执行中断服务程序。需要软件清零。
  • C5IF :第5通道的PWM中断标志位
    可设置在翻转点1和翻转点2触发C5IF(详见EC5T1SI和EC5T2SI)。当PWM发生翻转时,硬件自动将此位置1。当EPWM5I==1时,程序会跳转到相应中断入口执行中断服务程序。需要软件清零。
  • C4IF :第4通道的PWM中断标志位
    可设置在翻转点1和翻转点2触发C4IF(详见EC4T1SI和EC4T2SI)。当PWM发生翻转时,硬件自动将此位置1。当EPWM4I==1时,程序会跳转到相应中断入口执行中断服务程序。需要软件清零。
  • C3IF :第3通道的PWM中断标志位
    可设置在翻转点1和翻转点2触发C3IF(详见EC3T1SI和EC3T2SI)。当PWM发生翻转时,硬件自动将此位置1。当EPWM3I==1时,程序会跳转到相应中断入口执行中断服务程序。需要软件清零。
  • C2IF :第2通道的PWM中断标志位
    可设置在翻转点1和翻转点2触发C2IF(详见EC2T1SI和EC2T2SI)。当PWM发生翻转时,硬件自动将此位置1。当EPWM2I==1时,程序会跳转到相应中断入口执行中断服务程序。需要软件清零。

5. PWM外部异常控制寄存器:PWMFDCR

  • ENFD :PWM外部异常检测功能控制位
    – 0:关闭PWM的外部异常检测功能
    – 1:使能PWM的外部异常检测功能
  • FLTFLIO:发生PWM外部异常时对PWM输出口控制位
    – 0:发生PWM外部异常时,PWM的输出口不作任何改变
    – 1:发生PWM外部异常时,PWM的输出口立即被设置为高阻输入模式(既不对外输出电流,也不对内输出电流)。(注:只有ENCnO==1所对应的端口才会被强制悬空;当PWM外部异常状态取消时,相应的PWM的输出口会自动恢复以前的I/O设置
  • EFDI:PWM异常检测中断使能位
    – 0:关闭PWM异常检测中断 (FDIF依然会被硬件置位)
    – 1:使能PWM异常检测中断
  • FDCMP:设定PWM异常检测源为比较器的输出
    – 0: 比较器与PWM无关
    – 1:当比较器正极P5.5/CMP+的电平比比较器负极P5.4/CMP-的电平高或者比较器正极P5.5/CMP+的电平比内部参考电压源1.28V高时,触发PWM异常
  • FDIO :设定PWM异常检测源为端口P2.4的状态
    – 0:P2.4的状态与PWM无关
    – 1:当P2.4的电平为高时,触发 为高时,触发PWM异常
  • FDIF :PWM异常检测中断标志位
    当发生PWM异常(比较器正极P5.5/CMP+的电平比比较器负极P5.4/CMP-的电平高或比较器正极 比较器正极P5.5/CMP+的电平比内部参考电压源1.28V高或者P2.4的电平为高)时,硬件自动将此位置1。当EFDI==1时,程序会跳转到相应中断入口执行中断服务程序。需要软件清零.

6. PWM计数器


  • PWM计数器位一个15位的寄存器,可设定1~32767之间的任意值作为PWM的周期。PWM波形发生器内部的计数器从0开始计数,每个PWM时钟周期递增1,当内部计数器的计数值达到[PWMCH,PWMCL]所设定的PWM周期时,PWM波形发生器内部的计数器将会从0重新开始开始计数,硬件会自动将PWM归零中断中断标志位CBIF置1,若ECBI==1,程序将跳转到相应中断入口执行中断服务程序。

7.PWM时钟选搔寄存器:PWVMCIS

  • SELT2:PWM时钟源选择
    0:PWM时钟源为系统时钟经分频器分频之后的时钟
    1:PWM时钟源为定时器2的溢出脉冲PS[3:0]:系统时钟预分频参数。当SELT2=0时,PWM时钟为系统时钟/(PS[3:01+1)

8. PWM2的翻转计数器




  • PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间的任意值。PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输出波形将发生翻转。

9.PWM2的控制寄存器,PWM2CR

  • PWM2 PS:PWM2输出管脚选择位
    0:PWM2的输出管脚为PWM2:P3.7
    1:PWM2的输出管脚为PWM2 2:P2.7

  • EPWM2I :PWM2中断使能控制位
    0:关闭PWM2中断
    1:使能PWM2中断,当C2IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。

  • EC2T2SI :PWM2的T2匹配发生波形翻转时的中断控制位
    0:关闭T2翻转时中断
    1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C2IF置1,此时若EPWM2I==1,则程序将跳转到相应中断入口执行中断服务程序。

  • EC2T1SI :PWM2的T1匹配发生波形翻转时的中断控制位
    0:关闭T1翻转时中断
    1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C2IF置1,此时若EPWM2I==1,则程序将跳转到相应中断入口执行中断服务程序。

10. PWM3的翻转计数器




  • PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间
    的任意值。PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输
    出波形将发生翻转。

11. PWM3的控制寄存器:PWM3CR

  • PWM3_PS:PWM3输出管脚选择位
    0:PWM3的输出管脚为PWM3:P2.1
    1:PWM3的输出管脚为PWM3_2:P4.5
  • EPWM3I :PWM3中断使能控制位
    0:关闭PWM3中断
    1:使能PWM3中断,当C3IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。
  • EC3T2SI :PWM3的T2匹配发生波形翻转时的中断控制位
    0:关闭T2翻转时中断
    1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配
    时,PWM的波形发生翻转,同时硬件将C3IF置1,此时若EPWM3I==1,则程序将跳转到相应中断入口执行中断服务程序。
  • EC3T1SI :PWM3的T1匹配发生波形翻转时的中断控制位
    0:关闭T1翻转时中断
    1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配
    时,PWM的波形发生翻转,同时硬件将C3IF置1,此时若EPWM3I==1,则程序将跳转到相应中断入口执行中断服务程序。

12.PWVM4的翻转计数器




  • PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间
    的任意值。PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输
    出波形将发生翻转。

13. PWM4的控制寄存器:PWM4CR

  • PWM4_PS:PWM4输出管脚选择位
    0:PWM4的输出管脚为PWM4:P2.2
    1:PWM4的输出管脚为PWM4_2:P4.4
  • EPWM4I :PWM4中断使能控制位
    0:关闭PWM4中断
    1:使能PWM4中断,当C4IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。
  • EC4T2SI:PWM4的T2匹配发生波形翻转时的中断控制位
    0:关闭T2翻转时中断
    1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C4IF置1,此时若EPWM4I==1,则程序将跳转到相应中断入口执行中断服务程序。
  • EC4TISI:PWM4的TI匹配发生波形翻转时的中断控制位
    0: 关闭T1翻转时中断
    1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C4IF置1,此时若EPWM4I==1,则程序将跳转到相应中断入口执行中断服务程序.

14. PWM5的翻转计数器




  • PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间
    的任意值。PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输
    出波形将发生翻转。

15.PWM5的控制寄存器:PWM5CR

  • PWM5_PS:PWM5输出管脚洗择位
    0: PWM5的输出管脚为PWM5: P2.3
    1:PWM5的输出管脚为PWM5_2: P4.2
    EPWM5I :PWM5中断使能控制位
    0:关闭PWM5中断
    1:使能PWM5中断,当C5IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序.
  • EC5T2SI :PWM5的T2匹配发生波形翻转时的中断控制位
    0:关闭T2翻转时中断
    1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C5IF置1,此时若EPWM5I==1,则程序将跳转到相应中断入口执行中断服务程序。
  • EC5T1SI :PWM5的T1匹配发生波形翻转时的中断控制位
    0:关闭T1翻转时中断
    1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C5IF置1,此时若EPWM5I==1,则程序将跳转到相应中断入口执行中断服务程序。

16. PWM6的翻转计数器




  • PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间
    的任意值。PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输
    出波形将发生翻转.

17. PWM6的控制寄存器:PWM6CR

  • PWM6_PS:PWM6输出管脚选择位
    0:PWM6的输出管脚为PWM6:P1.6
    1:PWM6的输出管脚为PWM6_2:P0.7
  • EPWM6I :PWM6中断使能控制位
    0:关闭PWM6中断
    1:使能PWM6中断,当C6IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。
  • EC6T2SI :PWM6的T2匹配发生波形翻转时的中断控制位
    0:关闭T2翻转时中断
    1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C6IF置1,此时若EPWM6I==1,则程序将跳转到相应中断入口执行中断服务程序。
  • EC6T1SI :PWM6的T1匹配发生波形翻转时的中断控制位
    0:关闭T1翻转时中断
    1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C6IF置1,此时若EPWM6I==1,则程序将跳转到相应中断入口执行中断服务程序。

18.PWM7的翻转计数器



  • PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间
    的任意值。PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输
    出波形将发生翻转。

19.PWM7的控制寄存器:PWM7CR

  • PWM7_PS:PWM7输出管脚选择位
    0:PWM7的输出管脚为PWM7:P1.7
    1:PWM7的输出管脚为PWM7_2:P0.6
  • EPWM7I :PWM7中断使能控制位
    0:关闭PWM7中断
    1:使能PWM7中断,当C7IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。
  • EC7T2SI:PWM7的T2匹配发生波形翻转时的中断控制位
    0:关闭T2翻转时中断
    1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C7IF置1,此时若EPWM7I==1,则程序将跳转到相应中断入口执行中断服务程序
  • EC7T1SI:PWM7的T1匹配发生波形翻转时的中断控制位
    0:关闭T1翻转时中断
    1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C7IF置1,此时若EPWM7I==1,则程序将跳转到相应中断入口执行中断服务程序.

以上是关于STC15系列PWM相关功能寄存器介绍的主要内容,如果未能解决你的问题,请参考以下文章

利用STC15输出两路互补SPWM波形

STC15系列CCP/PWM/PCA介绍

STC153路PWM波形输出示例演示

11.STC15W408AS单片机CCP/PCA/PWM应用

11.STC15W408AS单片机CCP/PCA/PWM应用

11.STC15W408AS单片机CCP/PCA/PWM应用