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控制位的重要说明: **
- ENPWM一旦被使能后,内部的PWM计数器会立即开始计数,并与T1/T2两个翻转点的值进行比
较。所有ENPW必须在其他所有的PW设置包括T1/T2翻转点的设置、初始电平的设置、PW异
常检测的设置以及PWM中断设置)都完成后,最后才能使能ENPWM位。- 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,则程序将跳转到相应中断入口执行中断服务程序.